電子語音玩具設(shè)計(jì)中語音、軟件、功耗等技術(shù)的綜合考慮
趙大有 2002/10/28
玩具設(shè)計(jì)看似簡單,但是其背后真實(shí)的技術(shù)背景并不簡單,要綜合考慮軟件和硬件方面的技術(shù)設(shè)計(jì)以及語音處理技術(shù),同時(shí)還要選擇合適的微控制器及相關(guān)外圍器件,從而實(shí)現(xiàn)低成本和低功耗設(shè)計(jì)。 今天孩子們的玩具實(shí)際上屬于一種嵌入式系統(tǒng),本文跳過玩具產(chǎn)品設(shè)計(jì)項(xiàng)目中的"概念設(shè)計(jì)"階段,直接從項(xiàng)目的工程設(shè)計(jì)開始討論,并且假定項(xiàng)目的設(shè)計(jì)規(guī)格說明書(設(shè)計(jì)指標(biāo))已經(jīng)完成。這些設(shè)計(jì)規(guī)格說明書通常是以游戲模式流程圖的方式來詳細(xì)地描述玩具的行為。我們設(shè)想的洋娃娃游戲模式如下:
常規(guī)模式:
A. 玩具是嬰兒洋娃娃,其腰部配備一個(gè)常態(tài)為斷開的開關(guān)(該開關(guān)用來檢測擁抱洋娃娃的動(dòng)作),還有一個(gè)重力開關(guān)(該開關(guān)用來檢測洋娃娃是站立還是躺下姿勢)。
B. 洋娃娃站立時(shí)重力開關(guān)斷開。 C. 洋娃娃站立時(shí),如果腰部開關(guān)被按下,洋娃娃將播放下列聲音中的一種:哈哈地笑、長時(shí)間地大笑、或者以愉快的聲調(diào)說話。每一次按下洋娃娃的腰部開關(guān),洋娃娃都將循環(huán)地播放上述聲音中的一種。
D. 洋娃娃躺下時(shí),如果腰部開關(guān)被按下,那么洋娃娃會發(fā)出哭聲,然后轉(zhuǎn)為無聲。E. 如果將洋娃娃的姿勢由躺下轉(zhuǎn)為站立,洋娃娃就會打哈欠。 F.
如果將洋娃娃的姿勢由站立轉(zhuǎn)為躺下,洋娃娃就會發(fā)出簡短的鼾聲,然后轉(zhuǎn)為無聲。
語音控制模式:
A. 洋娃娃站立時(shí),如果超過2分鐘沒有外界信息輸入,他會說:"好寂寞呀,怎么沒人陪我玩"B.在這個(gè)時(shí)候,如果還沒有信息輸入,洋娃娃將播放下列聲音中的一種:哈哈地笑、長時(shí)間地大笑、或者以愉快的聲調(diào)說話。C.
洋娃娃站立時(shí),你可以和他進(jìn)行對話,如"你多大了?"、"你叫什么?"甚至可以和你對詩。D.如果給洋娃娃加上機(jī)械動(dòng)作,我們同樣可以用語音來控制它的動(dòng)作,比如你可以叫他跳舞、唱歌、行走等。
聲音處理
工程設(shè)計(jì)的第一步是記錄聲音并且將聲音信息傳送給芯片開發(fā)系統(tǒng)。盡管以后還要進(jìn)行下采樣(downsapling),但是對聲音信號進(jìn)行高質(zhì)量的采樣仍然十分重要。從聲學(xué)意義上講,該記錄過程通常都應(yīng)該在絕對安靜的錄音棚環(huán)境下進(jìn)行,要采用44KHz
16位采樣方式錄制,并直接將聲音信號記錄在計(jì)算機(jī)硬盤上。通常情況下應(yīng)該聘請語音專業(yè)人員來從事錄制工作,而不是由項(xiàng)目工程師或辦公人員來錄制。每一個(gè)字詞或者短語最好錄音幾次,這樣就有選擇的余地。
對于那些需要從電子樂器中獲取音樂的工程項(xiàng)目來說,更可取的方法是將藝術(shù)家的演奏效果記錄成MIDI格式。MIDI格式可以修改演奏的樂器以及播放順序,并且在必要的時(shí)候(如根據(jù)硬件進(jìn)一步調(diào)整語音性能)去掉多調(diào)(polyphonic)成分。
有時(shí),音頻工程師還必須通過合并冗余的聲音信號來實(shí)現(xiàn)被采樣聲音的分解以壓縮ROM空間。一個(gè)典型實(shí)例就是從1到20之間計(jì)數(shù)的語音玩具。在這樣的玩具設(shè)計(jì)中,并不需要為每一個(gè)數(shù)字都單獨(dú)進(jìn)行語音采樣和錄音,語音采樣通常從數(shù)字1開始到12,然后是數(shù)字20,接下來是音節(jié)"thir-"(數(shù)字13)、"fif-"(數(shù)字15)和"eigh-"(數(shù)字18),除此之外,還有后綴"-teen"。請注意,"four"、"six"、"seven"和"nine"等語音信號既可以表示這些數(shù)字所代表的語音,也可作為音節(jié)跟語音后綴"teen"結(jié)合表示大于10的數(shù)字的語音。
對語音信號進(jìn)行分解的程度取決于可用存儲空間的大小?梢試L試將數(shù)字31分解成"thir-"(并且這個(gè)音節(jié)還可以用于數(shù)字13和30)、"-ty"(這個(gè)音節(jié)可以用于所有帶"-ty"的數(shù)字中)以及"one"。語音的分解費(fèi)時(shí)費(fèi)力,要拆分和連接音節(jié),增強(qiáng)爆破音,測試連接音的不同組合以確保連接音的聲效像一個(gè)連貫字。有時(shí)為了得到僅僅幾個(gè)詞的比較理想的聲效,可能需要幾個(gè)星期時(shí)間,所以如果沒有必要應(yīng)該盡量避免更進(jìn)一步的分解。
語音分解的一個(gè)極端例子是設(shè)計(jì)類似于SC-01或SPO256A-AL2這樣的音位變體語音合成芯片。芯片中存儲了(實(shí)際上是合成)一個(gè)語音片段庫,通過這個(gè)語音庫你可以組合出各種各樣的詞。舉例來說,你可以從語音片段"d"、"ah"和"g"來構(gòu)造出"dog"。然而,要保證這種合成的聲效聽起來非常接近于實(shí)際情況就十分困難。
微控制器的選擇
在玩具的生產(chǎn)制造中,成本控制是一個(gè)重要的考慮因素,所以要盡量選用廉價(jià)的控制芯片。這樣一來幾乎所有帶語音的玩具都用4位語音微控制器芯片設(shè)計(jì),這些芯片都包括簡單的控制器內(nèi)核、輸入和輸出管腳、寄存器以及串行訪問的ROM,在該ROM中存入一段小程序和大量語音采樣信號。
早期芯片采用簡單的4位PCM編碼技術(shù),能在很短的ROM空間內(nèi)存儲很長的語音編碼信號。最新的芯片都采用4位或5位ADPCM技術(shù),這是一種預(yù)測編碼系統(tǒng),它利用了模擬信號數(shù)字化過程中連續(xù)采樣之間的相關(guān)性。從算法上來說,每一個(gè)采樣值結(jié)合解碼器當(dāng)前的輸出狀態(tài)生成下一個(gè)輸出狀態(tài)。利用ADPCM技術(shù),一個(gè)5位輸入數(shù)據(jù)流可以驅(qū)動(dòng)一個(gè)8位DAC,而且可以產(chǎn)生非常好的聲效。盡管這種壓縮系統(tǒng)并不產(chǎn)生原始信號的字節(jié)流,然而這對于語音和音樂播放來說已經(jīng)足夠了,同8位PCM編碼方式相比,可以節(jié)省37.5%的ROM空間。
許多玩具采用的外部電路都非常簡單,通常包括一個(gè)電池、一個(gè)用來設(shè)定芯片時(shí)基的外部電阻、一個(gè)小喇叭或一個(gè)用于驅(qū)動(dòng)喇叭的晶體管。這些芯片的價(jià)格如何呢?一般來說,可以容納兩分鐘音頻信號的掩膜微控制器裸片,量產(chǎn)條件下成本大約為每片1.20美元。絕大多數(shù)的玩具都使用更小的芯片,價(jià)格大約在0.15美元到0.30美元。本文討論的應(yīng)用選擇W583S10,在華邦公司推薦的6.4kHz采樣頻率下,該芯片僅能存儲10秒的語音數(shù)據(jù),如圖1所示。注意,電阻R1的值取決于采樣頻率。通常情況下,設(shè)計(jì)工程師會使用一個(gè)電阻替換盒來試驗(yàn)其它阻值。
上述芯片的指令集并不豐富,其指令集通常包括對寄存器加載常量的指令、寄存器增/減指令、設(shè)置輸出管腳狀態(tài)指令、無條件跳轉(zhuǎn)指令、寄存器無條件跳轉(zhuǎn)指令以及根據(jù)輸入管腳狀態(tài)的條件跳轉(zhuǎn)指令。芯片中實(shí)現(xiàn)子程序的唯一方法是在一個(gè)寄存器中存儲一個(gè)返回地址。在對器件編程時(shí),要大量使用GOTO語句,對于一些較大的項(xiàng)目來說,程序中會出現(xiàn)許多冗余代碼。
語音識別(控制)系統(tǒng)的選擇
語音識別系統(tǒng)的基本流程如圖1所示
圖1 語音識別系統(tǒng)的基本流程
語音信號輸入后首先經(jīng)過濾波器,去除干擾及可能造成混淆的成分,然后由前端處理模塊提取語音識別所需的特征參數(shù)。當(dāng)前語音識別所用的特征參數(shù)主要有兩種類型:線性預(yù)測倒譜系數(shù)(Linear
Prediction Cepstrum Coefficient, LPCC)和MEL頻標(biāo)倒譜系數(shù)(Mel Frequency Cepstrum
Coefficient, MFCC)。
LPCC系數(shù)主要是模擬人的發(fā)聲模型,未考慮人耳的聽覺特性。它對元音有較好的描述能力,對輔音描述能力及抗噪性能比較差,而其優(yōu)點(diǎn)為計(jì)算量小,易于實(shí)現(xiàn)。
MFCC系數(shù)則考慮到了人耳的聽覺特性,具有較好的識別性能。但是,由于它需要進(jìn)行快速傅立葉變換(Fast Fourier Transform
Algorithm, FFT),將語音信號由時(shí)域變換到頻域上處理,因此其計(jì)算量和計(jì)算精度要求高,必須在DSP上完成。
在此,我們選擇準(zhǔn)確率最高、功能最全、價(jià)格最適宜的Sensory語音識別芯片(RSC164或RSC364)。
RSC-364
由美國Sensory Integrated Circuit公司開發(fā),2000年開始生產(chǎn),是一顆為消費(fèi)類電子產(chǎn)品應(yīng)用的低價(jià)位的語音識別專用芯片,其結(jié)構(gòu)圖如圖2所示。
RSC-364是一片以8位MCU為核心的CMOS器件,片上還集成了ROM、RAM、A/D、
深圳捷通公司供稿 CTI論壇編輯
捷通82語音識別模塊產(chǎn)品說明書 2003-06-09 |
語音合成芯片情況介紹和產(chǎn)品設(shè)想 2003-05-06 |
數(shù)字可視復(fù)讀機(jī)方案 2003-04-09 |
語音識別控制電話機(jī)方案 2003-04-04 |
智能早教機(jī)方案 2003-04-03 |