• 正文
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

STM32驅(qū)動(dòng)語(yǔ)音模塊播報(bào)實(shí)時(shí)時(shí)間

2022/05/12
708
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大家好,我是程序員小哈。

前幾天有個(gè)球友在用一個(gè)語(yǔ)音模塊,遇到了點(diǎn)困難,為了方便調(diào)試,小哈哥也買(mǎi)了兩個(gè)一起玩了一下。

 

今天小哈哥就來(lái)簡(jiǎn)單分享一下這個(gè)模塊。

模塊概述

  • DY-SV17F 語(yǔ)音模塊,包括IO 分段觸發(fā),UART 串口控制, ONE_line 單總線(xiàn)控制,標(biāo)準(zhǔn) MP3 等 7 種工作模式;板載 5W D 類(lèi)功放,可直接驅(qū)動(dòng) 4Ω, 3~5W 喇叭;支持 MP3,WAV 解碼格式;板載4MBte flash 存儲(chǔ),可通過(guò) USB 數(shù)據(jù)線(xiàn)連接模塊上的MicroUSB接口,電腦可以將模塊識(shí)別為一個(gè)U盤(pán),打開(kāi)此存儲(chǔ)更新音頻文件即可。

工作模式配置

 

硬件連接

 

原理圖

為了測(cè)試方便,各位也可以畫(huà)一個(gè)PCB板,這樣就可以避免使用一堆杜邦線(xiàn)進(jìn)行連接,也可以避免調(diào)試過(guò)程中遇到一些不必要的問(wèn)題,底板的原理圖可以參考下圖所示。

 

 

因?yàn)槲覀円x擇串口模式,所以實(shí)際使用過(guò)程中,CON1、CON2接地,CON3接高電平。

CON3/BUSY 引腳,上電 30mS 內(nèi)作為模式配置引腳 3,30mS 后作為 BUSY 信號(hào)輸出,播放曲目時(shí),CON3輸出高電平(3.3V),播放結(jié)束輸出低電平(0V)。

注意:上述CON3引腳狀態(tài),我實(shí)際測(cè)試結(jié)果與手冊(cè)中描述相反,此處自己使用時(shí)進(jìn)行一下確認(rèn)。

資源文件

要想實(shí)現(xiàn)語(yǔ)音播放當(dāng)前時(shí)間,我們首先要找到或者制作一些基本語(yǔ)音的音頻文件,如果想制作音頻文件素材,可以用下面網(wǎng)址制作:

https://www.coder.work/text2audio

準(zhǔn)備好組合播放的音頻素材文件,將其放置在 ZH 文件夾下,曲目名要求固定兩個(gè)字符,為了控制方便,我們選擇以?xún)晌粩?shù)字的形式命名文件名,本次實(shí)例的音頻文件素材如下:

 

 

素材的語(yǔ)音內(nèi)容具體如下:

文件名 語(yǔ)音
00.mp3
01.mp3
02.mp3
03.mp3
04.mp3
05.mp3
06.mp3
07.mp3
08.mp3
09.mp3
10.mp3
11.mp3 現(xiàn)在時(shí)間是
12.mp3 點(diǎn)
13.mp3
14.mp3

協(xié)議

串口通信波特率為9600,數(shù)據(jù)位:8,停止位1位,校驗(yàn)位N。

示例 含義 備注
AA 01 00 AB 查詢(xún)播放狀態(tài) AA 01 01 播放狀態(tài) 校驗(yàn)
AA 02 00 AC 從頭開(kāi)始播放當(dāng)前曲目  
AA 03 00 AD 暫停 無(wú)返回
AA 04 00 AE 停止 無(wú)返回
AA 05 00 AF 上一曲 無(wú)返回
AA 06 00 B0 下一曲 無(wú)返回
AA 07 02 曲目高 曲目低 SM 指定曲目 無(wú)返回,曲目序號(hào)由存儲(chǔ)順序決定。
AA 0C 00 B6 查詢(xún)總曲目 返回:AA 0C 02 總曲目高 總曲目低 校驗(yàn)
AA 0D 00 B7 查詢(xún)當(dāng)前曲目 AA 0D 02 00 08 C1
AA 10 00 BA 結(jié)束播放  
AA 13 01 VOL SM 音量設(shè)置 無(wú)返回,例如:AA 13 01 14 D2 設(shè)置音量為 20 級(jí)
AA 14 00 BE 音量加 無(wú)返回
AA 15 00 BF 音量減 無(wú)返回
AA 1B 長(zhǎng)度 曲目 1 名稱(chēng)高字節(jié),曲目名稱(chēng) 1 低字節(jié)..... 曲目 n 名稱(chēng)高字節(jié), 曲目 n 名稱(chēng)低字節(jié) SM 組合播放 無(wú)返回,例如:AA 1B 04 30 31 30 32 8C,文件名為“01”、“02”歌曲組合播放。 文件名播放方式,不受拷貝順序限制。
AA 1C 00 C6 結(jié)束組合播報(bào) 無(wú)返回
AA 25 00 CF 開(kāi)啟播放時(shí)間發(fā)送 返回:AA 25 03 時(shí) 分 秒 SM
AA 25 03 01 02 03 D8    
AA 26 00 D0 關(guān)閉播報(bào)時(shí)間發(fā)送  

查詢(xún)模塊當(dāng)前播放狀態(tài)的串口指令,調(diào)試過(guò)程如截圖所示:

 

模塊的串口協(xié)議有很多,因?yàn)橐シ艑?shí)時(shí)時(shí)間,這個(gè)是一個(gè)變化的量,使用模塊自帶的組合播放功能,可以方便的實(shí)現(xiàn)實(shí)時(shí)時(shí)間的播報(bào)。

 AA 1B 長(zhǎng)度 曲目1名稱(chēng)高字節(jié) 曲目名稱(chēng)1低字節(jié) ..... 曲目n名稱(chēng)高字節(jié) 曲目n名稱(chēng)低字節(jié) SM  

例如:串口發(fā)送 AA 1B 04 30 31 30 32 8C,模塊會(huì)將文件名為“01.mp3”、“02.mp3”的歌曲進(jìn)行組合播放。

結(jié)果展示

要進(jìn)行組合播放,無(wú)非將要組合的文件名進(jìn)行拼接,將這些內(nèi)容按照組合播放的通信協(xié)議,組成一個(gè)字符數(shù)組進(jìn)行發(fā)送即可,代碼比較簡(jiǎn)單,大家有需要的,直接去公眾號(hào)后臺(tái)回復(fù):語(yǔ)音播報(bào)實(shí)時(shí)時(shí)間 獲取代碼查看吧。

效果趕不上專(zhuān)業(yè)的TTS模塊,此方案勝在性?xún)r(jià)比高。

今天的文章到這里就結(jié)束了,希望對(duì)你有幫助,我們下期見(jiàn)。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶(hù)資源
  • 寫(xiě)文章/發(fā)需求
立即登錄

公眾號(hào)『嵌入式從0到1』,號(hào)主:程序員小哈,是一個(gè)軟硬件全棧開(kāi)發(fā)工程師(12年工作經(jīng)驗(yàn)的老司機(jī)),電子發(fā)燒友論壇鴻蒙版塊版主,公眾號(hào)內(nèi)容專(zhuān)注于嵌入式學(xué)習(xí)。堅(jiān)持原創(chuàng),寫(xiě)有圖、有視頻的保姆級(jí)教程文章,篇篇有干貨。做一個(gè)講清楚,說(shuō)明白,大家學(xué)得會(huì)的交流平臺(tái)。