【 E-Lock NXP LPC55 】 語音導覽播報使用說明

1. 前言

 本文主要介紹以 NXP LPC55S69 平台開發的 E-Lock 方案之語音導覽播報使用說明; 

  • 語音播報 IC (NSP481A) 簡介
  • 語音資料庫的建立與燒錄方式說明
  • 語音播報的 API 使用方式說明

 各項細節會在後續文章進行說明。

 

2. 語音播報 IC NSP481A 簡介

 

2_1. NSP481A IC 用途與特色         

本方案所使用的語音 IC 是新唐的 NSP481A 單聲道語音導覽播報 IC。 

NSP (Flash) 系列是一種先進的單軌語音播放芯片,內建可讀寫的Flash計憶體存放語音檔及新的演算法實現高音質的語音提示應用。

 

NSP481A NSP語音播報IC特色:

  • 外接MCU可以 I2C(非標準) 控制;
  • 在 8KHz 取樣率下語音長度最大 458 秒; Flash 版本可重複燒錄;
  • RAM 的大小 384 Bytes;
  • 工作電源範圍寬,0V-5.5V ;
  • 語音編輯簡單,添加語音快捷,把WAV調入就可以編譯燒錄;
  • 提供在線升級功能 ISP (In System Program) ,可用以更新語音內容
  • 休眠功耗小於1uA ;

         

2_2. NSP481A 傳輸協議

 BP00 (接收 clock) 及 BP01 (接收 data) 則是與 MCU 的 GPIO 相接,以近似 I2C 的通訊協議傳輸。

NSP IC 的通訊協議雖然近似 I2C,但每一個 Data 都不包含 Acknowledge Bit;即每一個 Data 都只用 8 個 Clock 取資料,不像標準的 I2C,還需用第 9 個Clock 判斷 Acknowledge。

 本方案是用 GPIO 模擬 NSP IC 的傳輸協議,所以得以控制 NSP481A。

 

 

3. 語音資料庫的建立

 3_1. 語音檔的生成

 網路上有一款的免費 TTS (Text-to-Speech) 的軟體 "Balabolka" 下載的網頁如下:         

http://www.cross-plus-a.com/balabolka.htm

 

 

 

安裝完並且執行之後,軟體的操作畫面如下,畫面中間藍色框線的部分為語系的設定,維持初始設定“Microsoft Hanhan Desktop [中文 (繁體,台灣)]”即可:


在底下紅色框線為欲轉換的語句文字輸入,我們在此處輸入“驗證開鎖信息”這幾個字之後,將畫面上方的播放鍵按下,
電腦就會將“驗證開鎖信息”這六個字轉成語音檔並且播放出來。

         

在“檔案”的選單中點選“儲存音檔”,設定存放路徑並給予儲存的檔名,即可將這句語音存檔







3_2. 語句資料庫 Index 的編排


我們先將所有的語音檔都依序建立在如下的表格中,目的是建立每一個語句所對應的 Index;

在將所有語句燒錄到NSP481A flash 時,也必須依照這個建表的 Index 依序編排存放,在使用時才能正確的提取並且播放出來。

 


播放某個語句時,調用播報語句的 API 並以 Index 值指向預先存放在NSP481A flash 中該語句的位置,就可以將該語句播放出來。



4. 語音檔的編譯、燒錄與測試
 

4_1. 燒錄所需的工具         

在燒錄本方案 E-Lock 的 NSP481A 的語音 IC 時,需要以下的工具:

         

4_1_1. NSP 1-1 Writer 語音 IC 燒錄器 ( USB dongle ) 

燒錄器 ( NSP 1-1 Writer USB dongle ) (新唐公司提供) 圖片如下,圖片右邊為 NSP Tboard EVB





4_1_2. Nuvoton NSP PlayList Editor Tool_V1.12.000 ( 語音 IC 燒錄工具 ),以下簡稱“NSP PlayList”
 

NSP Playlist是一種輕鬆創建在 NSP IC 上運行程序的工具,可進行語句的編輯及語音檔的燒錄。

用戶無需任何編程即可通過此 GUI 創建語音提示器的應用程序。

安裝完成並且開啟編輯燒錄工具後,直接點選下方紅框 “New Project”:

 

之後會跳出如下的設定框:




