前面曾对这款语音合成模块的用法进行了介绍,那它是如何来处理中文信息合成的呢?
要进行中文信息的合成处理,自然也要遵循其指令规则。
对于字符类的信息合成,其指令规则是:
FD 00 (数据字节数+2) 01 00 (信息的字节编码序列)
而对于中文来说,其信息合成,其指令规则是:
FD 00 (数据字节数+2) 01 03 (中文信息的字节编码序列) 对于中文信息来讲,其信息编码有多种方式,国标码、BIG5编码等。
那在中文信息合成是采用哪一种呢?
这里我们可以进行一下测试,并通过它来说明这个问题。
以播放“个十百千万”的读音为例,其方式的指令如图1所示。
图1 播放“个十百千万”读音
其中,“2A 4E 41 53 7E 76 43 53 07 4E”是播放的数据内容,共有10个字节。
10+2=12=0CH,这正是制定数据的字节长度。
那这个编码是如何获得的呢?
通过在线编码转换软件,我们可以得到“个十百千万”的编码,见图2所示。

图2 编码查询
为了便于处理,可通过计时器将这些编码转换为十六进制的形式,见图3所示。

图3 进制转换
由此可见,十进制的20010等于十六进制的4E2AH,其它类似。
由于一个汉字要占2个字节,故4E2AH就是“个”的编码。
而在信息数据中,使用的是“2A 4E”,就是说在使用是需要高低位要进行字节互换。
至此,返回到我们前面提出的问题,其使用的汉字编码为UniCode编码方式,且在使用时要高低字节交换。
为此,我们就全面弄清了中文信息合成的处理方法,在使用中遵循其规则就可自如地播报中文语音信息啦!
掌握了中文信息合成的方法,那能否进行一些音效的处理呢?
这在模块设计时,也被充分考虑到啦,因为它配置了多样的辅助功能,从而使其性能更加丰富和完善。
其提供的辅助功能,由图4可以窥其一斑。

图4 辅助功能
为下面就验证和测试其功能的有效性:
1.音量测试
设置音量=1的指令为“FD 00 07 01 04 5B 76 31 5D 00”,其中01H为音量值。
设置音量=9的指令为“FD 00 07 01 04 5B 76 39 5D 00”,其中09H为音量值。
发出“关客厅灯”的指令为“FD 00 0A 01 03 73 51 A2 5B 85 53 6F 70”,改变音量的测试过程见图1和图2所示。

图5 设置音量=1

图6 触发语音输出
音量控制效果为:
2.语速控制
设置语速=1的指令为“FD 00 07 01 04 5B 73 31 5D 00”,其中31H为音量值。
设置语速=9的指令为“FD 00 07 01 04 5B 73 39 5D 00”,其中39H为音量值。
发出“关客厅灯”的指令为“FD 00 0A 01 03 73 51 A2 5B 85 53 6F 70”。
其测试效果为:
3.语调控制
设置语调=30的指令为“FD 00 08 01 04 5B 74 65 33 30 5D 00”,其中33 30为音量值。
设置语调=70的指令为“FD 00 08 01 04 5B 74 65 37 30 5D 00”,其中37 30为音量值。
设置语调=100的指令为“FD 00 09 01 04 5B 74 65 31 30 30 5D 00”,其中31 30 30为音量值。
发出“关客厅灯”的指令为“FD 00 0A 01 03 73 51 A2 5B 85 53 6F 70”。
其测试效果为:
经测试,这些特效功能还是比较实用的。
我要赚赏金
