当前位置: 首页 > 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:未完待续

相关文章:

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

模块介绍 SYN6288中文语音合成模块是北京宇音天下科技有限公司推出的语音合成模块。该模块通过串口接收主控传来的语音编码后,可自动进行自然流畅的中文语音播报。 注:SYN6288模块无法播报英文单词和句子,只能按字母播报英文 ;而…...

Spring完整知识三(完结)

Spring集成MyBatis 注意 Spring注解形式集成MyBatis时,若SQL语句比较复杂则仍采用映射文件形式书写SQL语句;反之则用注解形式书写SQL语句,具体可详见Spring注解形式 环境准备相同步骤 Step1: 导入相关坐标,完整pom.…...

保姆级教程Docker部署Redis镜像

目录 1、创建挂载目录和配置文件 2、运行Redis镜像 3、查看redis运行状态 1、创建挂载目录和配置文件 # 创建宿主机Redis配置文件存放目录 sudo mkdir -p /data/docker/redis/conf# 创建Redis配置文件 cd /data/docker/redis/conf sudo touch redis.conf 到Github上找到Redi…...

子类有多个父类的情况下Super不支持指定父类来调用方法

1、Super使用方法 super()函数在Python中用于调用父类的方法。它返回一个代理对象,可以通过该对象调用父类的方法。 要使用super()方法,需要在子类的方法中调用super(),并指定子类本身以及方法的名称。这样就可以在子类中调用父类的方法。 …...

AI大模型ollama结合Open-webui

AI大模型Ollama结合Open-webui 作者:行癫(盗版必究) 一:认识 Ollama 1.什么是Ollama ​ Ollama是一个开源的 LLM(大型语言模型)服务工具,用于简化在本地运行大语言模型,降低使用大语言模型的门槛,使得大模型的开发者、研究人员和爱好者能够在本地环境快速实验、管理和…...

RK3568笔记2:NOR_Flash和NAND_Flash与SDMMC和eMMC

1. 本质区别 特性NOR Flash/NAND FlashSDMMC/eMMC定义基础存储器(原始闪存芯片)基于闪存芯片的存储模块,带有控制器组成结构只有原始存储芯片存储芯片 控制器控制方式需主机直接控制,读写逻辑由主机完成内置控制器,主…...

windows python qt5 QChartView画折线图

环境:windows pyqt5 ,用QCartView画折线图 环境需要提前安装 pip install PyQtChart 折线图随着时间推移会不断移动,主动更新x轴坐标 import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout from PyQt5.QtChart imp…...

阿里云通义千问:全面解析智能云服务先锋

一、技术架构与基础 模型构建基石 采用大规模语料库训练,涵盖多领域知识,如科学、历史、文学等,确保知识储备丰富多样。运用先进的神经网络架构,深度优化模型结构,提高信息处理效率与准确性。持续的语料更新机制&…...

QT 贪吃蛇

1.注意点 新new对象时,要food->show(),否则屏幕不显示 setText() 要求字符串 事件的触发必须写在QWidget中或这是他的子类才能触发,snake.cpp继承的是QTimer 产生动态的原因是定时器每间隔一秒执行一次 信号可以定义在别的.cpp中,只要连接…...

二、点亮希望之光:寄存器与库函数驱动 LED 灯

文章目录 一、寄存器1、存储器映射2、存储器映射表3、寄存器4、寄存器映射5、寄存器重映射6、总线基地址、外设基地址、外设寄存器地址7、操作寄存器(以操作一个GPIO口为例)1. 寄存器地址定义部分2. GPIOD_Configuration 函数部分3. main 函数部分 二、库…...

Oracle 用户管理模式下的恢复案例-不完全恢复

1. 不完全恢复的几种常用方法 01. recover database using backup controlfile 如果丢失当前控制文件,用冷备份的控制文件恢复的时候,用来告诉 oracle,不要以 controlfile 中的 scn 作为恢复的终点; 02. recover database until …...

