2006-10-15

想教NXT樂高機器人說中文嗎?

NXT唱歌

NXT內建的喇叭,不只能發出單純的音調(TONE)。

還可以載入聲音檔案,強調「真人發音」喔!

不過內建的聲音檔案是rso檔,需要使用公用程式Wav2Rso,就可以將常見的wav聲音檔轉換成NXT可以接受的rso檔案。

非常佩服John Hansen(BrickCC及NBC作者),在短時間就寫出許多公用程式。

(不知道這些RSO檔案標準格式說明在哪裡?)

實際操作

簡單的做了一些測試,真的可以讓NXT樂高機器人成為錄音相框,不斷重複用我的聲音說著:「你好棒!你好棒!」(這種睡眠學習法的自我催眠,讓我的自信大增!!

首先使用WINDOWS內建的錄音程式,錄下你想說的話,時間不要太長,否則檔案會太大(WAV檔案沒有壓縮)

接著用Wav2Rso程式進行轉換,第一步先指定工作目錄 (Directory),
再選擇WAV檔案 (Selecte files...)



第二步:轉換取樣選項(Resample)可以選擇Linear 或是 ZOH ,這種壓縮方式比較不失真。(None則不壓縮)再按下Convert按鍵



轉換成功,可以看到工作目錄中新增加一個RSO檔案。

(OK,Cancle,Help三個按鈕好像都沒用)



接著將這個RSO檔案移動到NXT-G的聲音檔案目錄 C:\Program Files\Lego Software\Lego MINDSTORMS Edu NXT\engine\Sounds

(你也可以直接在這個目錄下進行轉換作業,就不需要移動檔案了)

執行NXT-G,撰寫程式,使用SOUND BLOCK發出聲音,下載並且執行。(或是直接下載聲音檔到NXT,並且直接在NXT執行聲音檔)

聽到你的錄音了嗎?讓你的孩子也試試看!

實作心得

這是一個很有趣的遊戲,孩子聽到的不再是「Hello! Good Morning!」而是「早安!大家好!你假爸阿沒!」

小朋友一定很高興聽到機器人用中文問候。(雖然用機器人學習英語發音也不錯喔!)

所以只要能夠轉檔,理論上也可以播放MP3音樂。

當然前提是記憶體空間要大,很遺憾的,這是痴人說夢,更別提聲音檔有多佔空間。

下面是我們的小小測試:我們錄製了兩個WAV檔案,

1. 早安,大家好 檔案長度2.5秒(WAV 53.7KB,Linear-->RSO 20KB,壓縮率約37%)

2. 大家好! 檔案長度0.9秒(WAV 20KB,Linear-->RSO 8KB,壓縮率約40%)

我的NXT大約剩下56.1KB,所以最大只能放置一個7秒的壓縮聲音檔。

至於NXT為什麼記憶體只剩56.1KB,我們會另外撰文說明

經過這次測試,孩子對於可以錄製聲音,並且透過NXT機器人發聲,都感到非常有趣。雖然這不是NXT主要功能,但是帶給大家許多歡樂。

如果你要試試看,有兩點建議:

1. 不要用中文檔名:雖然NXT-G可以看得到中文檔名,但是傳輸到NXT後,會變成亂碼檔名,可以儲存,但是可能造成不正常執行。

2. 錄音時不要錄製太長的聲音,控制在5秒以內,避免因為NXT記憶體不足,無法下載及執行程式。



沒有留言:

張貼留言

探奇歡迎大家留言討論!謝謝分享你的意見。