Skip to main content

[LEGO] 我的 NXT 會講話

要讓 NXT 講話其實非常的容易,只需要下載一個 WavToRso轉檔程式就可以,接著使用電腦中本來就有的錄音程式,這樣就可以讓 NXT 講話囉!

測試環境:Windows
  1. 下載並解壓 Wav2Rso.exe ,這是一個 Wav to rso的轉檔程式。如果要感謝作者的話,下載後記得點選網頁最下方的 google ads 。

  2. 插上麥克風,打開「音量控制」點選下拉式功能表的 選項 / 內容 選擇錄音,確定麥克風是打開的狀態:

  3. 開始 / 程式集 / 附屬應用程式 / 娛樂 / 錄音機,錄製你想要講的話。在這邊有個重點,由於 NXT 的 memory 很小,聲音檔要儘量精簡,但是人並不是完美的能錄製到聲音前面與後面都沒有空隙,所以在你錄好一段聲音檔後,要記得使用 編輯 / 刪除目前位置前面(後面)之內容,將空白的聲波部份裁切掉!這樣還可以省下好幾 Kb 喔!

  4. 打開 wav2rso.exe (Greenware,免安裝):

    • Dictory : 要輸出音檔的檔案夾位置

    • Select Files : 要轉檔的Wav

    • Convert: 轉檔鍵,記得轉檔是點選「Convert」而不是「OK」喔!

    • Resample: 轉檔壓縮比,一般選取 Sinc 96% 就很夠用了

    • Rate: 聲波取樣頻率 (Sampling Rate),越低檔案會越小,但是相對怪音會很多

  5. 將輸出的 .rso檔放到 :C:\Program Files\LEGO Software\LEGO MINDSTORMS Edu NXT\engine\Sounds 內就可以在 NXT-G 中選到它囉!

想要更完美音質的話,請參考其他錄音與音效編輯程式喔!

Comments

Popular posts from this blog

[Swift3] weak 與 unowned 關鍵字

雖然在 Swift 中看起來"很像"是不需要煩惱內存管理的問題,不過實際上它還是遵循著自動引用計數 (ARC) 的規則,當一個物件沒有被其他對象引用時會自動被銷毀,如果三魂七魄沒有完全回位的話,就會有個靈體留在現世的空間裡,最經典的範例如下: 閉包(Closure)引用 classClassA { typealias Complete = ()->() var name : String var onComplete : Complete? init(_ name: String){ self.name = name print("Hello I am \(self.name)") onComplete = { print("\(self.name): onComplete!") // --> 閉包引用 self, 計數 + 1 } } deinit { print("deinit: \(self.name)") } } var a : ClassA? = ClassA("A") // --> 引用計數 + 1 a = nil // 2-1 = 1 還剩下 1 所以沒辦法銷毀 ---output------- Hello I am A 由於這邊的 onComplete 宣告為 Optional, 正確的做法要連同 onComplete 一起刪除才可以被回收,若不是 Optional 則會進入無法回收狀態: var b : ClassA? = ClassA("B") b?.onComplete = nil // --> 還好是 Optional 可以設成 nil 計數 - 1 b = nil // 計數 = 0 所以被回收 ---output------- Hello I am B deinit: B 但是做人不需要煩惱太多,這時候就出動 unowned 關鍵字讓物件可以順利被回收: onComplete = { [unowned self] in print...

[書評] 拖延心理學:為什麼我老是愛拖延?是與生俱來的壞習慣,還是身不由己?

作者: Jane B. Burka & Lenora M . Yuen 推薦指數 ★★★★★ 有時候,只是想了解事情發生原因而不是尋求解法 在這邊不是要講這本書的內容,而是想聊它對我的影響。