SharpDevelop IDE IViewContent.cs类

文件位置&#xff1a;IViewContent.cs /// <summary>/// IViewContent is the base interface for "windows" in the document area of SharpDevelop./// A view content is a view onto multiple files, or other content that opens like a document/// (e.…...

Unity RectTransUtility工具类

这个工具主要是用于动态生成UI的情况。项目中我们通过配置UI的锚点、位置以及大小(位置、大小都是通过蓝湖看到的)&#xff0c;然后通过代码动态生成UI。 大部分情况下只要合理设置锚点&#xff0c;那么生成出来的UI就已经满足了适配的要求。 using UnityEngine;public static…...

React性能优化

三个可以优化的地方 避免过度多次渲染 组件会在以下情况下重新渲染 注意&#xff1a;例如组件组合的形式&#xff0c;<Test><Counter></Counter></Test>,即使Test发生了重新渲染&#xff0c;Counter也不会重新渲染。另外使用React这样的库或框架时&a…...

前端开发流程实操:从概念到上线

在前端开发这个充满创意与技术挑战的领域&#xff0c;一个清晰的开发流程是确保项目顺利进行并达到预期效果的关键。 下面就和大家分享一下前端开发的实操流程。 一、项目启动与需求分析 前端开发不是孤立的&#xff0c;它是整个项目的一部分&#xff0c;所以首先要与项目团…...

Metasploit使用

最近在学Metasploit&#xff0c;Metasploit是一个免费的、可下载的渗透测试框架&#xff0c;通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击&#xff0c;是一个集成了渗透测试全流程的渗透工具。 图一 模块&#xff1a;模块组织按照不同的用途分为7种类型的模块 &am…...

Milvus向量数据库05-常见问题整理

Milvus向量数据库05-常见问题整理 1-什么是PipeLine 这张图展示了一个文档处理和搜索系统的架构&#xff0c;主要分为两个部分&#xff1a;Ingestion Pipeline&#xff08;摄取管道&#xff09;和 Search Pipeline&#xff08;搜索管道&#xff09;。下面是对图中各部分的详细…...

Ruby On Rails 笔记3——表的增删改查

1.Migration Migrations是一种便利的方法,能以重现的方式随时间推移改变数据库schema. 使用Ruby Domain Specific Language (DSL),因此你不用手写SQL,进而使你的schema和changes与数据库独立。 可以把每次migration看作是数据库的一个新“版本”。A schema开始时什么都没有…...

CSS3 动画详解,介绍、实现与应用场景详解

CSS3 动画概述 CSS3 动画是通过 CSS3 的新特性来实现元素的动态变化。与传统的 JavaScript 动画不同,CSS3 动画主要通过 CSS 属性的变化来实现动画效果,具有高效、轻量和易于实现的优点。CSS3 动画通常用于网页的动态交互效果、过渡效果、元素移动、缩放、旋转等场景。 一、…...

Winston-MySQL 使用文档

目录 简介 安装 配置 环境变量配置 日志级别和表配置 创建 Logger 实例 文件传输配置 控制台输出配置 完整代码 使用方法 记录信息日志 记录错误日志 记录警告日志 总结 简介 winston-mysql 是一个为 winston3.x 日志库设计的 MySQL 传输插件&#xff0c;允许你…...

IndexTTS-2-LLM优化指南:提升合成速度与音频质量的技巧

IndexTTS-2-LLM优化指南&#xff1a;提升合成速度与音频质量的技巧 当你第一次使用IndexTTS-2-LLM生成语音时&#xff0c;可能会被它自然流畅的效果所吸引。但用了一段时间后&#xff0c;你可能会发现两个问题&#xff1a;生成一段稍长的文本需要等待好几秒&#xff0c;或者在…...

3步掌握高效网络数据采集:Scrapling智能反爬+异步处理实战指南

