GBK2312语音系统的移植
本帖最后由 _NCY_ 于 2024-6-30 12:32 编辑这是个难得的资源。
看到这个玩意儿时候觉得挺好,就拿过来移植了一下,果然厉害👍
资源包括 例程 和 烧写文件
另附本人的STC8H8K64U移植的测试程序
$例程$
是基于C8051F的。可以通过它里面的实现(着重看看audio和ployphone两个文件)推知这个 烧写文件 的结构
$烧写文件$
后缀名是.dat的那个,其实里面就是一堆去掉文件头的WAV原始数据拼接到一起而已。
WAV数据具体信息:unsigned 8位,11025khz,单声道。
至于那个index,里面是记录了GBK2312汉字(注意,仅仅是汉字的引索!)字音引索表。
Index文件的详细信息:里面的十六进制数据,每16字节是一个条目,在一个条目中:
byte0,byte1对应汉字GBK2312码,大端序。例如,0xb00xa1对应汉字“啊”;
byte8,byte9对应该片段长度,小端序,例如0xd2 0xa0对应长度2770字节;
byte12~byte15对应该片段在烧写文件中的偏移量,小端序,例如0xa7 0x26 0x02 0x00对应偏移量140967字节;
其余字节均为0x00,无意义。
以上内容均以第0个条目举例,可以用16进制查看器打开对照第0个条目加深理解
(第0x14500个条目及以后的条目内容有些奇怪,没有用的字节填充着0x20,用途待研究)
$移植$
各字音的偏移量和长度在例程里有大家不难找到,转换函数和复杂的多音字,符号字音,自然语言的处理也都在例程里有。大家只要写好自己的DAC函数,和读取函数,其余按需求套来用就好了。
当然你得先把 烧写文件 拷到FLASH里,想方便点了话拷到SD卡里用文件系统读取也可以。
本人这边是用USBMSC拷到FLASH里,解析FAT12读的,把字音全过了一遍,效果果然不错,发音很标准,还有各种常见符号的支持
例程+烧写文件:
移植程序: 原理图还是计算器的电路,在之前的帖子里发过,很简单的连接
页:
[1]