一、SYN6658
SYN6658是中文語(yǔ)音合成芯片,通過(guò)UART 接口或SPI 接口通訊方式,接收待合成的文本數(shù)據(jù),實(shí)現(xiàn)文本到語(yǔ)音的轉(zhuǎn)換??梢圆捎肎B2312、GBK、BIG5 和Unicode 四種編碼方式。我們一般直接采用語(yǔ)音合成模塊來(lái)實(shí)現(xiàn)語(yǔ)音的播放。
二、YS-V6
YS-V6:語(yǔ)音合成模塊,直接將單片機(jī)(或六合一串口)與語(yǔ)音合成模塊之間通過(guò)串口通信方式連接,按照“5 個(gè)字節(jié)幀頭+文本”的格式進(jìn)行數(shù)據(jù)發(fā)送即可。
模塊管腳說(shuō)明:
三、YS-V6的使用
命令幀格式:“幀頭FD + 數(shù)據(jù)區(qū)長(zhǎng)度+數(shù)據(jù)區(qū)”。
注意:數(shù)據(jù)區(qū)(含命令字,命令參數(shù),待發(fā)送文本)的實(shí)際字節(jié)數(shù)必須與幀頭后定義的數(shù)據(jù)區(qū)長(zhǎng)度嚴(yán)格一致,否則芯片會(huì)報(bào)接收失敗。
這個(gè)文本即我們要播放的語(yǔ)音的16 進(jìn)制數(shù)據(jù),直接利用配套的軟件可以生成出對(duì)應(yīng)文本的16 進(jìn)制數(shù)據(jù),用單片機(jī)直接發(fā)送這些數(shù)據(jù)出去給V6語(yǔ)音模塊,便可讓V6 語(yǔ)音模塊發(fā)音。
舉例如下:
注意事項(xiàng):
1、本模塊發(fā)音是實(shí)時(shí)的,只要有文本數(shù)據(jù)發(fā)給模塊就開(kāi)始播放聲音,如播放過(guò)程中有新文本數(shù)據(jù),將停止當(dāng)前播放,播放新的文本數(shù)據(jù)。
2、同一幀數(shù)據(jù)中,每個(gè)字節(jié)之間的發(fā)送間隔不能超過(guò)15ms;幀與幀之間的發(fā)送間隔必須超過(guò)15ms(為保證通信質(zhì)量,建議至少留2ms余量,即:大于17ms)。
3、待發(fā)送文本長(zhǎng)度必須小于等于4096字節(jié)。實(shí)際發(fā)送的長(zhǎng)度大于4096時(shí),芯片會(huì)報(bào)接收失敗。
4、如用戶需要幾個(gè)文本連續(xù)播放,則需要判斷當(dāng)前模塊是否在播放,等當(dāng)前文本播放完后再發(fā)送下一個(gè)文本,可通過(guò)串口判斷串口反饋或判斷模塊RDY 引腳的電平狀態(tài),從而判斷當(dāng)前是否處于播放完?duì)顟B(tài)。
用戶在連續(xù)播放文本內(nèi)容時(shí),在收到前一幀數(shù)據(jù)播放完畢的“芯片空閑”字節(jié)(即0x4F)后,最好延時(shí)1ms左右再發(fā)送下一幀數(shù)據(jù)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-463041.html
四、代碼實(shí)現(xiàn)
void Voice_Announcements(char *yunyin_wenben)//格式 “5 個(gè)字節(jié)幀頭+文本”
{
yuyin_zhentou[2]=strlen(yunyin_wenben)+2;//更新幀頭的數(shù)據(jù)區(qū)長(zhǎng)度
Usart_SendArray(USART2,yuyin_zhentou,5);//先發(fā)送5個(gè)字節(jié)幀頭
Usart_SendStr(USART2,yunyin_wenben);//發(fā)送yunyin_wenben數(shù)組里存放的文本
for(char q=0;q<20;q++)//清除yunyin_final數(shù)組里面的數(shù)據(jù)
{
yunyin_final[q]=0;
}
}
yuyin_zhentou[2]=strlen(yunyin_wenben)+2;
這個(gè)"2"是命令字和命令參數(shù)的2個(gè)字節(jié)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-463041.html
到了這里,關(guān)于語(yǔ)音合成芯片——SYN6658的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!