基于STM32 + SYN6288语音播报

您所在的位置:网站首页 进行语音播报的软件叫什么软件 基于STM32 + SYN6288语音播报

基于STM32 + SYN6288语音播报

2024-07-07 02:39| 来源: 网络整理| 查看: 265

完整代码下载

https://download.csdn.net/download/zhouml_msn/85592868

一、接线示例: 二、模块重点:

1:5V供电 ,功耗约120mA (带图中小喇叭);

2:最少接3根线:5V,  GND,  RXD,TXD-可不接,BY-可不接

3:两种音源输出接口,排针、标准3.5mm接口,接小喇叭和普通音箱都无压力。

4:每次最多可转换200字节文本;

三、代码重点:

1:串口配置波特率9600,输出文本到模块,模块自动输出语音; 

2:输出的文本中,可插入控制参数,以实现更自然的朗读。

3:.....想不出有啥要注意了;厂家的封装和设计,令使用相当的简单。

四、实现代码 1:main.c文件 #include #include "bsp_led.h" // LED指示灯 #include "bsp_usart.h" // USART1、2、3,UART4、5 #include "bsp_syn6288.h" // SYN6288_文本转语音模块 float money = 18.5; // 示例金额,仅用作测试 static void delay_ms(uint32_t ms) // 定义一个ms延时函数 { ms = ms * 11993; for (uint32_t i = 0; i < ms; i++); } // 主函数 int main(void)printf { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 中断分组 USART1_Init(115200); // 串口1初始化; 用于printf Led_Init(); // LED 初始化 LED_RED_ON; // 点亮红灯 Key_Init(); // 按键 初始化 SYN6288_Init(USART2); // 初始化; USART2-PA2 SYN6288_Say("你的结算金额为: %3.1f元", money); // 示例4:配合格式代输出带数值的语音 while (1) // while函数死循环 { delay_ms(500); // 间隔延时 LED_RED_TOGGLE ; // 规律闪烁LED,观察系统是否正常运行 } } 2:bsp_syn6288.h文件 #ifndef __SYN6288_H #define __SYN6288_H /*********************************************************************************************************************************** ** 【代码编写】 魔女开发板团队 ** 【代码更新】 Q群文件夹 ** 【淘 宝】 魔女开发板 https://demoboard.taobao.com *********************************************************************************************************************************** ** 【文件名称】 bsp_sys6288.h ** ** 【功能实现】 文本转换语音输出 ** ** 【适用平台】 STM32F103 + 标准库v3.5 + keil5 + SYN6288 ** ** 【硬件重点】 接线,模块有五个引脚,可以只接三根线,即可实现文本转音: ** VCC --- 5V ** GND --- GND ** RXD --- PC12 说明:与所用串口配合,USART1-PA9, USART2-PA2, USART3-PB10, UART4-PC10, UART5-PC12(本示例中所用引脚) ** TXD --- 空置 ** BY --- 空置 说明:模块忙状态引脚,测试时可空置,做真实项目时,建议用于配合检测状态。 ** ** 【移植说明】 1- 复制本工程bsp文件夹中的两个文件夹: USART、SYN6288,到目标工程文件夹中; (注意,本文件须配合bsp_usart.c文件使用) ** 2- 在keil左侧工程管理器中,双击,把上述两者的c文件添加到工程; ** 3- 点击魔术棒,在Options.../c.../Include...下添加头文件存放路径; ** 4- 在代码中,#include "bsp_usart.h",和 #include "bsp_syn6288.h"; ** ** 【代码使用】 初 始 化:SYN6288_Init(USARTx); // 使用不同的串口,就接不同的TX线 ** 输出语音:SYN6288_Say("你好吗?"); // 注意,传入参数可为格式化参数,如printf参数般使用 ** ** 【更新记录】 ** 2022-06-09 完善输出语音函数、完善注释 ** 2022-05-00 示例工程建立 ** ************************************************************************************************************************************/ #include #include "bsp_usart.h" /***************************************************************************** ** 全局变量 (无要修改) ****************************************************************************/ typedef struct { uint8_t FlagOkay; // 状态标记, 暂未用到,保留; 0=未初始化或异常, 1=正常 uint32_t Baudrate; // 记录所用的串口波特率,暂未用到,保留 USART_TypeDef* USARTx; // 记录所用的端口 }xSYN6288_TypeDef; extern xSYN6288_TypeDef xSYN6288; // 声明为全局变量,方便记录信息、状态 /***************************************************************************** ** 声明全局函数 ** ****************************************************************************/ void SYN6288_Init(USART_TypeDef *USARTx); void SYN6288_Say(char *fmt, ...); #endif 3:bsp_syn6288.c文件 #include "bsp_syn6288.h" #include "stdarg.h" xSYN6288_TypeDef xSYN6288; // 全局变量结构体 static void delay_ms(uint32_t ms) // 简单的延时函数 { ms = ms * 11993; for (uint32_t i = 0; i < ms; i++); } //Music:选择背景音乐。0:无背景音乐,1~15:选择背景音乐 // SYN6288_SendFrameInfo(0, "[v10][m1][t5]结算金额 为32.8元"); // 参数: 0~15 : 背景音乐,0_无背景音乐,1~15_背景音乐可选 // [V0~16]: 文本朗读音量,0_最小,16_最大 // [m0~16]: 背景音乐音量,0_最小,16_最大 // [t0~5]: 朗读语速,0_最慢,5_最快 // 其它不常用功能请参考数据手册 static void SYN6288_SendFrameInfo(uint8_t Music, uint8_t *HZdata) { /****************需要发送的文本**********************************/ unsigned char Frame_Info[50]; unsigned char HZ_Length; unsigned char ecc = 0; //定义校验字节 unsigned int i = 0; HZ_Length = strlen((char *)HZdata); //需要发送文本的长度 /*****************帧固定配置信息**************************************/ Frame_Info[0] = 0xFD ; //构造帧头FD Frame_Info[1] = 0x00 ; //构造数据区长度的高字节 Frame_Info[2] = HZ_Length + 3; //构造数据区长度的低字节 Frame_Info[3] = 0x01 ; //构造命令字:合成播放命令 Frame_Info[4] = 0x01 | Music


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3