中文 | English

物聯網系列:讓開發板發出音效( WT588D-U 語音模組基本篇)

隨著數位化技術的推進,電子數位應用產品為人類生活帶來極佳的便利性與樂趣,而越來越多的數位產品,因應高齡使用者與弱勢族權,語音提示內容的需求越來越高。因此,語音模組已成為產業的關注焦點,全球相關廠商也投注資源開發語音模組之新技術、新應用,並為提昇人類便利使用而努力。

上個月的專欄「簡單揚聲器篇」(讓電腦發出音效 a讓電腦發出音效 b)中,提到使用簡單的揚聲器發出聲音與音效,對簡單的應用也許夠用。但是今日 3C 時代,這樣效果可能應用上顯的不足,所以本文要使用更高階的語音處理晶片,來產生語音、音效。本篇介紹 WT588D-U 語音模組:這是一個非常多元的語音晶片,相信讀者閱讀過本文後,想必會對語音的應用有更深入的認識。

本系列是「物聯網系列」系列電腦音效子系列第 3 篇:讓開發板發出音效( WT 588D-U 語音模組基本篇),主要告訴讀者,如何透過外加高階的語音處理晶片之模組來產生語音、音效。對更高階的語音、音效等需求,可以一一解決。

如何使用 WT588D-U 語音模組

由於解譯 WAV 或 Mp3 聲音資料,對於 CPU 而言,會耗損大量的 CPU 執行時間,並且對於攥寫解譯 WAV 或 Mp3 聲音資料的程式也是很大的負擔,所以本書引入了解譯 WAV 或 Mp3 聲音資料的硬體模組: WT588D-U 語音模組,下列將 WT588D-U 語音模組產品特徵列舉如下:

  • 28 腳模組封裝,可通過更換記憶體以獲得不同長度的語音存儲時間
  • 支援 2M bit – 32M bit 容量的 SPI-Flash(注:1byte = 8bit)
  • 採用 WT588D-20SS 語音晶片當作主控核心
  • 內嵌獨特的人聲語音處理器,使語音表現極為自然悅耳
  • 內置 13Bit/DA 轉換器,以及 12Bit/PWM 音訊處理,確保高品質語音輸出
  • 支援載入 6K~22KHz 取樣速率 WAV 音訊
  • PWM 輸出可直接推動 0.5W/8Ω 揚聲器
  • 支援 DAC/PWM 兩種輸出方式;
  • 支援按鍵控制模式、一線串口控制模式、三線串口控制模式;
  • 按鍵控制模式底下可以設置多種 IO 口觸發方式;
  • 任意設定顯示語音播放狀態信號的 BUSY 輸出方式;
  • 最多可載入 500 段編輯的語音
  • 220 段可控制位址位,每個位址位最多可載入 128 段語音,位址位元內的語音組合播放
  • 語音播放停止馬上進入休眠模式
  • 搭配套 WT588D VoiceChip 控制軟體,介面簡單,使用方便。能發揮 WT588D-U 語音模組各項功能
  • 軟體中可完成控制模式設置、語音組合、調用語音、靜音等操作
  • 可隨意進入靜音,靜音時間範圍為 10ms~25min
  • USB 下載方式,支援線上下載/離線下載;即便是在 WT588D-U 語音模組通電的情況下,也一樣可以正常下載資料到 SPI-Flash
  • 工作電壓 DC2.8V – 5.5V
  • 休眠電流小亍10uA
  • 抗干擾性強,可應用在工業領域

下列將WT588D-U 語音模組功能描述列舉如下:

  • 按鍵控制模式觸發方式靈活,可隨意設置任意按鍵為脈衝
  • 可隨意設置任意按鍵為脈衝重複觸發
  • 可隨意設置任意按鍵為脈衝可重複觸發
  • 可隨意設置任意按鍵為無效按鍵
  • 可隨意設置任意按鍵為上一曲
  • 可隨意設置任意按鍵為下一曲
  • 可隨意設置任意按鍵為上一曲可迴圈
  • 可隨意設置任意按鍵為下一曲可迴圈
  • 可隨意設置任意按鍵為音量+
  • 可隨意設置任意按鍵為音量-
  • 可隨意設置任意按鍵為播放
  • 可隨意設置任意按鍵為暫停
  • 可隨意設置任意按鍵為停止
  • 可隨意設置任意按鍵為播放/停止
  • 觸發方式:
    • 一線串口控制模式
    • 三線串口控制模式
    • 可透過單晶片控制語音播放、停止、迴圈播放和音量大小,戒者直接觸發0 – 219地址位的任意語音。

下列將 WT588D-U 語音模組應用範圍列舉如下:

  • 報站器
  • 報警器
  • 提醒器
  • 鬧鐘
  • 學習機
  • 智慧家電
  • 電子玩具
  • 電訊
  • 倒車雷達
  • 各種自動控制裝置

本文使用的 WT588D-U 語音模組,由下圖所示,其連接電路非常簡單,若讀者想要其它連接方法的電路圖,可以參考筆者相關文章:〈 WT588D-U 語音模組(英文版)〉、〈 WT588D – 語音模組(中文版)〉等。

按:讀者可以到筆者Github頁面,本書的所有範例檔,都可以在那裡下載所需的檔案。對於音效範例檔部份,可以在此處下載所需要音效範例檔。

螢幕快照 2016-10-14 下午7.36.37

圖 1 WT588D-U串列電路圖

首先,請讀者依照下表進行 WT588D-U 電路組立,再進行程式攥寫的動作。

螢幕快照 2016-10-14 下午7.41.19

表 1 WT588D-U接腳表

完成 Arduino 開發板與 PlayStation 搖桿連接之後,我們將下表程式,請讀者鍵入 Sketch IDE 軟體(軟體下載),編譯完成後上傳到開發板進行測試。

