【解读】VTX316 TTS语音合成芯片几个很实用的应用技巧

电子说

1.3w人已加入

描述

 

前言
VTX316是北京宇音天下科技有限公司最新推出的一款更具性价比的中文TTS语音合成芯片,采用QFN32(4*4mm)封装,体积更加精巧,文本合成一次高达500字节数据(250个汉字),支持8种发音风格,支持低功耗模式(2uA)等等……
但大家在开发过程中,往往还会忽略一些比较实用的小技巧,认识这些将给您的开发带来极大的便利,下面给大家细致讲解。

一、芯片回传数据
回传数据是TTS语音合成芯片主动或被动告诉上位机自己当前所处的状态,方便开发者根据这些数据来判断要执行的任务。
但很多开发者对于数据回传理解不是很透彻,造成语音合成芯片不能按照设计执行下一步任务。
1、初始化回传:0x4A
芯片在上电或是复位后,会主动回传带有”0x4A“的数据,只有接收到该数据,表示语音芯片已经初始化完成,可以开始执行任务了。
注意:当MCU没有收到TTS芯片回传的“0x4A”数据时,芯片是不会执行任何指令的!
2、命令接收成功回传:0x41
当上位机给TTS语音芯片发送指令后,会主动回传一个单字节数据“0x41”,代表命令接收成功,开始执行。
3、命令接收失败回传:0x45
如TTS芯片接收到错误命令帧时,会主动回传一个单字节数据“0x45”,这时就需要开发者们查看命令帧是否准确了,或是因其它干扰因素影响,需要重新发送指令。
4、芯片状态回传:0x4E、0x4F
VTX316 TTS语音合成芯片有2种工作状态:空闲状态、忙时状态,可通过软件“芯片忙闲查询命令”,进行查询。
命令帧:0xFD 0x00 0x01 0x21

忙时状态:指芯片正在合成播音中,任务还未结束,此时查询状态会回传一个单字节数据“0x4E”。
注意:芯片在忙时状态下,用户很容易犯这样一个错误
例如:当前TTS芯片正在合成播音,此时MCU向TTS芯片发送一条指令,语音芯片会立即中断当前的合成任务,从而执行刚刚发来的新任务。为避免此类事件的发生,可以在发送指令前先查询一下芯片的状态,如回传“0x4F”(代表芯片处于空闲状态)再发送下一条指令。

空闲状态:也称待机状态,此时查询状态会回传一个单字节的数据“0x4F”。
注意:当合成播音结束时,也会主动回传一个单字节数据“0x4F”,表示合成完毕,进入待机状态了。

另外也可通过硬件查询TTS芯片第6引脚“R/B”的电平来判断语音合成芯片的忙闲状态。
忙时状态:“R/B”为高电平。
空闲状态:“R/B”为低电平。

二、低功耗模式
对于要求极低功耗的应用场景,开发者可选择将TTS语音芯片进入低功耗模式。
1、物理断电
通常情况下开发者会采用上位机通过电源管理芯片控制语音合成芯片的供电脚“VCC”的通断电(即工作完断电,工作前上电)方案。
注意:采用此方案时需注意,芯片VCC管脚断电后,要防止电流倒灌现象;另外,还要注意芯片上电后,待接收到TTS芯片回传的“0x4A”后,再开始执行任务。

2、DeepSleep模式
针对于上位机IO紧张的情况下,开发者也可以采用让芯片进入DeepSleep模式(睡眠模式),该模式下芯片功耗为2uA。
命令帧:FD 00 01 22
注意:TTS芯片进入睡眠模式后,需先将芯片唤醒才能正常工作

唤醒方法有2种:
软唤醒:唤醒命令帧0xFD 0x00 0x01 0xFF,其它指令也可以将语音合成芯片唤醒
硬唤醒:芯片15引脚(WAKEUP)下降沿信号唤醒
注意:芯片在睡眠时,可能因串口抖动,造成误唤醒;同样还要注意芯片上电后,待接收到TTS芯片回传的“0x4A”后,再开始执行任务。

三、配置参数实时存储
VTX316语音合成芯片的合成参数配置是实时存储在芯片内部的(掉电不会丢失),开发者们无需每次开机都重新配置其参数,只需配置一次即可。

四、特殊参数配置
特殊参数配置是应对不同功放芯片时序差异,解决上电和断电时产生的POP杂音和句首丢音的问题。
本语音合成芯片支持修改3个特殊参数:
1、去上电POP音延时参数
遇到上电有POP杂音时,可增加此延时参数去除。
默认值为0,调整范围:0~200,即0~200ms。
注意:数值越小,芯片启动越快。

2、去句首丢音延时参数
遇到句首丢音时,可增加此延时参数解决。
默认值为0,调整范围:0~250,即0~250ms。
注意:数值越小,出音响应越快。

3、去句尾POP音延时参数
遇到句尾有POP杂音时,可通过增加此延时参数去除。
默认值为50,调整范围:0~300,即0~300ms。
注意:值越小,合成播音完毕返回“0x4F”(空闲状态)越快。

五、提示音连播
VTX316TTS语音芯片预置多首提示音效(有些开发者称为铃声),提示音效一般用于在语音播报前,起到前导提示的作用。
而大多的提示音效时长较短,我们可以通过多次播放同一提示音来实现一个较长提示音的效果,例如:“sound901”提示音,音效为蜂鸣器“滴”,时长为50ms。
如果我们想实现先播报3次“滴”,每次间隔100ms,再播报其它内容,可以这样做:
发送文本内容:sound901[p100]sound901[p100]sound901,欢迎使用宇音天下语音合成芯片
注意:[p100]=100ms

希望这些小技巧能帮助广大开发者们更好地理解和应用VTX316 TTS语音合成芯片。如果有任何疑问或需要进一步帮助,请随时告诉我们。

审核编辑 黄宇


 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分