前言
VTX316是北京宇音天下科技有限公司最新推出的一款更具性價(jià)比的中文TTS語(yǔ)音合成芯片,采用QFN32(4*4mm)封裝,體積更加精巧,文本合成一次高達(dá)500字節(jié)數(shù)據(jù)(250個(gè)漢字),支持8種發(fā)音風(fēng)格,支持低功耗模式(2uA)等等……
但大家在開(kāi)發(fā)過(guò)程中,往往還會(huì)忽略一些比較實(shí)用的小技巧,認(rèn)識(shí)這些將給您的開(kāi)發(fā)帶來(lái)極大的便利,下面給大家細(xì)致講解。
一、芯片回傳數(shù)據(jù)
回傳數(shù)據(jù)是TTS語(yǔ)音合成芯片主動(dòng)或被動(dòng)告訴上位機(jī)自己當(dāng)前所處的狀態(tài),方便開(kāi)發(fā)者根據(jù)這些數(shù)據(jù)來(lái)判斷要執(zhí)行的任務(wù)。
但很多開(kāi)發(fā)者對(duì)于數(shù)據(jù)回傳理解不是很透徹,造成語(yǔ)音合成芯片不能按照設(shè)計(jì)執(zhí)行下一步任務(wù)。
1、初始化回傳:0x4A
芯片在上電或是復(fù)位后,會(huì)主動(dòng)回傳帶有”0x4A“的數(shù)據(jù),只有接收到該數(shù)據(jù),表示語(yǔ)音芯片已經(jīng)初始化完成,可以開(kāi)始執(zhí)行任務(wù)了。
注意:當(dāng)MCU沒(méi)有收到TTS芯片回傳的“0x4A”數(shù)據(jù)時(shí),芯片是不會(huì)執(zhí)行任何指令的!
2、命令接收成功回傳:0x41
當(dāng)上位機(jī)給TTS語(yǔ)音芯片發(fā)送指令后,會(huì)主動(dòng)回傳一個(gè)單字節(jié)數(shù)據(jù)“0x41”,代表命令接收成功,開(kāi)始執(zhí)行。
3、命令接收失敗回傳:0x45
如TTS芯片接收到錯(cuò)誤命令幀時(shí),會(huì)主動(dòng)回傳一個(gè)單字節(jié)數(shù)據(jù)“0x45”,這時(shí)就需要開(kāi)發(fā)者們查看命令幀是否準(zhǔn)確了,或是因其它干擾因素影響,需要重新發(fā)送指令。
4、芯片狀態(tài)回傳:0x4E、0x4F
VTX316 TTS語(yǔ)音合成芯片有2種工作狀態(tài):空閑狀態(tài)、忙時(shí)狀態(tài),可通過(guò)軟件“芯片忙閑查詢命令”,進(jìn)行查詢。
命令幀:0xFD 0x00 0x01 0x21
忙時(shí)狀態(tài):指芯片正在合成播音中,任務(wù)還未結(jié)束,此時(shí)查詢狀態(tài)會(huì)回傳一個(gè)單字節(jié)數(shù)據(jù)“0x4E”。
注意:芯片在忙時(shí)狀態(tài)下,用戶很容易犯這樣一個(gè)錯(cuò)誤
例如:當(dāng)前TTS芯片正在合成播音,此時(shí)MCU向TTS芯片發(fā)送一條指令,語(yǔ)音芯片會(huì)立即中斷當(dāng)前的合成任務(wù),從而執(zhí)行剛剛發(fā)來(lái)的新任務(wù)。為避免此類事件的發(fā)生,可以在發(fā)送指令前先查詢一下芯片的狀態(tài),如回傳“0x4F”(代表芯片處于空閑狀態(tài))再發(fā)送下一條指令。
空閑狀態(tài):也稱待機(jī)狀態(tài),此時(shí)查詢狀態(tài)會(huì)回傳一個(gè)單字節(jié)的數(shù)據(jù)“0x4F”。
注意:當(dāng)合成播音結(jié)束時(shí),也會(huì)主動(dòng)回傳一個(gè)單字節(jié)數(shù)據(jù)“0x4F”,表示合成完畢,進(jìn)入待機(jī)狀態(tài)了。
另外也可通過(guò)硬件查詢TTS芯片第6引腳“R/B”的電平來(lái)判斷語(yǔ)音合成芯片的忙閑狀態(tài)。
忙時(shí)狀態(tài):“R/B”為高電平。
空閑狀態(tài):“R/B”為低電平。
二、低功耗模式
對(duì)于要求極低功耗的應(yīng)用場(chǎng)景,開(kāi)發(fā)者可選擇將TTS語(yǔ)音芯片進(jìn)入低功耗模式。
1、物理斷電
通常情況下開(kāi)發(fā)者會(huì)采用上位機(jī)通過(guò)電源管理芯片控制語(yǔ)音合成芯片的供電腳“VCC”的通斷電(即工作完斷電,工作前上電)方案。
注意:采用此方案時(shí)需注意,芯片VCC管腳斷電后,要防止電流倒灌現(xiàn)象;另外,還要注意芯片上電后,待接收到TTS芯片回傳的“0x4A”后,再開(kāi)始執(zhí)行任務(wù)。
2、DeepSleep模式
針對(duì)于上位機(jī)IO緊張的情況下,開(kāi)發(fā)者也可以采用讓芯片進(jìn)入DeepSleep模式(睡眠模式),該模式下芯片功耗為2uA。
命令幀:FD 00 01 22
注意:TTS芯片進(jìn)入睡眠模式后,需先將芯片喚醒才能正常工作
喚醒方法有2種:
軟喚醒:?jiǎn)拘衙顜?xFD 0x00 0x01 0xFF,其它指令也可以將語(yǔ)音合成芯片喚醒
硬喚醒:芯片15引腳(WAKEUP)下降沿信號(hào)喚醒
注意:芯片在睡眠時(shí),可能因串口抖動(dòng),造成誤喚醒;同樣還要注意芯片上電后,待接收到TTS芯片回傳的“0x4A”后,再開(kāi)始執(zhí)行任務(wù)。
三、配置參數(shù)實(shí)時(shí)存儲(chǔ)
VTX316語(yǔ)音合成芯片的合成參數(shù)配置是實(shí)時(shí)存儲(chǔ)在芯片內(nèi)部的(掉電不會(huì)丟失),開(kāi)發(fā)者們無(wú)需每次開(kāi)機(jī)都重新配置其參數(shù),只需配置一次即可。
四、特殊參數(shù)配置
特殊參數(shù)配置是應(yīng)對(duì)不同功放芯片時(shí)序差異,解決上電和斷電時(shí)產(chǎn)生的POP雜音和句首丟音的問(wèn)題。
本語(yǔ)音合成芯片支持修改3個(gè)特殊參數(shù):
1、去上電POP音延時(shí)參數(shù)
遇到上電有POP雜音時(shí),可增加此延時(shí)參數(shù)去除。
默認(rèn)值為0,調(diào)整范圍:0~200,即0~200ms。
注意:數(shù)值越小,芯片啟動(dòng)越快。
2、去句首丟音延時(shí)參數(shù)
遇到句首丟音時(shí),可增加此延時(shí)參數(shù)解決。
默認(rèn)值為0,調(diào)整范圍:0~250,即0~250ms。
注意:數(shù)值越小,出音響應(yīng)越快。
3、去句尾POP音延時(shí)參數(shù)
遇到句尾有POP雜音時(shí),可通過(guò)增加此延時(shí)參數(shù)去除。
默認(rèn)值為50,調(diào)整范圍:0~300,即0~300ms。
注意:值越小,合成播音完畢返回“0x4F”(空閑狀態(tài))越快。
五、提示音連播
VTX316TTS語(yǔ)音芯片預(yù)置多首提示音效(有些開(kāi)發(fā)者稱為鈴聲),提示音效一般用于在語(yǔ)音播報(bào)前,起到前導(dǎo)提示的作用。
而大多的提示音效時(shí)長(zhǎng)較短,我們可以通過(guò)多次播放同一提示音來(lái)實(shí)現(xiàn)一個(gè)較長(zhǎng)提示音的效果,例如:“sound901”提示音,音效為蜂鳴器“滴”,時(shí)長(zhǎng)為50ms。
如果我們想實(shí)現(xiàn)先播報(bào)3次“滴”,每次間隔100ms,再播報(bào)其它內(nèi)容,可以這樣做:
發(fā)送文本內(nèi)容:sound901[p100]sound901[p100]sound901,歡迎使用宇音天下語(yǔ)音合成芯片
注意:[p100]=100ms
希望這些小技巧能幫助廣大開(kāi)發(fā)者們更好地理解和應(yīng)用VTX316 TTS語(yǔ)音合成芯片。如果有任何疑問(wèn)或需要進(jìn)一步幫助,請(qǐng)隨時(shí)告訴我們。
審核編輯 黃宇
-
語(yǔ)音合成芯片
+關(guān)注
關(guān)注
0文章
17瀏覽量
7477
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論