玩转语音合成芯片(TTS芯片),看这一篇就够了

电子说

1.2w人已加入

描述

前言
什么是语音合成芯片:语音合成芯片也称为TTS芯片,即文字转语音芯片,是一种能够将输入的文字信息转换为语音输出的芯片。通过TTS芯片,我们可以将文字信息转化为自然语音,实现人机语音交互。
语音合成芯片的应用非常广泛。例如,在智能家居领域,它可以用于语音控制家电设备;在车载设备中,它可以实时播报导航信息或交通提醒;在医疗设备中,它可以帮助医生或患者获取语音形式的医疗信息;在机器人领域,它使得机器人能够与人类进行语音交互,提高人机交互的便捷性和自然性。

TTS

一、芯片介绍
我们以市场中主流的TTS芯片SYN8086为例,它是一款性/价比更高,效果更自然的一款高端语音合成芯片。本芯片通过UART接口,接收待合成的文本数据,实现文本到语音(或TTS语音)的转换。
二、功能介绍
①、支持清晰、自然、准确的任意中文文本的合成,文本编码可采用GB2312、GBK、Unicode和UTF8四种编码方式。
②、芯片支持文本智能分析处理功能,对常见的数值、电话号码、时间日期、度量衡符号等格式的文本,芯片能够根据内置的文本匹配规则进行正确的识别和处理。
③、支持多音字和姓氏处理、多个发音人、音量、语速、语调调整、提示音等
④、支持低功耗模式、UART通讯方式。支持多种控制命令等
三、应用场景
- 车载终端 智慧停车 智能家居 智能闹钟
- 考勤终端 公交报站 智能手表 智能家电 
- 排队叫号 预警终端 智能门铃 智能药盒
- 仪器仪表 智能玩具 智能门锁 智能穿戴
- 语音对讲 自助终端 血压计   充电桩  

TTS

四、最小系统
- 最小系统包括:控制器模块、语音合成芯片、功放模块和喇叭。
- 主控制器和语音合成芯片之间通过UART接口连接,主控芯片UART接口向语音合成芯片发送控制命令和文本,语音合成芯片把接收到的文本合成为语音信号输出,输出的信号经功率放大器进行放大后连接到喇叭进行播放。

TTS

五、软件设计
1、串口命令
说明:上位机通过串口发送给语音合成芯片的所有命令和数据都需要用“帧”的方式进行封装后传输。
- 公共命令汇总

TTS

- 语音合成命令汇总

TTS

举例:播放文本编码格式为 “GBK” 的文本“宇音天下”
命令帧:0xFD 0x00 0x0A 0x01 0x01 0xD3 0xEE 0xD2 0xF4 0xCC 0xEC 0xCF 0xC2

TTS

2、控制标记
说明:汉字博大精深的文化底蕴,和当前技术发展的限制,语音合成还不能做到百分之百的准确。为满足客户在各种复杂环境的个性化需求,特推出以下文本控制标记,用于灵活控制汉字发音的变化。

- 部分控制标记

TTS

 

TTS

- 控制标记举例:

TTS

举例:设置TTS音量为10级
命令帧:0xFD 0x00 0x07 0x06 0x01 0x5B 0x76 0x31 0x30 0x5D
举例:设置TTS语速为10级
命令帧:0xFD 0x00 0x07 0x06 0x01 0x5B 0x73 0x31 0x30 0x5D

3、提示音
SYN8086语音合成芯片内集成了多首声音提示音,可用于不同行业不同场合的信息提醒、报警等功能。例如:刷卡音,门铃音,警报音等。
- 部分提示音举例

TTS

举例:播放名称为“sound901”的提示音
命令帧:FD 00 0A 01 01 73 6F 75 6E 64 39 30 31

4、C语言范例

 

#include <  reg51.h  > #include <  string.h  > void main(void) { /需要发送的文本******************/ char code text[ ] = {"欢迎使用宇音天下研发的语音合成芯片"}; unsigned char headOfFrame[5]; unsigned char length ; unsigned int i = 0; length = strlen(text); //需要发送文本的长度 /串口的初始化********************/ TL1 = 0xFA; // 在11.0592MHz 下,设置波特率9600bps,工作方式2 TH1 = 0xFA; TMOD = 0x20; SCON = 0x50; // 串口工作方式1,允许接收 PCON = 0x80; EA = 0; REN = 1; TI = 0; //发送中断标志位置零 RI = 0; //接收中断标志位置零 TR1 = 1; //定时器1 用作波特率发生 /发送过程*********************/ headOfFrame[0] = 0xFD ; //构造帧头FD headOfFrame[1] = 0x00 ; //构造数据区长度的高字节 headOfFrame[2] = length + 2; //构造数据区长度的低字节 headOfFrame[3] = 0x01 ; //构造命令字:合成播放命令 headOfFrame[4] = 0x01 ; //构造命令参数:编码格式为GBK for(i = 0; i<  5; i++) //依次发送构造好的5个帧头字节 { SBUF = headOfFrame[i]; while (TI== 0) {;} //等待发送中断标志位置位 TI = 0; //发送中断标志位清零 } for(i = 0; i<  length; i++) //依次发送待合成的文本数据 { SBUF = text[i]; while (TI== 0) {;} TI = 0; } // while(1); }

 

六、硬件设计
1、通讯方式
语音合成芯片支持UART接口通讯方式,可通过UART 接口接收上位机发送的命令和数据。

TTS

2、引脚定义

TTS

3、参考电路

TTS

4、电源电路设计
3.1V-4.2V单独供电,接VCC口。POPEN、BAUD0、BAUD1、WAKEUP默认均有上拉电阻,如果IO需要上拉请上拉到VDDIO,而不是VCC。

- 功放参考电路

TTS

以CS8126T为参考

5、芯片参数
-  特性极限值

TTS


- 电压工作范围

TTS


6、模块说明
- 模块实物图

TTS

- 模块尺寸

TTS



- 模块引脚图

TTS

- 模块引脚定义

TTS

结语
智能语音技术正在引领人机交互进入全新的时代。其卓越的语音处理能力、高度集成化和小型化设计,以及不断优化的低功耗特性,使得语音合成芯片在智能家居、智能车载、可穿戴设备等多个领域展现出广阔的应用前景。
在此,我们期待语音合成芯片技术的不断创新与发展,为人与人、人与机器之间的沟通搭建起更加便捷、高效的桥梁,共同开启智能语音交互的新篇章。 

审核编辑 黄宇

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

全部0条评论

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

×
20
完善资料,
赚取积分