3步掌握高效网络数据采集&#xff1a;Scrapling智能反爬异步处理实战指南 【免费下载链接】Scrapling &#x1f577;️ Undetectable, Lightning-Fast, and Adaptive Web Scraping for Python 项目地址: https://gitcode.com/GitHub_Trending/sc/Scrapling 在当今数据驱…...

企业软件底层逻辑脱胎换骨:从席位订阅到决策订阅,下一个万亿公司属于这类玩家

允中 发自 凹非寺量子位 | 公众号 QbitAI大模型落地进入深水区&#xff0c;企业级软件正在发生一次底层逻辑的“脱胎换骨”。回顾技术发展史&#xff0c;ERP、CRM、BI的出现&#xff0c;本质上是在解决资源、客户与数据的“管理”问题。在此背景下&#xff0c;由哈佛大学博士、…...

告别手写C库!用Buddy-MLIR一键编译PyTorch模型到Gemmini加速器(实战避坑)

告别手写C库&#xff01;用Buddy-MLIR一键编译PyTorch模型到Gemmini加速器&#xff08;实战避坑&#xff09; 当算法工程师面对定制硬件加速器时&#xff0c;最头疼的莫过于如何将训练好的模型高效部署到专用计算架构上。传统手工编写C库的方法不仅耗时费力&#xff0c;更成为阻…...

7个革新性的REFramework应用技巧:游戏开发者的效率提升指南

7个革新性的REFramework应用技巧&#xff1a;游戏开发者的效率提升指南 【免费下载链接】REFramework REFramework 是 RE 引擎游戏的 mod 框架、脚本平台和工具集&#xff0c;能安装各类 mod&#xff0c;修复游戏崩溃、卡顿等问题&#xff0c;还有开发者工具&#xff0c;让游戏…...

告别PASCAL VOC!手把手教你用Labelme标注数据,为UNet构建自己的多分类语义分割数据集

告别PASCAL VOC&#xff01;手把手教你用Labelme标注数据&#xff0c;为UNet构建自己的多分类语义分割数据集 在计算机视觉领域&#xff0c;语义分割一直是热门研究方向之一。不同于简单的目标检测&#xff0c;语义分割需要对图像中的每一个像素进行分类&#xff0c;这使其在医…...

跨境电商注销店铺能规避美国TRO吗?

SellerAegis卖家守护视角下的“弃店思维”与真实法律后果解析在跨境电商卖家遭遇美国TRO&#xff08;Temporary Restraining Order&#xff0c;临时限制令&#xff09;后&#xff0c;最常见的一种想法就是&#xff1a;如果把店铺注销&#xff0c;是不是就可以规避风险&#xff…...

RAG系统意图识别模块设计与实现思路

前言在RAG&#xff08;检索增强生成&#xff09;系统的实际应用中&#xff0c;我们经常会遇到一个问题&#xff1a;所有用户问题都走相同的检索-生成流程。这会导致闲聊问题浪费检索资源、分析型问题检索不足、操作型问题无法正确处理等一系列问题。本文将介绍如何在RAG系统中加…...

连云港市区本地人推荐的特色家常铁锅炖餐厅

在连云港市区&#xff0c;有一家备受本地人推崇的特色家常铁锅炖餐厅——灶福乐东北铁锅炖。它凭借独特的魅力&#xff0c;成为了本地家庭、企业团建以及游客打卡的热门之选。下面&#xff0c;让我们深入了解这家餐厅的过人之处。一、品牌故事&#xff1a;坚守正宗&#xff0c;…...

梦幻动漫魔法工坊快速上手:无需代码,网页端直接生成动漫图像

梦幻动漫魔法工坊快速上手&#xff1a;无需代码&#xff0c;网页端直接生成动漫图像 你是否也曾幻想过&#xff0c;用几句话就能召唤出脑海中的梦幻场景&#xff1f;一个可爱的猫耳少女&#xff0c;在樱花树下回眸&#xff1b;或是奇幻的魔法森林里&#xff0c;精灵在月光下起…...