首页 >>  正文

string+h

来源:baiyundou.net   日期:2024-07-04

前言


什么是语音合成芯片:语音合成芯片也称为TTS芯片,即文字转语音芯片,是一种能够将输入的文字信息转换为语音输出的芯片。通过TTS芯片,我们可以将文字信息转化为自然语音,实现人机语音交互。

语音合成芯片的应用非常广泛。例如,在智能家居领域,它可以用于语音控制家电设备;在车载设备中,它可以实时播报导航信息或交通提醒;在医疗设备中,它可以帮助医生或患者获取语音形式的医疗信息;在机器人领域,它使得机器人能够与人类进行语音交互,提高人机交互的便捷性和自然性。

一、芯片介绍


我们以市场中主流的TTS芯片SYN8086为例,它是一款性/价比更高,效果更自然的一款高端语音合成芯片。本芯片通过UART接口,接收待合成的文本数据,实现文本到语音(或TTS语音)的转换。

二、功能介绍


①、支持清晰、自然、准确的任意中文文本的合成,文本编码可采用GB2312、GBK、Unicode和UTF8四种编码方式。

②、芯片支持文本智能分析处理功能,对常见的数值、电话号码、时间日期、度量衡符号等格式的文本,芯片能够根据内置的文本匹配规则进行正确的识别和处理。

③、支持多音字和姓氏处理、多个发音人、音量、语速、语调调整、提示音等

④、支持低功耗模式、UART通讯方式。支持多种控制命令等

三、应用场景


  • 车载终端 智慧停车 智能家居 智能闹钟
  • 考勤终端 公交报站 智能手表 智能家电 
  • 排队叫号 预警终端 智能门铃 智能药盒
  • 仪器仪表 智能玩具 智能门锁 智能穿戴
  • 语音对讲 自助终端 血压计   充电桩  

四、最小系统


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

五、软件设计


1、串口命令

说明:上位机通过串口发送给语音合成芯片的所有命令和数据都需要用“帧”的方式进行封装后传输。

  • 公共命令汇总

  • 语音合成命令汇总

举例:播放文本编码格式为 “GBK” 的文本“宇音天下”

命令帧:0xFD 0x00 0x0A 0x01 0x01 0xD3 0xEE 0xD2 0xF4 0xCC 0xEC 0xCF 0xC2

2、控制标记

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

  • 部分控制标记

  • 控制标记举例:

举例:设置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语音合成芯片内集成了多首声音提示音,可用于不同行业不同场合的信息提醒、报警等功能。例如:刷卡音,门铃音,警报音等。

  • 部分提示音举例

举例:播放名称为“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 接口接收上位机发送的命令和数据。

2、引脚定义

3、参考电路

4、电源电路设计

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

  • 功放参考电路

以CS8126T为参考

5、芯片参数

  • 特性极限值

  • 电压工作范围

6、模块说明

  • 模块实物图

  • 模块尺寸

  • 模块引脚图

  • 模块引脚定义

结语

智能语音技术正在引领人机交互进入全新的时代。其卓越的语音处理能力、高度集成化和小型化设计,以及不断优化的低功耗特性,使得语音合成芯片在智能家居、智能车载、可穿戴设备等多个领域展现出广阔的应用前景。

在此,我们期待语音合成芯片技术的不断创新与发展,为人与人、人与机器之间的沟通搭建起更加便捷、高效的桥梁,共同开启智能语音交互的新篇章。

","gnid":"93c69383e80aebbca","img_data":[{"flag":2,"img":[{"desc":"","height":"383","title":"","url":"https://p0.ssl.img.360kuai.com/t016fa1b5258c3bfbb5.png","width":"900"},{"desc":"","height":"383","title":"","url":"https://p0.ssl.img.360kuai.com/t01106e5d67a484aec7.png","width":"900"},{"desc":"","height":"323","title":"","url":"https://p0.ssl.img.360kuai.com/t0142301296bf2b0b74.png","width":"1121"},{"desc":"","height":"690","title":"","url":"https://p0.ssl.img.360kuai.com/t01a5598dfd02519140.png","width":"937"},{"desc":"","height":"371","title":"","url":"https://p0.ssl.img.360kuai.com/t01f753be71ca4cf5e8.png","width":"1029"},{"desc":"","height":"322","title":"","url":"https://p0.ssl.img.360kuai.com/t01c286e368708acba2.png","width":"890"},{"desc":"","height":"438","title":"","url":"https://p0.ssl.img.360kuai.com/t01b247b72edd3e9ef6.png","width":"674"},{"desc":"","height":"640","title":"","url":"https://p0.ssl.img.360kuai.com/t01a9986f3a4e58f67c.png","width":"839"},{"desc":"","height":"356","title":"","url":"https://p0.ssl.img.360kuai.com/t01fd420cc603d929b0.png","width":"846"},{"desc":"","height":"659","title":"","url":"https://p0.ssl.img.360kuai.com/t013f3b69ea170d0904.png","width":"879"},{"desc":"","height":"224","title":"","url":"https://p0.ssl.img.360kuai.com/t01ee9bbe70a754219c.png","width":"376"},{"desc":"","height":"2999","title":"","url":"https://p0.ssl.img.360kuai.com/t01e6442ff132e8bca7.png","width":"1163"},{"desc":"","height":"747","title":"","url":"https://p0.ssl.img.360kuai.com/t0131a27943e1d886c4.png","width":"1024"},{"desc":"","height":"392","title":"","url":"https://p0.ssl.img.360kuai.com/t01bb3933fc8c3c7604.png","width":"811"},{"desc":"","height":"465","title":"","url":"https://p0.ssl.img.360kuai.com/t01010dc1b88255ecd4.png","width":"671"},{"desc":"","height":"201","title":"","url":"https://p0.ssl.img.360kuai.com/t015666d5aede33fe36.png","width":"687"},{"desc":"","height":"255","title":"","url":"https://p0.ssl.img.360kuai.com/t01b8bc60626b3e41f1.png","width":"220"},{"desc":"","height":"409","title":"","url":"https://p0.ssl.img.360kuai.com/t01b08fc7d2ff53e7a3.png","width":"615"},{"desc":"","height":"476","title":"","url":"https://p0.ssl.img.360kuai.com/t017e897de3c2ca4287.png","width":"574"},{"desc":"","height":"657","title":"","url":"https://p0.ssl.img.360kuai.com/t01cb48958521b2ac6f.png","width":"1076"}]}],"original":0,"pat":"art_src_0,fts0,sts0","powerby":"pika","pub_time":1710472431000,"pure":"","rawurl":"http://zm.news.so.com/fce4920fa2355860aa242dd33d68c7db","redirect":0,"rptid":"d604b20001d1c8a3","rss_ext":[],"s":"t","src":"北京宇音天下","tag":[{"clk":"ktechnology_1:芯片","k":"芯片","u":""}],"title":"玩转语音合成芯片(TTS芯片),看这一篇就够了