在完成上圖的設定之後,會直接出現以下的選項設定;由於本方案所採用播報 IC 的型號是 NSP481,
在“Chip”的下拉選單中選擇 NSP481 後,
輸入專案名稱,再按下 OK 鍵確認:



 之後會跳出以下的提示訊息,直接按 “Close”,關閉此訊息框即可:

 


 4_2. 語音資料庫的編排

 
 
4_2_1. 資源編輯器

 接下來會出現準備開始編輯語音檔的畫面:

 


 該畫面主要分兩塊區域,

 

 左邊的是“Resource Editor”資源編輯器,做為將語音檔加入此處中以做為編輯燒錄語音表列的資料庫;

 右邊則分為“Sound Editing”語音播放表列編輯以及“Demo Mode”演示模式:

 


 在資源編輯器空白處中,按下滑鼠右鍵,會出現以下圖片中的選單,

 

 點選該選單的“Add Resource …”之後,可將所有要寫入 IC 的語音檔都加入資源編輯區中:

 

 加入語音檔後資源編輯器畫面如下:

 

 4_2_2. 語音播放表列編輯 (Sound Editing)

 

“語音播放表列編輯”提供編輯語音檔燒錄順序並建立 Index 的功能;

 

在 “Sound Editing”這個 sheet 的頁面點擊 “Add PlayList”這個按鍵,從‘1’開始,依次增加“Index”值;總共要燒錄多少語音檔到 NSP IC,
則建立對應個數的 Index 值。


PS: 請注意,此 Index 值由 “1”(不是“0”) 開始 !

並且將左邊的“資源編輯”表中的語音檔依照欲燒錄的順序,依次將語音檔用滑鼠拖曳到對應的Index 值的右邊 (如下圖所示),
使拖曳過去的語音檔和 Index 值產生連結:




在整個語音燒錄檔的燒錄與 Index 都產生連結之後,就可以準備進行編譯及燒錄的工作。

PS: 演示模式非本次博文的主題,在此就不予以介紹。


4_3. 燒錄前的準備工作

 

燒錄器 ( NSP 1-1 Writer USB dongle ) 共四條接腳,依序是 :   
1. 
ICEDATA (DATA)
2. 
ICECLK (CLK)
3. 
/RESET
4. 
GND

 

NSP481A IC  Pin 腳定義如下:



將 Dongle 的第 2 腳 CLK 接到 PCBA NSP481A IC 的第 1 腳 BP00 ,及 第 1 腳 DATA 接到第 8 腳 BP01 即可完成燒錄前的準備工作。

      

 

4_4. 編譯語音檔及燒錄

 

完成燒錄前的準備工作之後,在“Project”的選單中點選“Build+Write”或按“F5”功能鍵,就可以進行語音檔的編譯及燒錄的工作:

 

最後出現如下圖的“Write OK!”,即代表編譯及燒錄成功 !!!

 

4_5. 語音測試

 

要進行燒錄後語音的測試,按下“Sound and IO Preview”按鍵,

 

會出現以下視窗:




按下“+”按鍵後,會增加一列設定列

 

在 “None” 的地方按下滑鼠右鍵,會出現一下拉選單,點選“PLAY”:


接著將 Number System: 的下拉選單的“Hexadecimal”改成 “Decimal”,

並且把 “Data Byte”欄位內的 “00,00”改成 “00,Index 值”(如 Index = 1, 則此內容值改為 “00,01”)

 

  

如果要將所有燒錄進去的語句都一一測試,則用“+”按鍵增加測試的語句數,並且設定“Data Byte”欄位的 Index 值,
測試語句時,用滑鼠點選要測試的那句話,使之變成藍底白字,再按 “->”按鍵,
即可播放。


 

5. 播報語音的 API 使用介紹

 

播報語句的 API 名稱為 “AudioNSP_PLAY”,所傳的引數為燒錄在 NSP IC flash 語句的 Index;

回傳值只有 “0”和 “1”,“0”代表與 NSP IC 通訊成功,“1”則代表通訊失敗。

uint8_t AudioNSP_PLAY(uint16_t PlayListIndex)

         

例如:

AudioNSP_PLAY(11);

 

則代表要播放 NSP IC 中預先燒錄的 Index = 11 的那句語音。



6. 參考資料

 

Nuvoton NSP481A 語音播報 IC datasheet :

https://www.nuvoton.com/export/resource-files/NSP_Flash_Data_Sheet_SC_A6.4.pdf

NXP 官網 :  https://www.nxp.com/NXP LPC55S69 Doc ( Datasheet、User manual )

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能