单片机语音播报怎么做?语音模块原理及程序编写思路

发布者:骄阳少年最新更新时间:2023-01-04 来源: zhihu关键字:单片机  语音播报  语音模块 手机看文章 扫描二维码
随时随地手机看文章

我最欢就是做带语音播报的产品,写程序的过程太枯燥了。

有些产品一开发就是几个月,整个过程都跟冷冰冰的LED、蜂鸣器、按键、LCD屏打交道难免有些寂寞。

加上语音就不同了,录制好一个好听的妹子声音,不但可以提升整个产品的逼格,自己也满满的成就感。

今天就来聊聊带语音的产品怎么做。

实际产品中,用单片机播放语音方案有很多种,唯一没有开发板那种,因为成本各方面都不满足产品需求。

另外就是加一个语音芯片,如果利润高的产品会优先使用这种,一个几块钱还能接受。

还有就做软解码的,就是把语音文件解码成喇叭能够识别的PWM和DAC数据,这种技术难度最大,对工程师编程水平是一个考验。

虽然难度大,但是成本低,不需要额外增加语音芯片,老板的最爱,反正工程师掉点头发对公司又没影响。

软解码大概在6,7年前做电子狗的时候玩过一次,大概原理就是把语音文件合并成bin文件,烧录到外置的flash里面,做好每条语音的地址映射。

用单片机读取Flash的数据并解码,然后转换成PWM或者DAC经过功放输出到喇叭。

这种一般要有个写上位机的配合,以前市面上没有在把语音文件合并成bin文件的工具,现在好像有了。

时间相隔太久,很多细节记不清楚了,后续如果还能找到资料再跟大家分享。

今天无际单片机编程给大家讲后面我做过的一种方法:用语音芯片

这是语音芯片的一些介绍:

我们需要关注的就是,这个芯片对语音长度的支持分别有55s、25s、85s,如果产品语音少还是挺合适的。

这种芯片如果语音少的直接用芯片内部的Flash,如果语音多了就需要外挂一个Flash来存储语音数据。

一般每个产品的语音都是不一样的,那怎么把我们想要的语音通过这个语音芯片播放出来呢?

想实现这个功能要经过以下几个步骤:

1. 通过软件把语音文案转成mp3格式语音文件,类似的软件有很多,比如说科大讯飞。

2. 把语音文件提供给芯片方,让他们帮你定制。

3. 拿到样品后就是焊接到自己板子上,然后根据芯片规格书写控制时序程序,每条语音都对应了一个地址,只要把地址数据写入芯片,芯片就会自动播放指定语音。

整个过程是不是非常简单?

除了播放语音功能以外,还有一些附加功能,比如说静音,音量调节、循环播放等等。

下面来看下芯片的引脚定义

一般使用3根线来跟单片机通讯。

PA0/SDA:数据线

PA1/SCL:时钟线

PA2:忙碌线,当有语音播报的时候,该引脚为低电平

芯片的控制时序如下:

不难发现,数据开始之前SCL需要先产生5ms的低电平同步头,然后数据在SCL线的上升沿被读取,一共读取8位,也就是1个字节。

如果你不会写这个时序也没关系,芯片原厂都有提供例程。



关键字:单片机  语音播报  语音模块 引用地址:单片机语音播报怎么做?语音模块原理及程序编写思路

上一篇:学单片机有什么用?单片机自学网有哪些?
下一篇:学单片机需要什么学历?单片机开发需要学什么

推荐阅读最新更新时间:2024-11-18 13:37

两片74HC595级联动态驱动8位数码管 51单片机
功能 : 用2片74HC595驱动8位数码管, 级联的最低1片595控制位选,那么第一片控制段选 时间 : 2013-3-28 21:11:59 作者 : Stone 版本 : REV1 平台 : STC89C52 11.0592MHz 现象 : 8位数码管从第一位开始从0计数,满10进位 版本说明 : 第0版本没有使用定时器中断,同时定义了一个 unsigned long int 变量计数 再把这个数的每位分离出来显示,所以导致有点闪屏,此版本使用定时器中断, 而且没有用 unsigned long int 之类的变量,而是用数组 Val 来计数,
[单片机]
单片机系统中LED显示驱动电路的分析
  近年来,单片机系统以其体积小、功能强、扩展灵活、使用方便等优点,逐渐渗透到各行业的工程实际应用中。而 led显示 电路就像单片机系统的眼睛,实时地向人们传递着系统工作的各种状态信息和处理结果。因此,高效、方便的LED显示 驱动 电路是构成完善的单片机系统必不可少的元素。常用的LED显示驱动电路有并行译码方式、串行—并行转换方式、 显示驱动 接口 芯片方式等。下面分别对这几种方式进行讨论,并给出显示驱动芯片MAX7219的应用实例。   并行译码 显示 方式   图1为单片机89C2051输出显示的一个例子,4位BCD码数据从其P1.0~P1.3并行输出,经7段LED显示驱动电路CD4511译码后驱动LED显示,这样只需向P