將下表之 WT588D-U 語音模組測試程式一上載到 Arduino 開發板進行測試,可以聽到 WT588D-U 語音模組發出聲音,因為 WT588D-U 語音模組推動喇叭的電力並非很強大,若聲音太小時,讀者可以外接音源擴大機將聲音放大。

表 2 WT588D-U 語音模組測試程式一程式下載

透過外界參數使用WT588D-U 語音模組

由於上述程式已經可以完整驅動 WT588D-U 語音模組,對於如何燒錄 WAV 語音檔案到 WT588D-U 語音模組,請讀者參考《 WT588D 語音燒錄器操作手冊》一節,便可以輕易將 WAV 語音檔案,燒錄到 WT588D-U 語音模組。

由於我們一段語音只有燒錄一個對應的 WAV 語音檔案,再針對該段語音,透過串列通訊來驅動該段語音,我們必需改寫程式。將下列之 WT588D-U 語音模組測試程式二,鍵入 Arduino Sketch 之中,完成編譯後,上載到 Arduino 開發板進行測試,我們可以在 Arduino Sketch 監控畫面之中,透過輸入 0~9,聽到第 1 段到第 10 段的語音。

所以我們可以見到下圖所示,使用者可以在 Arduino Sketch 監控畫面之中,透過輸入 0~9,聽到第一段到第十段的語音。

表 3 WT588D-U 語音模組測試程式二 程式下載

螢幕快照 2016-10-14 下午7.48.11

圖 2 WT588D-U 語音模組測試程式二執行畫面

音效檔轉檔

我們發現 WT588D-U 語音模組需要某些格式的 WAV 音樂檔,但是我們找到的WAV 音樂檔無法符合 WT588D-U 語音模組的工具程式《 wt588d voicechip 》的規定,此時我們必須將檔WAV、Mp3、WMA…等音樂檔效檔進行轉檔。

筆者採用 FreeMake 公司的產品「 Free Audio Converter 」,進行轉檔,讀者可以到 FreeMake 頁面、或到筆者 Github 下載該軟體。

首先,讀者下載該軟體之後,用標準安裝方式,安裝好該軟體之後,如下圖所示,啟動該軟體。

螢幕快照 2016-10-14 下午7.48.15

圖 11 Free Audio Converter 啟始畫面

讀者可以透過檔案總管等軟體,將要轉檔的音效檔,拖拉到「 Free Audio Converter 」軟體畫面,如下圖所示,設定好要轉檔的音效檔。

螢幕快照 2016-10-14 下午7.48.19

圖 12 將要轉檔音效檔拖拉到畫面

如下圖所示讀者必需先透過行設定轉檔之取樣頻率、單或立體音。由於 WT588D-U 語音模組的工具程式「 wt588d voicechip 」的規定,注意!如果要將一般 MP3 檔案轉 WAV 檔時,記得先將檔案設為單音( MONO )、取樣率設定為 6KHz、8KHz、12KHz、16KHz、22KHz,取樣大小設定為 16 bit。以上取樣率請皆設為整數,如取樣率為 22.001KHz 時,則軟體將會警告無法正常讀入,請讀者多加注意。

螢幕快照 2016-10-14 下午7.48.21

圖 13 設定轉檔取樣頻率等資料

如下圖所示,讀者必需先透過行設定轉檔之取樣頻率、單或立體音設定與轉出路徑後,按下下圖所示之「轉換」鈕,開始進行檔案格式轉換。

螢幕快照 2016-10-14 下午7.48.24

圖 14 設定正確取樣資料與轉出路徑

若一切就緒,按下上圖所示之「轉換」鈕之後,開始進行檔案格式轉換,如下圖所示,則完成音效檔的格式轉換後,讀者就可以依附錄之 WT588D 之相關資料,將音效檔燒入「 WT588D-U 語音模組」,進行相關實驗了。

螢幕快照 2016-10-14 下午7.48.28

圖 15 音效檔格式轉換完成

本篇是「物聯網系列」的電腦音效子系列第 3 篇,主要告訴讀者,如何透過外加高階的語音處理晶片之模組,來產生語音、音效,對更高階的語音、音效等需求,可以一一解決。同時介紹物聯網產品開發時,面對更高階的需求,揚聲器已無法滿足需求,如何透過外加語音模組,使用高階的語音處理晶片之模組來產生語音、音效,對更高階的語音,則是一個更廣泛應用的開始。

在下期專欄中,會介紹如何將我們的音效檔、語音檔,進行轉檔,如何燒錄語音資料到 WT588D-U 語音模組使用,如此可以實作出更多物聯網的產品或實驗,

後續筆者還會繼續發表「物聯網系列」系列的文章,在未來我們可以創造出更優質,更具未來性的物聯網( Internet of Thing:IOT )產品開發相關技術。

敬請期待筆者更多的文章。

本文相關程式下載網址

 

分享到社群

曹永忠

曹永忠 (Yung-Chung Tsao) ,目前為自由作家暨專業Maker,專研於軟體工程、軟體開發與設計、物件導向程式設計,商品攝影及人像攝影。長期投入創客運動、資訊系統設計與開發、企業應用系統開發、軟體工程、新產品開發管理、商品及人像攝影等領域,並持續發表作品及相關專業著作。 Email:prgbruce@gmail.com Line ID:dr.brucetsao 作者網站:https://www.cs.pu.edu.tw/~yctsao/ 臉書社群(Arduino.Taiwan):https://www.facebook.com/groups/Arduino.Taiwan/ Github網站:https://github.com/brucetsao/ Youtube:https://www.youtube.com/channel/UCcYG2yY_u0m1aotcA4hrRgQ