找回密码
 立即注册
查看: 385|回复: 3

GBK2312语音系统的移植

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-04 22:11:37
已绑定手机

36

主题

287

回帖

824

积分

高级会员

积分
824
发表于 2024-6-30 12:06:59 来自手机 | 显示全部楼层 |阅读模式
本帖最后由 _NCY_ 于 2024-6-30 12:32 编辑

这是个难得的资源。
看到这个玩意儿时候觉得挺好,就拿过来移植了一下,果然厉害👍

资源包括 例程 和 烧写文件
另附本人的STC8H8K64U移植的测试程序

$例程$   
是基于C8051F的。可以通过它里面的实现(着重看看audio和ployphone两个文件)推知这个 烧写文件 的结构

$烧写文件$  
后缀名是.dat的那个,其实里面就是一堆去掉文件头的WAV原始数据拼接到一起而已。
WAV数据具体信息:unsigned 8位,11025khz,单声道。

至于那个index,里面是记录了GBK2312汉字(注意,仅仅是汉字的引索!)字音引索表。
Index文件的详细信息:里面的十六进制数据,每16字节是一个条目,在一个条目中:
byte0,byte1对应汉字GBK2312码,大端序。例如,0xb0  0xa1对应汉字“啊”;
byte8,byte9对应该片段长度,小端序,例如0xd2 0xa0对应长度2770字节;
byte12~byte15对应该片段在烧写文件中的偏移量,小端序,例如0xa7 0x26 0x02 0x00对应偏移量140967字节;
其余字节均为0x00,无意义。
以上内容均以第0个条目举例,可以用16进制查看器打开对照第0个条目加深理解

(第0x14500个条目及以后的条目内容有些奇怪,没有用的字节填充着0x20,用途待研究)

$移植$
各字音的偏移量和长度在例程里有大家不难找到,转换函数和复杂的多音字,符号字音,自然语言的处理也都在例程里有。大家只要写好自己的DAC函数,和读取函数,其余按需求套来用就好了。

当然你得先把 烧写文件 拷到FLASH里,想方便点了话拷到SD卡里用文件系统读取也可以。
本人这边是用USBMSC拷到FLASH里,解析FAT12读的,把字音全过了一遍,效果果然不错,发音很标准,还有各种常见符号的支持



回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-04 22:11:37
已绑定手机

36

主题

287

回帖

824

积分

高级会员

积分
824
发表于 2024-6-30 12:42:58 来自手机 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-04 22:11:37
已绑定手机

36

主题

287

回帖

824

积分

高级会员

积分
824
发表于 2024-6-30 12:54:30 | 显示全部楼层
例程+烧写文件: 资源.7z (2.78 MB, 下载次数: 47)

移植程序: User_test.zip (6.76 MB, 下载次数: 48)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:21
  • 最近打卡:2025-04-04 22:11:37
已绑定手机

36

主题

287

回帖

824

积分

高级会员

积分
824
发表于 2024-6-30 12:55:35 | 显示全部楼层
原理图还是计算器的电路,在之前的帖子里发过,很简单的连接
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:16 , Processed in 0.123462 second(s), 66 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表