[单片机]
<font color='red'>单片机</font>系统中LED显示驱动电路的分析
c51单片机学习笔记-IO扩展(串转并)实验 - 74HC595
目的:通过 74HC595 模块控制 LED 点阵以一行循环滚动显示。 编译软件:keil5 过程: (1)先定义好74HC595 控制管脚,以及点阵列控制口 //定义 74HC595 控制管脚 sbit SRCLK=P3^6; //移位寄存器时钟输入 sbit RCLK=P3^5; //存储寄存器时钟输入 sbit SER=P3^4; //串行数据输入 #define LEDDZ_COL_PORT P0 //点阵列控制端口 u8 ghc595_buf ={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; (2)重新定义了一个 ms 级延时函数 delay_ms,该函数与前面 de
[单片机]
c51<font color='red'>单片机</font>学习笔记-IO扩展(串转并)实验 - 74HC595
STC单片机免断电下载程序的更简单的方法
看到网上有一些STC单片机免断电下载程序的例子。但是都是要用串口中断来完成。以下是一个程序片断 拿来说明 在调试程序中加入串口初始化代码,串口中断代码即可实现不断电下载程序 TMOD|=0x20; SCON=0x50; TH1=0xfd; //12T时钟9600bps TL1=0xfd; TR1=1; ES=1; EA=1; AUXR=AUXR|0x40; //定时器1使用1T时钟 9600*12=115200bps void UART(void) interrupt 4 { uchar cdd; if(RI) { RI=0; cdd=SBUF; if
[单片机]
STC单片机实现可调PWM输出的C51程序
//以下是源程序,只需修改定义IO口就可以使用,#include reg52.h #include intrins.h sbit K1 =P3^2 ; //增加键 sbit K2 =P3^3 ; //减少键 sbit BEEP =P3^1 ; //蜂鸣器 sbit pp =P3^7 ; unsigned char PWM=0x7f ; //赋初值 void Beep(); void delayms(unsigned char ms); void delay(unsigned char t); /***********************************************
[单片机]
51单片机ADC0809电压表(12864显示,程序 + 仿真)
51单片机ADC0809电压表(12864显示,程序 + 仿真)并口;0~5V先上图正常工作图 上图:最大电压值 上图渐变电压值(最大到最小) 这是仿真图,可以进行仿真 #include reg51.h #include LCD12864.h sbit OE=P3^6; sbit EOC=P3^7; sbit CLOCK=P3^0; sbit ST=P3^3; void Lcd12864_Display(); unsigned char dat = 0.000V ; unsigned int tmp; unsigned char adc; void main() { EA=1; ET0=1; T
[单片机]
51<font color='red'>单片机</font>ADC0809电压表(12864显示,程序 + 仿真)
芯旺微电子KungFu内核架构32位MCU助力汽车电子发展
日前,在深圳国际电子展上,芯旺微电子推出首款基于KungFu(功夫)内核架构的32位MCU,将高端芯片国产化关注度推向新的高度。 据悉,本次芯旺微电子历经6年研发攻关,共推出KF32F、KF32A、KF32L、KF32LS四个系列多款芯片产品。KungFu内核在32位MCU的成功应用正在加速推动中国KungFu架构产业化发展。虽然现在Arm指令集仍是中国市场最主流的指令集架构,但受环境影响,KungFu架构将越来越受到中国用户的重视。与Arm指令集授权方式不同,相较而言,KungFu比Arm更能满足“自主可控”的需求。 KungFu32基于16位/32位混合指令的高效指令集,采用单周期32X32 MAC单元、单周期1
[嵌入式]
芯旺微电子KungFu内核架构32位<font color='red'>MCU</font>助力汽车电子发展
基于AVR单片机的LED显示屏的灰度设计与实现
  LED点阵块具有亮度高、发光均匀、可靠性好、拼装方便等优点,能构成各种尺寸的显示屏。目前,LED显示屏已被广泛应用于文字显示并取得了很好的效果,但是大部分仅能显示滚动的文字信息而不能显示图像,并且还存在系统复杂等缺点。本文提出了一种主从式单片机的LED显示屏解决方案,该设计方案利用AVR单片机自身的FLASH ROM和RAM,外部无需任何存储电路,电路结构简单。该系统实现了图像的16阶灰度显示,可广泛用于商场、车站等公共场合。    1 AVR单片机简介       AVR单片机是增强型内置FLASH的RISC(ReducedInstruction Set CPU)精简指令集高速8位单片机,硬件采用哈佛(Harward)结
[工业控制]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved