本帖最后由 jerryxiaodoudou 于 2011-2-8 00:20 编辑
想教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记忆体不足,无法下载及执行程式。
|