大家好,豆包来了,好久没回社区了,甚是想念,最近玩了一些语音播放,用语音播放模块代替TTS,感觉还不错,今天来分享给大家。 语音播放,顾名思义,就是将录制好的音频,进行播放,可以单曲循环,也可以指定音频片段进行播放,这种一般适用于音频数量不多,而且是固定内容的场合,这种就可以将想要的内容录制好,然后存在存储器之中,到时候按需要的进行播放即可。其优势是语音播放模块一般成本较低,但不足也有,就是存储音频数量有限,同时播放操作较为麻烦。 “TTS”,中文含义即时文字转语音,就是将文字发送给TTS模块,它就会将文字转换成语音并播放出来,这样的优势就是,内容自定义,想播放什么通过发送文字即可,一般适用于内容不固定的场合使用。其优势是灵活,但是缺点也有,就是成本较高,一个TTS语音模块大概就三五十元,有些会嵌入在通信模块中作为一个附属功能,比如一般的4G模块都会带有TTS功能,但费用比不带TTS功能的话也会贵上几块到十几块钱。 那么问题来了,既然TTS这么贵,而且在不用通信模块的前提下,如果单独购置个TTS模块是太不划算了,我们有什么办法将成本降下来呢?其实可以使用语音播放模块代替TTS的,接下来,豆包就使用了该方式实现了TTS功能,效果还不错~,接下来给大家聊聊怎么玩耍吧。 本次是在网上随便找的一款支持串口控制的音频播放模块,具体型号为JR6001,它的优势在于,可以接入在电脑上作为一个U盘,音频内容随时可以修改,而且支持U盘,TF卡和flash的存储介质。同时具有随机播放、组合播放、指定音频等等操作。该模块的资料还是比较全面的,还有一个调试工具,通过调试工具可以知道其具有的功能还是比较强大的。 图1 调试软件工具 硬件参数如图2所示。 图2 JR6001硬件参数 介绍完硬件,其实就可以将硬件搭建起来了,本次使用的是STM32F103最小系统板,配合JR6001语音播放模块,使用JR6001的组合播放功能,实现对DHT11采集到的温度进行语音播报。具体操作如下。首先需要录制0-10的十一段音频,在录制“温度”的音频,按照规则存在JR6001的flash之中。接下来要通过硬件连接,采用串口的方式与单片机相接,同时记得要接JR6001的判忙引脚,否则正在播放的音频会被打断。最后就是编写程序了,程序代码部分如下:
最后,看看视频效果吧,https://www.bilibili.com/video/BV1RW4y1H7Jg/感觉效果还是不错的,这种其实基本就和TTS效果相当了,而且还可以随便修改音色音调,其实要是专业一些,估计会比TTS效果要好,最后,要感谢ST社区这个平台,可以分享,同时感谢管理员的支持与帮助,愿ST社区越来越好,一起加油! |
STM32G030F6 ADC+DMA多通道非连续采样无法正常工作?
stm32f103的uac模式对usb接收的数据实时处理
FATFS到f_mount()卡死,求助,用的野火文件
TIM2输入捕获,DMA开启中断传输输入捕获数据,TIM6计时
stm32编码器模式计数问题
STM32H533RE使用主从定时器产生指定脉冲个数,使用其他定时器进行ETR计数,计数不对?大佬们帮忙看看。
STM32的HAL库,如何对高八位和低八位同时赋值和操作?
STM32L4R9最大支持SD卡的容量是?支持SDXC 64G卡吗?
M24M02 响应时间
STM32H747I-DISCO的LCD固件更新怎么在已有的STM32CubeIDE工程中更新?
必须的,日后常来
成本降下来了,就是首次操作会比较麻烦,其实大框弄好之后,往后就是修改语音内容了,非常容易而且移植性较好,效果也不错