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

有些产品一开发就是几个月,整个过程都跟冷冰冰的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个字节。

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

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

  1. 基于51单片机语音播报电子秤体重秤系统设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.Protues仿真 七.流程图 八.程序源码 九.资料包括 摘要 秤是一 ...

  2. 心率脉搏测试c语言算法,基于51单片机语音播报心率计脉搏测量仪设计(仿真源码+电路图+当时PaperPass16%查重论文)...

    一.本课题研究的主要内容.目的和意义 随着科技发展的不断提高,生命科学和信息科学的结合越来越紧密,出现了各种新颖的脉搏测量仪器,特别是电子脉搏仪的出现,使脉搏测量变得非常方便. 脉诊在我国已具有260 ...

  3. MS8006单片机开发IR红外遥控解码原理与程序实现(NEC)

    目录 一.红外遥控概述 二.红外编码规则 三.硬件实现 四.软件部分 1.软件实现原理 2.红外解码程序说明 3.高低位逆转算法说明 4.key_switch遥控按键指令识别函数说明 五.总结 一.红 ...

  4. 单片机C语言数据存储原理,介绍单片机中C语言的数据存储与程序编写

    一.五大内存分区: 内存分成5个区,它们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区. 1.栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区 ...

  5. 树莓派智能小车的购买选择、硬件原理、程序编写全套教程

    一.小车器件购买选型 教程里是购买的淘宝上集成好的小车器件.另外自己也买了一些散件配置了一辆自己的小车. https://detail.tmall.com/item.htm?id=6085544216 ...

  6. 单片机c语言存数据,单片机中C语言的数据存储与程序编写

    一.五大内存分区 内存分成5个区,它们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区. 1.栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区. ...

  7. 智能循迹避障小车C语言程序编写思路,基于单片机的智能小车红外避障循迹系统设计与制作...

    余秀玲 余秀娟 摘 要:随着科技的高速发展,人们对生活质量的要求越来越高,无人驾驶汽车已经被广为研发和试用,由此智能小车的快速发展也是在情理之中.通过对基于单片机的智能小车的硬件及软件设计分析,实现红 ...

  8. java开发的windows程序工作机制_Windows程序运行原理及程序编写流程

    #include "windows.h" #include "stdio.h" //定义窗口过程函数: LRESULT CALLBACK MyWndProc( ...

  9. 51单片机LCD12864语音播报电子书语音听书TTS串口语音

    实践制作DIY- GC0082-语音播报电子书 一.功能说明: 基于51单片机设计-语音播报电子书 功能介绍: 基于STC89C52(AT89C51/52)单片机,LCD12864,TTS串口语音模块 ...

  10. 基于51单片机的智能导盲杖语音播报积水检测温度提示灯光照明proteus仿真原理图

    功能介绍: 0.本系统采用STC89C52作为单片机 1.导盲仗的上部和底部分别设置超声波传感器,利用超声波测距原理分别测得盲人面部和脚底离障碍物的距离,并将障碍信息通过语音播报传递给盲人 2.导盲杖 ...

最新文章

  1. python客户价值分析_Python数据分析与应用航空公司客户价值分析.ppt
  2. ASP.NET MVC3 301永久重定向实现程序
  3. 方程的根的个数C语言xtu_零度根轨迹的绘制及情况讨论、以及参数根轨迹的原理介绍...
  4. 成立仅8个月的个人网站,月收入几十万美金
  5. 全局变量,extern和static以及命名空间的区别
  6. html内置时间对象,JavaScript中的常用事件,以及内置对象详解
  7. 【kafka】kafka /log_dir_event_notification的LogDir脱机事件通知
  8. 学java后学python,宁波学习java还是python(孩子学Python怎么样)
  9. 显示器提示超频的解决办法
  10. 用Unity3D实现打飞碟游戏
  11. 架构系列---QR二维码和扫描二维码登陆原理
  12. 线程池函数1 - 异步调用函数
  13. stm32cubemx hal学习记录:SPI W25Q64
  14. 前端自学驿站:【建议收藏】css晦涩难懂的点都在这啦
  15. Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN
  16. Python-matplotlib:调整坐标轴位置、标签位置和标签方向,以及X轴刻度标签位置
  17. Python 外星人入侵(一):武装飞船
  18. 马贼——选自《萌芽》王若虚
  19. 工业视觉需要时可抄的代码---持续更新
  20. 【深度报道】被业内称作“骨灰级AI玩家”的科大讯飞推出多款产品惊艳亮相...

热门文章

  1. Linux下关闭udhcpc客户端时,通知服务器释放租约
  2. 红米7pro支持html不,可以畅快的刷机了,红米Note 7 Pro等机型适配 TWRP
  3. nodejs菜鸟教程
  4. Python pandas库的简单使用
  5. 徐培成电商项目-徐培成-专题视频课程
  6. QQ影音播放器 for Mac
  7. 图像直方图均衡 matlab,图像直方图均衡化
  8. 抓包工具charles下载安装(破解版)
  9. pip 安装GPU版本pytorch 与cuda下载
  10. 神经网络——深度学习应用于计算机视觉