当前位置: 首页 > news >正文

SYN6288语音合成模块使用说明(MicroPython、STM32、Arduino)

模块介绍

SYN6288中文语音合成模块是北京宇音天下科技有限公司推出的语音合成模块。该模块通过串口接收主控传来的语音编码后,可自动进行自然流畅的中文语音播报。

注:SYN6288模块无法播报英文单词和句子,只能按字母播报英文 ;而数字播报的形式较为多样,详见下文。

命令帧格式

SYN6288的命令帧格式如下表所示:

帧结构

帧头

(1字节)

数据区长度

(2字节)

数据区(不大于203字节)

命令字

(1字节)

命令参数

(1字节)

待发送文本

(不大于200字节)

异或校验

(1字节)

数据

0xFD

0xXX 0xXX

0xXX

0xXX

0xXX…

0xXX

说明

默认

高字节在前

长度必须和前面的“数据区长度”一致

只需将指定文字按照上表的编码格式进行转换,并通过串口发送给SYN6288模块,SYN6288模块即可实现语音播报。

中文编码

当然,中文字符庞大,且多数情况下只有播报几段特定语音的需求,这时可以使用官方提供的编码工具,直接生成,而无需自己进行编码(当然,既然官方已经提供了编码工具,那么肯定能对任意的中文语句编码,只是这样或许很麻烦):

编码工具下载路径:

https://download.csdn.net/download/qq_44955826/90092177?spm=1001.2014.3001.5503

数字变量编码

但是有些时候需要播报数字变量,这时只能自己写程序生成数字语音编码了。

数字、语音间的关系

但需要注意的是不同的书写方式对应的语音不一样,例如(以下数字间的标点均为英文半角):

1,2,3,4,5     语音模块会读作:一二三四五

12345         语音模块会读作:一万二千三百四十五

123.45        语音模块会读作:一百二十三点四五

1,2,3.45      语音模块会读作:一二三点四五(一二三点语速较慢,四五语速较快)

两个具体的数字编码含义实例:

一.

1,2,3,4,5(GB2312编码)对应的串口信号为:

253, 0, 12, 1, 0, 49, 44, 50, 44, 51, 44, 52, 44, 53, 193

其含义为:

253:帧头

0 12:在此之后会发送12个比特的数据

1:没搞清楚,但好像从来都不变

0:背景音乐选项,0为无背景音乐,8为背景音乐1,16为背景音乐2,以此类推

49:1对应的ASCII码

44:, 对应的ASCII码

50:2 对应的ASCII码

44:, 对应的ASCII码

51:3对应的ASCII码

44:, 对应的ASCII码

52:4 对应的ASCII码

44:, 对应的ASCII码

53:5 对应的ASCII码

193:校验码:以上所有数据(二进制)按位求为1的个数,奇数个1为1,偶数个1为0(其实就是异或运算),计算过程如下:

12345(GB2312编码)对应的串口信号为:

253, 0, 8, 1, 0, 49, 50, 51, 52, 53, 197

其含义为:

253:帧头

0 8:在此之后会发送8个比特的数据

1:没搞清楚,但好像从来都不变

0:背景音乐选项,0为无背景音乐,8为背景音乐1,16为背景音乐2,以此类推

49:1对应的ASCII码

50:2 对应的ASCII码

51:3对应的ASCII码

52:4 对应的ASCII码

53:5 对应的ASCII码

197:异或校验码

数字变量编码说明

可以看出,1,2,3,4,5编码中包含的逗号,并未被读出,而12345编码本身并未包含数字间的连接词(如:个、十、百、千、万),语音却自动补全了。这实际上是SYN6288模块自动做出的智能处理,也降低了我们的编码复杂程度。

编程实例

关于不同主控驱动SYN6288模块进行语音播报的实现,请参考如下专栏:

ESP32(MicroPython):Thonny IDE + MicroPython + ESP32 + SYN6288 输出语音-CSDN博客

STM32(Keil5):未完待续

Arduino:未完待续

http://www.lryc.cn/news/499366.html

相关文章:

  • Spring完整知识三(完结)
  • 保姆级教程Docker部署Redis镜像
  • 子类有多个父类的情况下Super不支持指定父类来调用方法
  • AI大模型ollama结合Open-webui
  • RK3568笔记2:NOR_Flash和NAND_Flash与SDMMC和eMMC
  • windows python qt5 QChartView画折线图
  • 阿里云通义千问:全面解析智能云服务先锋
  • QT 贪吃蛇
  • 二、点亮希望之光:寄存器与库函数驱动 LED 灯
  • Oracle 用户管理模式下的恢复案例-不完全恢复
  • SharpDevelop IDE IViewContent.cs类
  • Unity RectTransUtility工具类
  • React性能优化
  • 前端开发流程实操:从概念到上线
  • Metasploit使用
  • Milvus向量数据库05-常见问题整理
  • Ruby On Rails 笔记3——表的增删改查
  • CSS3 动画详解,介绍、实现与应用场景详解
  • Winston-MySQL 使用文档
  • java日期工具: 获取两个时间段的时间段值,Java获得两个日期之间的所有年、月份、日。
  • 【Rive】混合动画
  • qt应用程序崩溃日志和转储dmp文件对于定位问题
  • Mysql架构
  • 杂发单的单据类型一个参数的逻辑
  • Linux系统 vim 编辑文件搜索关键字用法
  • Vue智慧商城项目
  • Qt Window应用程序去掉控制台窗口
  • 软件测试最新项目合集【商城、外卖、银行、金融等等.......】
  • SAP SD学习笔记18 - 投诉处理4 - 请求书订正依赖,投诉处理流程的总结
  • VBA批量提取PDF内容的程序