廖茅先1020string.h -
水坚哲18942165652 ______ 就是在程序中加入#include "string.h"就可以使用这个头文件里包含的库函数,而这些函数都是处理字符串的.下面是从网上找的,呵呵#include"string,h"这是C语言/C++中的字符串处理函数的头文件 下面是大多数的头文件:可以参考.我也是...

廖茅先1020请问#include <string.h>在C中是怎么用的? -
水坚哲18942165652 ______ #include void main() { char a[100],b[150],c[256]; gets(a); gets(b); int len=strlen(a);//求a的长度,此处就用到了string.h printf("a的长度为%d\n",len); strcpy(c,a);//把a复制到c,用到 printf("%s\n",c); strcat(b,a);//把a接到b后,用到 printf("%s\n",b); }

廖茅先1020什么时候用到 # include <string.h> -
水坚哲18942165652 ______ 使用字符串的函数的时候需要添加此头文件.比如如下常用函数:strlen求字符串长度 strcmp比较2个字符串是否一样 strcat字符串连接操作 strcpy字符串拷贝操作 strncat字符串连接操作(前n个字符) strncpy字符串拷贝操作(前n个字符) strchr 查询子串 strstr 查询字串

廖茅先1020C\C++关于string.h头文件和string类 -
水坚哲18942165652 ______ string.h头文件是用于C程序的.C++用来处理旧的C风格字符串,但一般用等价的头文件cstring. string头文件中包含标准库类型string的定义,是在C++中处理字符串的一般方法. 在安全性上,string类比C风格的字符串要好的多,一般也比较易用. 补充:TC 3.0是一个很古老的C++编程环境(90年代初),由于C++的标准到1998年才公布,所以一些正确的程序在TC上是运行不了的,比如cstring这样的头文件. 最好的解决方案是抛弃TC,因为实际应用中已经没有人用这个十多年前的古董了.使用VC 6.0以后的版本、BCB较新的版本,或者开源的编程环境如Dev-C++(这个免费).

廖茅先1020在C中#include<string.h>应该在什么时候加? -
水坚哲18942165652 ______ 在C中#include应该在什么时候加?string.h是一个和字符串处理相关的头文件,里面有很多字符串处理的函数,如果你写程序时要用到里面提供的函数的话,就应该加.一般来说,只要有字符串处理,最好都

廖茅先1020请问#include<string.h>在C中是怎么用的?
水坚哲18942165652 ______ #include<stdio.h>#include<string.h>voidmain(){chara[100],b[150],c[256];gets(a);gets(b);intlen=strlen(a);//求a的长度,此处就用到了string.hprintf("a的长度为%d\n",len);strcpy(c,a);//把a复制到c,用到printf("%s\n",c);strcat(b,a);//把a接到b后,用到printf("%s\n",b);}

廖茅先1020#include<string.h>表示什么void表示什么 -
水坚哲18942165652 ______ #include<string.h>导入系统的string.h文件,该文件包括一些字符串的处理函数 void表示函数无返回值

廖茅先1020C语言中string.h是否是系统文件?
水坚哲18942165652 ______ string.h文件是C语言中的库文件, 但是不是系统文件

廖茅先1020include <string.h>这个头文件有什么用? -
水坚哲18942165652 ______ 提供字符串的一系列库函数

廖茅先1020C++中,<cstring>、<string.h>和<string>的关系,①这几个各在什么时候使用?需不需要命名空间? -
水坚哲18942165652 ______ 楼上误导了.首先string.h是C的,不是C++的,包括了操作C风格字符串的函数,如strcpy.strcmp,strcat,strlen等.C 语言里没有字符串这个数据类型,有的只是字符指针或字符数组,C风格字符串也就是以'\0'结尾的字符序列.然后是cstring.在C...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024