北京宇音天下科技有限公司有着多年的嵌入式应用开发经验和深厚的语音技术实力。emTTS是宇音天下主要针对各行业应用的嵌入式设备,为用户提供语音信息获取和语音交互应用能力的软件模块,能够将普通文本字符转换为自然语音输出的一款TTS(Text To Speach)引擎。
emTTS软件不受操作系统限制,不增加用户额外的硬件成本,并针对嵌入式设备资源受限等特点,在资源占用、语音合成效果、可移植性等方面都取得了突破性进展,其合成效果整体上已超过了普通人的说话水平。emTTS软件语音合成效果自然、音色清亮圆润、智能化识别程度高,是一款真正面向高端行业应用领域的嵌入式语音合成软件,它将推动TTS语音合成技术的行业应用走向更深入、更广泛!
小家电类 数码电子
智能家居 安防报警
车载电子 智能玩具
健康电子 运动电子
娱乐设备 学习设备
宠物用品 共享设备
清晰、自然、准确的中文语音合成效果。芯片支持任意中文文本的合成,可以采用GB2312、GBK、Unicode和UTF8四种编码方式。芯片支持英文字母的合成,遇到英文单词时按字母方式发音。
芯片具有文本智能分析处理功能,对常见的数值、电话号码、时间日期、度量衡符号等格式的文本,芯片能够根据内置的文本匹配规则进行正确的识别和处理。
例如:“2012-05-01 10:36:28”读作 “二零一二年五月一日十点三十六分二十八秒”,“火车的速度是622km/h” 读作 “火车的速度是六百二十二公里每小时”,“-12℃”读作“零下十二摄氏度”,等等。
对存在多音字的文本,例如:“银行行长穿过人行道向骑着自行车的银行职员行走过去”,芯片可以自动对文本进行分析,判别文本中多音字的读法并合成正确的读音。
有些汉字作为姓氏使用时,会出现一些非常规的读法,芯片可以自动进行处理。例如:“他是一位姓朴的朴素的韩国艺人。”,句中两个“朴”字前面一个读作“piao2”,后面一个读作“pu3”。
芯片可实现10级数字音量控制,音量更大,更广。支持30级语速、10级语调的调节,满足各种不同的应用需求。
芯片内集成了多首声音提示音,可用于不同行业不同场合的信息提醒等功能。
提供两男、两女、一个效果器和一个女童、两个男童声共8个中文发音人,可以通过使用特殊标记[m?]来切换芯片的发音人。
发音人标记 | 说明 |
---|---|
[m3] | 女声“晓玲” |
[m51] | 男声“尹小坚" |
[m52] | 男声“易小强” |
[m53] | 女声“田蓓蓓” |
[m54] | 效果器“唐老鸭” |
[m55] | 女童声“小燕子” |
[m56] | 男童声“贝童” |
[m57] | 男童声“晓可” |
芯片支持多种文本控制标记。可通过发送“合成命令”发送文本控制标记,调节语速、语调、音量。
还可以使用控制标记提升文本处理的正确率,如:设置句子的韵律、设置数字读法、设置姓氏读音策略、设置号码中“1”的读法等。
目录 | 交付文件说明 | 文件名 | 备注 |
Doc | 开发文档 | 用户手册.txt | - |
SDK | 接口头文件 | Api\emApiDefine.h Api\emApiKernel.h Api\emApiPlatform.h Api\emApiParam.h |
基本数据类型定义文件 emTTS接口函数定义文件 文本控制标记定义文件 平台配置头文件 |
资源文件 | Irf\Resource.irf | - | |
库文件 | Lib\libemTTS.a | - | |
SDK包调用Demo参考 | emTTS_Demo.c | - |
资源包通过回调进行访问。
使用TTS之前首先要做的是调用emTTS_Create 函数创建一个TTS实例。因为其他的操作都需是基于实例的操作。
emTTS通过在调用函数emTTS_Create时的参数来指定TTS的堆,以便进行实例的创建。TTS系统需要的堆大小取决于实际的平台和配置。
emTTS_Destroy 函数是用来释放一个已经被创建的实例。
emTTS系统中定义的参数可以在实例有效期内通过调用函数emTTS_SetParam 来设置,相应的也可以通过函数 emTTS_GetParam来获取特定的参数。
Standard API 定义了2个回调函数,分别为:处理进度通知回调函数,输出回调函数。这些回调不需要全部实现,用户可根据需要选择。回调函数可以通过设置参数的方式来设置,但是不能在当前实例为运行状态下进行回调函数的设置。
处理进度通知回调函数:
系统会通过调用该回调函数,通知用户当前系统正在合成的进度。
输出回调函数:
系统合成过程中产生的语音数据会通过该回调传给用户。相应的语音数据的格式也会给出。语音数据是能直接播音的PCM数据。
emTTS_SynthText是我们针对字符串合成而提供的一个简单易用的接口。在使用这个函数之前需要设定相应合成文本的代码页即可。输出音频的采样率为16000,16位。
合成过程中,调用合成的线程会被堵赛,直到退出合成。用户可以通过调用emTTS_Exit 来结束合成。结束合成后系统会退出函数emTTS_SynthText。
项目 | 功能 | 参数 |
emTResPackDesc结构 | 描述资源包的访问方式 | [in] 用户指定的资源回调指针 [in] 资源读取回调函数入口地址 [in] 资源包的大小(可选) [in] 资源包Cache索引区 [in] 缓存buffer [in] 单个Cache 块的大小 [in] Cache 块个数 [in] 扩展Cache块 |
emCBReadRes回调函数 | TTS实例读取资源时调用 | [in]调用emTTS_Create时在emTResPackDesc 结构中为该资源包指定的回调参数 [out] 读取资源的缓冲区指针 [in] 读取资源的起始位置 [in] 读取资源的大小 |
emTTSCB_Progress回调函数 (若设回调函数,默认实现自动失效) |
回传当前合成内容在原始输入中的位置和长度 | [in] 用户在调用函数emTTS_Create时指定的回调参数 [in] 当前合成内容在原始输入文本中的位置 [in] 当前合成内容在原始输入文本中的长度 |
emTTSCB_Output回调函数 (若设回调函数,默认实现自动失效) |
实例在合成产生音频后调用本回调输出音频数据 | [in] 用户在调用函数emTTS_Create时指定的回调参数 [in] 输出音频数据的格式码(PCM 16K16bit) [in] 输出音频数据缓冲区指针 [in] 音频数据长度(最大值为2048字节) |
调用接口 | 功能 | 参数 | 返回 |
emTTS_Create | 创建新的TTS实例 | [out] 接收实例句柄的地址(被其他TTS函数调用) [in] 分配给TTS实例用的第1块堆的指针 [in] 分配给TTS实例用的第1块堆的大小 [in] 分配给TTS实例用的第2块堆的指针 [in] 分配给TTS实例用的第2块堆的大小 [in] 用户回调参数:输出音频数据文件的指针 [in] TTS资源包描述结构数组指针 [in] TTS资源包个数。赋值为1即可 |
错误码 |
emTTS_SynthText | 文本实时合成播放 (线程被堵塞,直到合成结束) |
[in] 实例句柄 [in] 合成文本内容的地址 [in] 被合成文本的数据长度 |
错误码 |
emTTS_GetParam | 获取实例参数值 | [in] 实例句柄 [in] 参数ID [out] 接收参数值的缓冲区地址 |
错误码 |
emTTS_SetParam | 设置实例的参数 | [in] 实例句柄 [in] 参数ID [in] 设置的参数值 |
错误码 |
emTTS_Destroy | 释放TTS实例 | [in] 实例句柄 | 错误码 |
emTTS_Exit | 结束TTS合成 (堵塞的emTTS_SynthText会立刻退出) |
[in] 实例句柄 | 错误码 |
emTTS_GetVersion | 获取TTS版本号 | [out] 指向获取版本号的缓冲区 | 错误码 |
emTTSErrID类型:表示TTS出错码
错误码 | 错误说明 |
emTTS_ERR_OK | 成功 |
emTTS_ERR_FAILED | 失败 |
emTTS_ERR_END_OF_INPUT | 输入流结束 |
emTTS_ERR_EXIT | 退出TTS |
emTTS_ERR_INSUFFICIENT_HEAP | 堆空间不足 |
emTTS_ERR_RESOURCE | 资源出错 |
emTTS_ERR_INVALID_PARAM_ID | 非法的参数ID |
提示音 | ||||
序号 | 名称 | 播放时间 | 声音类型 | 对应SYN8086的提示音 |
1 | sound101 | 0.8秒 | 警报 | sound303 |
2 | sound102 | 0.16秒 | 刷卡成功 | sound404 |
3 | sound103 | 2.4秒 | 风铃声 | sound219 |
4 | sound901 | 0.05秒 | 嘀(蜂鸣器) | sound901 |
5 | sound902 | 0.14秒 | 嘀(蜂鸣器) | sound902 |
6 | sound903 | 0.87秒 | 咚 | sound907 |
注意:
sound901,是针对ETC行业定制的蜂鸣声,持续时长50ms,如需两次蜂鸣间隔100ms,可按如下操作:
sound901[p100]sound901[p100]sound901[p100]sound901
说明:蜂鸣4次,每次蜂鸣持续50ms,两次蜂鸣间隔100ms,[p100]=间隔100ms
提示音在使用上没有特殊性,与合成普通文本的合成命令相同。
但是,需要注意的是:提示音名称前面或后面紧接着是英文字母和数字串时,需要使用标点符号、空格、回车等与其他字母隔开,系统才能够自动识别。
例如: 发送文本“sounda,hello!”,sounda 就可以合成对应的短信提示音,但是如果发送的文本”soundahello!”,sounda 就不能合成提示音,而是直接朗读成字母“S-O-U-N-D-A”。
如果不是上述的有效提示音,则只会按着普通文本发音
我们可以通过多次播放同一提示音来实现一个较长提示音的效果
如需提示音之间有停顿感,可在提示音中间增加加 “[p?]” 或 “逗号” 来实现
举例如下:
sound901[p100]sound901[p100]sound901[p100]sound901
sound901sound901sound901sound901sound901,sound901sound901sound901sound901sound901,sound901sound901sound901sound901sound901
sound901,sound901,sound901,sound901,sound901,sound901,sound901,sound901,sound901,sound901,sound901,sound901,sound901,sound901,sound901
[p20]sound901sound901sound901sound901,[p20]sound901sound901sound901sound901,[p20]sound901sound901sound901sound901,[p20]sound901sound901sound901sound901
举例1:蜂鸣4次,每次蜂鸣持续50ms,两次蜂鸣间隔100ms
举例2:每播放5个提示音会有一个停顿
举例3:每播放1个提示音会有一个停顿
举例4:每播放4个提示音会有一个20ms的停顿
以上几种方式都可实现提示音连播,用户可根据实际需求自行选择,但需注意:
1、连续字符(含字母和空格等)每当超过60个字符前必须加个逗号,否则提示音会被中途切割不能连续播放
2、每个提示音的实际播放时间=主体音“播放时间”+0.1秒尾部静音。例如:“sound901” 的“播放时间”是0.05秒,实际播放时间是0.15秒;“sound901sound901”的实际播放时间是0.30秒。
多音字演示
当前工作的重中之重,是要在重重困难中,保证重庆市的重点工程的顺利进行!
银行行长穿过人行道向骑着自行车的银行职员行走过去。
他好像不着急,一边看着电视,一边打着电话:“高,这一着真高,我们马上就着手准备。
本店清仓折本出售,优惠多多。双休日穿着类商品5-8折,会员可以再享受95折优惠。
智能数字符号处理
今天的最低气温为:-18℃,这座大桥长1.5km。
我们的咨询电话是:010-62986600,传真是:010-62988818 。
新规定生效时间:2011-11-01,22:01:03;
长沙方向开来的K186次列车将会在7:56到达北京西客站。
火车的速度是622km/h。 公交车的行驶速度是5m/s 。
分别下降了37.5%和67.7%。
按“#”字键返回,或按“”字键返回。返回上级菜单请按号键。
www.263-edu.cn。UTF-16。-0.02。-0.17%。-12.6℃。
65%-70%。12-23-2008。手机:139-1234-567。
姓氏识别
我单位的单小东和解小东都是解放后出生的员工。
他是一位姓朴的朴素的韩国艺人。
自动变声调识别
进入二十一世纪。五一节。同一账户或同一控制人控制的多个账户。
买一个送一个。一帆一桨一渔舟。
不折不扣。不卑不亢。不三不四。
展览馆里有好几百种纸雨伞。请你给我打桶洗脚水。
提示音识别
msgd, 您有来电,来电号码:13956029869。
soundb soundi soundk soundm soundt soundu。
音量调节
[v1]这是音量最小的效果。[d]
[v3]这是音量较小的效果。[d]
[v5]这是默认音量的效果。[d]
[v8]这是音量较大的效果。[d]
[v10]这是音量最大的效果。[d]
语速调节
[s0]这是语速最慢的效果;[d]
[s2]这是语速较慢的效果;[d]
[s5]这是正常语速的效果;[d]
[s8]这是语速较快的效果;[d]
[s10]这是语速最快的效果;[d]
语调调节
[t0]这是语调设置最低的效果;[d]
[t2]这是语调设置较低的效果;[d]
[t5]这是默认语调的效果;[d]
[t8]这是语调设置较高的效果;[d]
[t10]这是语调设置最高的效果;[d]
发音风格演示
[f0]这是发音风格为一字一顿的效果;[d]
[f1]这是发音风格正常,平铺直叙的效果;[d]
发音人演示
[m3]我是晓玲;[m3][d]
[m51]我是尹小坚;[m3][d]
[m52]我是易小强;[m3][d]
[m53]我是田蓓蓓;[m3][d]
[m54]我是唐老鸭;[m3][d]
[m55]我是小燕子;[m3][d]
[m56]我是贝童 ;[m3][d]
[m57]我是晓可 ;[m3][d]
其它控制标记演示
[i*]强制读拼音。
欢迎麓小东。[i0]欢迎lu4小东。[i1]欢迎lu4xiao3dong1。[d]
[n*]读数字处理。
62986600。[n2]62986600[d]。有123公斤。[n1]有123公斤。[d]
[p*]停顿控制。
例如:msgd您有来电。msgd[p500]您有来电。msgd,您有来电。
[r*]姓氏强制。
例如:那英。那小东。[r1]那英。[r1]那小东。[d]
[x*]提示音处理。
例如:[x0]sounda msga。[x1]sounda msga。[d]
[y*]号码1的读法。
例如:010-62986600。[y1]010-62986600[d]。
[z*]韵律强制。
偶记前天在庭树下看见的一件事。[z1]偶记前天#在庭树下#看见的一件事。[d]
[=*]强制拼音。
银行行长。银行行[=xing2]长[=chang2]。
[b*]读标点开关。
例如:欢迎光临,请进!。[b1]欢迎光临,请进![d]
[d] 恢复默认。
[y1][n2][b1]来电:010-62986600。[d]。来电:010-62986600。
英文字母混读
联通3G,精彩在“沃”。
一名村民称他在自家的房前看到了UFO。
这是一个处处充满PK的时代。
网址:http://www.tts168.com.cn。
行业应用
前方600米接近目的地:上地城铁站。
行驶2.5公里右前方行驶到上地信息路。
欢迎乘坐申新巴士四十九路无人售票车。
您的消费总额是:475.25元。收您500元,找零24.75元。
您有新来电,电话来自:解晓晓。
您有新消息,新消息来自:13988889999。
刷卡成功,时间:8:25。
请0029号到13号窗口办理卡储蓄业务。
请0301号就诊者到二楼东侧11号诊室就诊。
变压器箱门非法打开。
冰雹天气预警:未来几天将会出现冰雹天气,请大家提前做好劳作计划。