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