_NCY_ 发表于 2024-6-30 12:06:59

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读的,把字音全过了一遍,效果果然不错,发音很标准,还有各种常见符号的支持



_NCY_ 发表于 2024-6-30 12:42:58

_NCY_ 发表于 2024-6-30 12:54:30

例程+烧写文件:

移植程序:

_NCY_ 发表于 2024-6-30 12:55:35

原理图还是计算器的电路,在之前的帖子里发过,很简单的连接
页: [1]
查看完整版本: GBK2312语音系统的移植