目前,市場(chǎng)上的語(yǔ)音芯片和語(yǔ)音板很多,從性能價(jià)格比上看,美國(guó)1SD公司的ISD系列錄放芯片可謂是一支獨(dú)秀。1SD器件使用直接電平存儲(chǔ)技術(shù),省去了A/D、D/A轉(zhuǎn)換;內(nèi)部集成了大容量的EERPOM,不再需要擴(kuò)展存儲(chǔ)器;控制簡(jiǎn)單,控制管腳與TFL電平兼容。具有集成度高、音質(zhì)好、使用方便等優(yōu)點(diǎn),是一種理想的語(yǔ)音處理芯片。
在控制上,除去手動(dòng)外,lSD器件也可以通過(guò)地址尋址來(lái)精確定位,但它的地址不是字節(jié)地址單元,而是信息段的基本組成單位。以ISD2560為例,它內(nèi)部的480kB的EEPROM均勻地規(guī)劃為600行,每個(gè)地址單元指向其中一行,有600個(gè)地址單元。ISD2560的錄放時(shí)間是60s,因此地址分辨率是100ms。lSD器件可進(jìn)行多段地址操作,每一段稱為一個(gè)信息段,它可以占用-行和多行存儲(chǔ)空間。-個(gè)地址單元最多只能作為一個(gè)獨(dú)立的段。因此,ISD2560最多可以分為600個(gè)信息段m。
2當(dāng)前ISD芯片開(kāi)發(fā)存在的問(wèn)題
通常情況下,只能使用lSD器件提供的無(wú)需知道地址的操作模式,即手動(dòng)模式,這只適合于開(kāi)發(fā)語(yǔ)音玩具,而無(wú)法滿足復(fù)雜操作或?qū)崟r(shí)系統(tǒng)中應(yīng)用的要求。為實(shí)現(xiàn)以上應(yīng)用,最好使用對(duì)地址直接操作的辦法。但在實(shí)用中,一些電路開(kāi)發(fā)設(shè)計(jì)只是在基于語(yǔ)音信號(hào)已經(jīng)寫人芯片,并且段地址已經(jīng)知道的基礎(chǔ)上才能進(jìn)行。然而,不可避免地要遇到必須將語(yǔ)音寫入的時(shí)候。如果手動(dòng)處理,采用按“錄音”按鍵錄音,“停止”按鍵停止,假如錄音段數(shù)特別多,就要頻繁地按上述按鍵,實(shí)在讓人疲憊不堪。此外,手動(dòng)按下“錄音”及“停止”按鍵的時(shí)間也很難掌握,這就容易產(chǎn)生段間空白,造成芯片空間浪費(fèi),對(duì)語(yǔ)音段特別多,而語(yǔ)句又特別短的提示如一些單字、單詞更是浪費(fèi)嚴(yán)重。不僅這樣,由于短句中空白時(shí)間過(guò)長(zhǎng),合成放音時(shí)出現(xiàn)語(yǔ)音不連貫。另外,直接對(duì)連接到1SD芯片的傳聲器錄音會(huì)造成情緒緊張,容易出錯(cuò),且無(wú)法對(duì)錄入的語(yǔ)音進(jìn)行高級(jí)處理。
3 解決方法
基于上述原因,需要設(shè)計(jì)一種lSD語(yǔ)音開(kāi)發(fā)平臺(tái),借助傳聲器通過(guò)計(jì)算機(jī)的聲卡將所有待寫語(yǔ)音信號(hào)一并錄入計(jì)算機(jī),存儲(chǔ)為*.wav文件,然后利用聲音剪輯軟件將各個(gè)詞語(yǔ)(短句)分離出來(lái)。因?yàn)槿绻皇峭瑫r(shí)錄音的話,對(duì)同一個(gè)人來(lái)說(shuō),其聲音在不同時(shí)間、不同場(chǎng)合、不同情緒時(shí)都會(huì)有著很大的差別。如電子體重計(jì),“您的體重是五十一公斤,您的身高是一百七十二厘米”,應(yīng)該是由“您的、體重、身高、是、公斤、厘米、五、十、一、百、七、二”等12個(gè)詞合成后形成的,如果由于某種原因,引起了任何一個(gè)詞與其它語(yǔ)調(diào)不同,提示時(shí)就會(huì)顯得特別突出,聽(tīng)起來(lái)有種怪怪的感覺(jué)。
若用計(jì)算機(jī)錄音,可以一并錄入很多段話(并非一定是全部需要的),然后從中選出所需詞語(yǔ)(短句)。因?yàn)檫@些話是在較短的時(shí)間內(nèi)完成的,所以不會(huì)有很大的語(yǔ)調(diào)變化,將從中選出的詞組合起來(lái)時(shí)也不會(huì)顯得牽強(qiáng),聽(tīng)起來(lái)感覺(jué)不到這些句子是由詞語(yǔ)拼湊起來(lái)的。
除此之外,如果有專業(yè)語(yǔ)音庫(kù),還可以直接從其中抽出詞語(yǔ)來(lái)組成所需的句子,并且還省去了請(qǐng)專業(yè)錄音人員的開(kāi)支。這樣還有一個(gè)好處是修改方便,因?yàn)楫?dāng)需要修改句子內(nèi)容時(shí),恰巧已經(jīng)錄過(guò)的句子中并沒(méi)有這樣的詞語(yǔ),則還必須請(qǐng)錄音員重錄一次,這不但增加了額外的開(kāi)支,還由于時(shí)間過(guò)了較久,錄音員的語(yǔ)調(diào)同原來(lái)相比肯定會(huì)有些變化,所以原來(lái)的錄音只能全部作廢,所有的一切都要從頭開(kāi)始。
綜上所述,采用計(jì)算機(jī)來(lái)分析組合以及剪輯語(yǔ)音的好處是處理直觀、修改方便,語(yǔ)句連續(xù)性強(qiáng),合成的句子更具有人性化。
不僅如此,采用該開(kāi)發(fā)平臺(tái),還可直觀地看出每個(gè)語(yǔ)句的詳細(xì)信息,包括:開(kāi)始地址、結(jié)束地址、語(yǔ)句所用時(shí)間、語(yǔ)句所占用芯片行的段數(shù)等對(duì)使用該語(yǔ)音芯片時(shí)碰到的比較敏感的信息。
為此,設(shè)計(jì)整個(gè)開(kāi)發(fā)平臺(tái)的結(jié)構(gòu)框圖如圖1所示。
系統(tǒng)工作方式如下:首先,通過(guò)傳聲器將相關(guān)的大段語(yǔ)句經(jīng)計(jì)算機(jī)聲卡錄制成為*,way文件并保存,然后借助于語(yǔ)音處理軟件如CoolEdit剪輯出需要的單詞(或短句)并去掉頭尾的空白,將剪輯過(guò)的單詞(或短句)每段都單獨(dú)另存為新的·.wav文件,并把它們?nèi)糠湃艘粋€(gè)單獨(dú)目錄。啟動(dòng)1SD編程燒錄器上位機(jī)開(kāi)發(fā)軟件,選中所有的待錄*.wav文件,并點(diǎn)“開(kāi)始燒錄”,所有過(guò)程將會(huì)自動(dòng)完成。燒錄結(jié)束后會(huì)有提示,并且自動(dòng)記錄一份工作信息表,包括工作時(shí)間、語(yǔ)音文件數(shù)、錄音總時(shí)間、每一段語(yǔ)音在lSD芯片中的起始地址及結(jié)束地址,其占用時(shí)間等。有了這些數(shù)據(jù),就可以較方便地修改甚至對(duì)某些地方重新錄制。將錄制過(guò)的芯片及各段語(yǔ)音的起始地址表交給其它下位機(jī)程序員,他們就可以利用單片機(jī)或DSP等控制器來(lái)隨心所欲地開(kāi)發(fā)相應(yīng)的語(yǔ)音提示設(shè)備了。
4 -F位機(jī)軟硬件
下位機(jī)硬件應(yīng)包括信號(hào)調(diào)理部分和數(shù)據(jù)通信部分,前者將信號(hào)電平調(diào)整到lSD芯片允許的最優(yōu)的范圍,后者接收計(jì)算機(jī)發(fā)來(lái)的各種控制信息,如“開(kāi)始燒錄”信號(hào)、“段間停止”信號(hào)、“返回結(jié)束地址”信號(hào)、“放音試音”信號(hào),通過(guò)編程器的微控制器完成所需任務(wù)。
下位機(jī)硬件框圖設(shè)計(jì)如圖2。
其中MAX232是電平轉(zhuǎn)換芯片,它使計(jì)算機(jī)通過(guò)符合RS232協(xié)議的串口和符合TYL電平的單片機(jī)直接通信。準(zhǔn)備錄制時(shí),電腦通過(guò)串口發(fā)出握手信號(hào)給單片機(jī),單片機(jī)接到該信號(hào)作出響應(yīng),計(jì)算機(jī)接到該回答后將錄音首地址發(fā)送給單片機(jī),同時(shí)放音控件開(kāi)始放音,信號(hào)由音頻線輸入到燒錄器的信號(hào)接收端,經(jīng)信號(hào)調(diào)整電路接至lSD芯片的錄音管腳。單片機(jī)接到首地址后立刻發(fā)控制信息給1SD芯片,通知其開(kāi)始錄音。這樣,就在上位機(jī)的協(xié)調(diào)下語(yǔ)音自動(dòng)地?zé)浀搅诵酒?。?dāng)該段語(yǔ)音錄制完畢后,上位機(jī)發(fā)語(yǔ)音段結(jié)束信號(hào),同時(shí)停止放音,單片機(jī)接收到該信號(hào)后,停止錄音并讀出結(jié)束地址,將其送回上位機(jī)。上位機(jī)讀人該地址將其寫入地址表以備查詢。如果還有待錄語(yǔ)音段的話,在上一語(yǔ)段的結(jié)束地址的基礎(chǔ)上加1,作為新一段的開(kāi)始地址,重復(fù)上述過(guò)程直至錄音完畢。全部語(yǔ)音錄制完畢后,上位機(jī)作出提示,讓你選擇放音按鍵,以測(cè)試錄音效果。當(dāng)按下該鍵時(shí),上位機(jī)quot;依次放音“命令給單片機(jī),單片機(jī)通知lSD芯片開(kāi)始放音,ISD通過(guò)放音管腳將語(yǔ)音信號(hào)輸出,經(jīng)過(guò)功放芯片TDA2822M將功率放大后,通過(guò)揚(yáng)聲器發(fā)聲,就可一段段地將剛錄制的語(yǔ)音放出來(lái)。如有什么地方不滿意,可通過(guò)地址表查出該段首地址,單獨(dú)選擇該段語(yǔ)音,將其首地址輸入”起始地址“框,點(diǎn)擊”開(kāi)始錄音“就可將該段語(yǔ)音重新錄制一遍。
5上位機(jī)軟件
語(yǔ)音編輯軟件采用CoolEdit,它包含高品質(zhì)的數(shù)字效果組件,可在任何聲卡上進(jìn)行64軌混音。上位機(jī)運(yùn)行環(huán)境用可視化的編程軟件Visual C++6.0來(lái)開(kāi)發(fā)。
上位機(jī)運(yùn)行軟件應(yīng)有以下功能
(1)通信功能。因?yàn)樯衔粰C(jī)必須發(fā)控制信號(hào)以及起始地址數(shù)據(jù)給下位機(jī),而下位機(jī)也要發(fā)應(yīng)答信號(hào)及結(jié)束地址數(shù)據(jù)給上位機(jī),故該通信為雙向通信。在此采用MSComm控件。使用串口通信控件進(jìn)行通信,必須首先對(duì)串口進(jìn)行初始化。初始化后,就可以調(diào)用MSComm控件的SetOutput()和Getlnput()函數(shù)來(lái)對(duì)串口進(jìn)行讀寫了,具體的使用方法在微軟的開(kāi)發(fā)手冊(cè)
MSDN中有詳細(xì)介紹。
(2)放音控制功能。上位機(jī)必須有放音控制功能,以便根據(jù)需要來(lái)開(kāi)始、停止聲卡放音。并且因?yàn)樾枰绦蜃詣?dòng)地控制,所以要求放音與停止放音能由VC命令語(yǔ)句來(lái)編程控制,在此采用CActiveMovie3控件。ActiveMovie不僅是一個(gè)播放器,同時(shí)也是ActiveX套件中的一個(gè)控件,它可以用來(lái)播放媒體文件,它支持絕大部分目前通用的媒體格式,它可以播放Wave,Midi,Avi,MPEG,QuickTime Movie等格式文件,甚至還可以用它來(lái)看視盤節(jié)目。由于它還是個(gè)控件,所以可以在VB或VC的程序中調(diào)用它。對(duì)它的操作相當(dāng)簡(jiǎn)單,只需提供要播放的文件名就可以用Run,Pause,Stop方法來(lái)播放、暫停和停止該媒體文件。
(3)保存數(shù)據(jù)功能。需要將各種工作信息(尤其是起始地址信息)保存到一個(gè)文本文件,以供查詢。保存數(shù)據(jù)比較簡(jiǎn)單,直接調(diào)用現(xiàn)有的函數(shù)即可。
6總結(jié)
文中針對(duì)當(dāng)前使用lSD系列語(yǔ)音芯片中存在的問(wèn)題,提出并設(shè)計(jì)了一種開(kāi)發(fā)ISD系列芯片的平臺(tái),它可方便地對(duì)聲音信號(hào)進(jìn)行編輯處理,選好待錄信號(hào)后可自動(dòng)地將這些語(yǔ)音段錄入1SD芯片,燒錄過(guò)程中以直觀形式顯示進(jìn)度,完畢后以文本文件的方式給出每個(gè)語(yǔ)音段的起始地址和結(jié)束地址,方便利用該芯片做相應(yīng)的語(yǔ)音提示或其它電路,因此具有較大的實(shí)用意義。
-
芯片
+關(guān)注
關(guān)注
456文章
51140瀏覽量
426130 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7527瀏覽量
164168 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7532瀏覽量
88423
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論