摘要:2具體實現(xiàn)下面分別介紹字符語音庫的建立、字符語音合成算法、本PDA系統(tǒng)的框架結(jié)構(gòu)和語音中斷服務(wù)例程。2.1建立字符語音庫我們選用G.729語音壓縮編碼標(biāo)準(zhǔn)來建立語音庫。該標(biāo)準(zhǔn)采用的算法是共軛結(jié)構(gòu)的代數(shù)碼激勵線性預(yù)測(CS-ACELP),是基于CELP(碼激勵線性預(yù)測)編碼模型的算法。這種編碼規(guī)范的嚴(yán)格性使性能達(dá)到或超過了3
2 具體實現(xiàn)
下面分別介紹字符語音庫的建立、字符語音合成算法、本PDA系統(tǒng)的框架結(jié)構(gòu)和語音中斷服務(wù)例程。
2.1 建立字符語音庫
我們選用G.729語音壓縮編碼標(biāo)準(zhǔn)來建立語音庫。該標(biāo)準(zhǔn)采用的算法是共軛結(jié)構(gòu)的代數(shù)碼激勵線性預(yù)測(CS-ACELP),是基于CELP(碼激勵線性預(yù)測)編碼模型的算法。這種編碼規(guī)范的嚴(yán)格性使性能達(dá)到或超過了32Kbps的G.726 ADPCM編碼,具有很高的語音質(zhì)量;同時,它是在語音信號8KHz取樣的基礎(chǔ)上得到16bit線性PCM后進(jìn)行編碼的,壓縮后的數(shù)據(jù)速率僅為8Kbps,具有相當(dāng)于8:1的高壓縮率。其算法延遲少于16ms。由于G.726編解碼器能夠?qū)崿F(xiàn)很高的語音質(zhì)量和很低的算法延時,因此被廣泛地應(yīng)用。
字符語音庫是一個單字發(fā)音語音數(shù)據(jù)的集合,中段數(shù)據(jù)之間相互獨立,不具有相關(guān)性。語音庫包含了國標(biāo)一、二級字庫中的所有6763個漢字、10個阿拉伯?dāng)?shù)字和26個英文字符的標(biāo)準(zhǔn)普通話語音數(shù)據(jù)。每個漢字或字符發(fā)音時長為0.65s,采用8KHz抽樣頻率,使用了G.729A語音編碼算法對上述的語音數(shù)據(jù)進(jìn)行壓縮,壓縮后數(shù)據(jù)速率為8Kbps,相當(dāng)于具有8:1的高壓縮率。在漢字中,同音字占了相當(dāng)大的比例,而在語音合成中對于同音字的處理是沒有區(qū)別的,故近7000個漢字,我們只存儲1123個不同的發(fā)音。經(jīng)過同音字處理和采用G.729標(biāo)準(zhǔn)壓縮字符語音數(shù)據(jù),則最終建立的語音庫文件大小為729950字節(jié),完全符合本PDA系統(tǒng)的數(shù)據(jù)存儲要求;否則,語音庫數(shù)據(jù)量太大,本PDA系統(tǒng)不能接受!
建立一個語音壓縮數(shù)據(jù)庫的具體步驟如下:
*將數(shù)字和常用漢字的標(biāo)準(zhǔn)發(fā)音獨立地錄入到數(shù)據(jù)文件中,作為基礎(chǔ)數(shù)據(jù)。使用cooledit2000軟件完成語音的錄入。
*對于輸入數(shù)據(jù),按照每幀10ms(80個樣點)的長度,將A_law語音通過簡單換算變成16bit PCM數(shù)據(jù),作為編碼算法的輸入。
*按照G.729A算法標(biāo)準(zhǔn),對數(shù)據(jù)進(jìn)行編碼。
*將編碼后的數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制比特流,寫入語音庫文件中。壓縮后數(shù)據(jù)速率為8Kbps,具有相當(dāng)于8:1的高壓縮率。
用C語言實現(xiàn)這一過程的程序流程如圖1所示。
字符語音庫的建立是在Windows平臺及Visual C++編程環(huán)境下實現(xiàn)的,最終壓縮處理后數(shù)據(jù)量的大小為729950字節(jié),每個字符語音數(shù)據(jù)的大小是650字節(jié)。
通信工程師備考資料免費領(lǐng)取
去領(lǐng)取