加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

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

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

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

 

今天小哈哥就來簡單分享一下這個(gè)模塊。

模塊概述

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

工作模式配置

 

硬件連接

 

原理圖

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

 

 

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

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

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

資源文件

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

https://www.coder.work/text2audio

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

 

 

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

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

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

 

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

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

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

結(jié)果展示

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

效果趕不上專業(yè)的TTS模塊,此方案勝在性價(jià)比高。

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

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

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