NXP RT106S -(4) 新增辨識語系

一.介紹

本文在介紹如何以 NXP sln_local2_iot_local_demo 專案新增範例中所沒有的語言步驟。

二.新增辨識語系

1.     創建 DSpotter 專案並儲存在對應的 MCUXPresso 專案中

 

2.     新增完成 WW Word Commands 勾選 MapID 並點選 Save Project,之後在 DSpotter 對應資料夾中會新增相關檔案

 

3.     手動創建 indexToCommands,下圖創建日文故尾碼帶 JP,此處依客戶需求決定

 

DSpotter 中的命令依照下圖方式宣告,

 

4.     indexCommands.h 中新增對應的命令

 

同樣在 char **get_cmd_strings(asr_language_t asrLang, asr_inference_t infCMDType)

程式中 switch (asrLang) 新增所需語言,如以下圖為例新增日文 ASR_JAPANESS

 

l   ASR_JAPANESE sln_local_voice.htypedef enum _asr_languages 新增

 

此處將對應的 Commands 新增在 IoT 應用中,在後續切換功能時需切換到對應的應用才可正確觸發

5.     sln_local_voice_model.s 中新增DSpotter 產生的 xxx_pack_withMapID.bin,宣告方式如下圖所示

 

6.     sln_local_voice_model.h 新增第 5 步驟新增的宣告,以此例來說即 my_lvc_jp_begin

 

7.     sln_local_voice.c 中新增步驟 3 新增 indexToCommand head file

 

initialize_asr(void) 選擇取代記憶體配置的區塊,此處選擇德語作為取代,也就是原本第三位置 lang[2],並在 install_language 中將 lang[2] 相關配置為新增的語言 my_lvc_jp_begin,最後一個參數為 Dspotter 中新增的 commads + 3 (base group + wake group + mapID),以新增的語言為例在 DSpotter 僅有二個 group WW CMD_1 (參考步驟 2)

install_inference_engine 調整 lang[2] 將其調整為 indexToCommand ww_jp (參考步驟 3)

 

此處需特別注意,如有使用中文,中文配置的記憶體區塊不可變動,原因在於中文聲音的模組叫其他語言大 (90*1024)

 

8.     main.c void appTask(void *arg) 裡配置 playback 語音,此處借用英文語音的 playback 做為回應,在此 function 中的判斷式 switch (taskNotification) case kWakeWordDetected: 新增如下所式

case kCommandGeneric: 中新增

 

9.     sln_shell.cstatic shell_status_t sln_multilingual_handler(shell_handle_t shellHandle, int32_t argc, char **argv) 新增

 

同樣在 445 for 迴圈處新增

 

此處新增用於在 Terminal 可以選擇安裝語言

Terminal 可透過 multilingual en jp zh 安裝英文、日文、中文語言,如下圖所示

 

至此替換新增語言步驟已完成。 

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

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論