DY-SV17F 语音模块
大家好,我是程序员小哈。
前几天有个球友在用一个语音模块,遇到了点困难,为了方便调试,小哈哥也买了两个一起玩了一下。
今天小哈哥就来简单分享一下这个模块。
模块概述
- DY-SV17F 语音模块,包括IO 分段触发,UART 串口控制, ONE_line 单总线控制,标准 MP3 等 7 种工作模式;
- 板载 5W D 类功放,可直接驱动 4Ω, 3~5W 喇叭;
- 支持 MP3,WAV 解码格式;
- 板载4MByte flash 存储,可通过 USB 数据线连接模块上的MicroUSB接口,电脑可以将模块识别为一个U盘,打开此存储更新音频文件即可。
硬件连接
原理图
为了测试方便,各位也可以画一个PCB板,这样就可以避免使用一堆杜邦线进行连接,也可以避免调试过程中遇到一些不必要的问题,底板的原理图可以参考下图所示。
因为我们要选择串口模式,所以实际使用过程中,CON1、CON2接地,CON3接高电平。
CON3/BUSY 引脚,上电 30mS 内作为模式配置引脚 3,30mS 后作为 BUSY 信号输出,播放曲目时,CON3输出高电平(3.3V),播放结束输出低电平(0V)。
注意:上述CON3引脚状态,我实际测试结果与手册中描述相反,此处自己使用时进行一下确认。
工作模式配置
资源文件
要想实现语音播放当前时间,我们首先要找到或者制作一些基本语音的音频文件,如果想制作音频文件素材,可以用下面网址制作:
https://www.coder.work/text2audio
准备好组合播放的音频素材文件,将其放置在 ZH 文件夹下,曲目名要求固定两个字符,为了控制方便,我们选择以两位数字的形式命名文件名,本次实例的音频文件素材如下:
素材的语音内容具体如下:
文件名 | 语音 |
---|---|
00.mp3 | 零 |
01.mp3 | 一 |
02.mp3 | 二 |
03.mp3 | 三 |
04.mp3 | 四 |
05.mp3 | 五 |
06.mp3 | 六 |
07.mp3 | 七 |
08.mp3 | 八 |
09.mp3 | 九 |
10.mp3 | 十 |
11.mp3 | 现在时间是 |
12.mp3 | 点 |
13.mp3 | 分 |
14.mp3 | 秒 |
协议
串口通信,波特率为9600,数据位:8,停止位1位,校验位N。
示例 | 含义 | 备注 |
---|---|---|
AA 01 00 AB | 查询播放状态 | AA 01 01 播放状态 校验 |
比如:AA 01 01 00 AC | ||
AA 02 00 AC | 从头开始播放当前曲目 | |
AA 03 00 AD | 暂停 | 无返回 |
AA 04 00 AE | 停止 | 无返回 |
AA 05 00 AF | 上一曲 | 无返回 |
AA 06 00 B0 | 下一曲 | 无返回 |
AA 07 02 曲目高 曲目低 SM | 指定曲目 | 无返回,曲目序号由存储顺序决定。 |
AA 0C 00 B6 | 查询总曲目 | 返回:AA 0C 02 总曲目高 总曲目低 校验 |
AA 0D 00 B7 | 查询当前曲目 | AA 0D 02 00 08 C1 |
AA 10 00 BA | 结束播放 | |
AA 13 01 VOL SM | 音量设置 | 无返回,例如: AA 13 01 14 D2 设置音量为 20 级 |
AA 14 00 BE | 音量加 | 无返回 |
AA 15 00 BF | 音量减 | 无返回 |
AA 1B 长度 曲目 1 名称高字节,曲目名称 1 低字节… 曲目 n 名称高字节, 曲目 n 名称低字节 SM | 组合播放 | 无返回,例如: AA 1B 04 30 31 30 32 8C,文件名为“01”、“02”歌曲组合播放。 文件名播放方式,不受拷贝顺序限制。 |
AA 1C 00 C6 | 结束组合播报 | 无返回 |
AA 25 00 CF | 开启播放时间发送 | 返回:AA 25 03 时 分 秒 SM |
AA 25 03 01 02 03 D8 | ||
AA 26 00 D0 | 关闭播报时间发送 | |
查询模块当前播放状态的串口指令,调试过程如截图所示:
模块的串口协议有很多,因为要播放实时时间,这个是一个变化的量,使用模块自带的组合播放功能,可以方便的实现实时时间的播放报。
AA 1B 长度 曲目1名称高字节 曲目名称1低字节 ..... 曲目n名称高字节 曲目n名称低字节 SM
例如:串口发送 AA 1B 04 30 31 30 32 8C,模块会将文件名为“01.mp3”、“02.mp3”的歌曲进行组合播放。
结果展示
要进行组合播放,无非将要组合的文件名进行拼接,将这些内容按照组合播放的通信协议,组成一个字符数组进行发送即可,代码比较简单,大家有需要的,直接去公众号后台回复:语音播报实时时间 获取代码查看吧。
下面我们看一下语音播放实时时间的效果吧。
效果赶不上专业的TTS模块,此方案胜在性价比高。
今天的文章到这里就结束了,希望对你有帮助,我们下期见。
更多精彩内容,请关注小哈哥的微信视频号:程序员小哈
DY-SV17F 语音模块相关推荐
- Swift 中 insetBy(dx: CGFloat, dy: CGFloat) - CGRect 用法详解
insetBy(dx: CGFloat, dy: CGFloat) -> CGRect 点击头文件进去 可以发现它是返回的一个CGRect insetBy方法是CGRect 的一个方法 dx后面 ...
- 支持自定义的离线语音模块WT516P6Core 串口协议使用说明
很多开发爱好者在应用启明云端的WT516P6Core自定义离线语音模块时,遇到最多的就是串口问题:接好线没反应,串口数据没有等等 ,这里为大家整理了一份串口协议使用说明文档供大家参考! 离线语音-支持 ...
- 用WT516P6Core离线语音模块在烧录和连接MCU时要注意避开的坑,要不挠掉头发也钻不出来!我差点套进去了,还好他们技术人员给力!把我给扯出来了!做了一个踩坑记录分享给大家
为什么会选择用WT516P6Core离线语音模块呢?原因有几点,一是他支持自定义语音,虽然说现在是针对开发爱好者给的是一个公共帐号,也就是同一个入口,使用的是同一个帐号,都可以在上面建项目.发布项目, ...
- 启明云端WT516P6Core离线语音模块发布后,开发者朋友提出的问题最多的是:是否可以自己编译指令
关于这个问题,开发者朋友后期可以在esp32.8ms.xyz.平台上进行二次开发,方便定制,目前正在完善测试中,很快发布. 目前市面上的离线语音大多无法做到自定义控制指令,用户如果需要按照业务场景自行 ...
- 小米tts语音引擎下载_TTS语音模块:XFS5152CE语音合成模块详解
TTS是Text To Speech的缩写,即"从文本到语音",是人机对话的一部分,让机器能够说话. 语音播报功能的实现方式 TTS语音模块,比如XFS5152.SYN6288等 ...
- 智能家居 (5) —— LD3320语音模块二次开发
目录 LD3320语音模块使用介绍 二次开发源码修改 程序编译及烧录 程序测试 往期文章 LD3320语音模块使用介绍 语音模块之前在博文有讲过,具体的使用方法参见这篇博文:硬件模块化开发的例子:LD ...
- 硬件模块化开发的例子:LD3320语音模块与Source Insight的使用
目录 硬件模块化开发的行情 LD3320语音模块使用手册介绍: 语音模块验货测试 硬件连接效果图 测试结果良好 Source Insight代码查看器 创建工程 修改字体 配色方案 中文乱码 关联代码 ...
- 树莓派外设开发之接入语音模块
参考:树莓派接入语音模块控制继电器组 作者:糯米啊啊 发布时间: 2021-04-18 17:07:08 网址:https://blog.csdn.net/weixin_43732386/articl ...
- LintCode MySQL 1968. 查询首两个字母在 ‘Db‘ 和 ‘Dy‘ 之间的课程名称(REGEXP正则)
文章目录 1. 题目 2. 解题 1. 题目 描述 请编写 SQL 语句,查询 courses 表中,课程名首两个字母在 'Db' 和 'Dy' 之间所有课程的名称 https://www.lintc ...
- Python的文字转语音模块pyttsx3模拟测温提示
今天有朋友问我,想用Python模拟测温做一个语音提醒.我虽然会Python,想到是要用到一些第三方语音模块,但具体怎么用还真没试过.经过一番搜索和踩坑,最后找到这个能用的,谨以本篇博客作为一次学习笔 ...
最新文章
- 什么是IOC为什么要使用IOC
- 揭秘毕加索被隐藏千年的“画中画”,神经网络让它重新面世
- 索引中丢失IN或OUT
- PHPROXY Encrypt 0.61
- C++动态绑定及返回类型协变
- 对话中情绪识别,研究挑战、数据集和前沿方法
- mysql repos_mysql yum源安装
- POJ 3734_Blocks
- React Elements vs React Components
- 返回零长度的数组或者集合,而不是null
- 我的面试准备过程--队列与栈(更新中)
- h5学习笔记:写一个小表格
- java springboot实现pdf在线盖章,签字的功能
- 1.1 爬虫入门介绍
- 玉米社:抖音玩法和运营机制,学会这些技巧,轻松上热门
- 愚人节整蛊,网页倾斜代码
- 测试电商项目 第三章
- Mysql客户端给字段添加中文数据报错SQL错误(1366):Incorrect string value: ‘\xE5\xA4\xA7\xE5\xB9\x85...‘ for column ‘nam
- vs项目文件夹进行分类管理
- 苹果硅之后:PC市场会走向何方?