-
第1步:
设定Raspberry Pi和下载软件
-
第2步:
如果你的Raspberry Pi还没准备好运行,可以参考Raspberry Pi网站提供的教学:http://www.raspberrypi.org/help/noobs-setup/
确认Raspberry Pi有网络连线。如果没有现成的以太网连接,可以用USB Wi-Fi接收器来连线网络。
从指令行执行以下两个指令来更新Raspberry Pi的软件:
从指令行执行以下两个指令来更新Raspberry Pi的软件:
1.
2.sudo apt-get update
3.
4.sudo apt-get upgrade
5.
这个程序可能需要一些时间。
用以下的指令安装这个项目需要的软件:
1.
2.sudo apt-get install python-pip mplayer flac python2.7-dev libcurl4-gnutls-dev
3.
4.sudo pip install requests pycurl
5.
注:这个项目在截稿前经过最新版Raspbian的测试。请注意随着软件的更新产生的变化。如果要比较你的版本和我们测试的版本,可以从指令行:
1.pi@raspberrypi ~ $ uname -a
2.
3.Linux raspberrypi 3.12.22+ #691 PREEMPT Wed Jun 18 18:29:58
BST 2014 armv6l GNU/Linux执行 uname -a。
4.
-
第3步:
设定及测试耳机
-
第4步:
-
第5步:
插入USB耳机(必要时可使用供电USB集线器)。
执行以下的指令,它们会列出你的音效装置:
1.
2.cat /proc/asound/cards
3.
4.cat /proc/asound/modules
5.
这时候应该可以看到罗技耳机被列为card 1。第二个指令会显示card 0(预设输出)的驱动程序是snd_bcm2835,也就是Raspberry Pi的类比音效输出。card 1(我们的罗技耳机)的驱动程序是snd_usb_audio。如果没有看到耳机被列出来,可以尝试重新启动:
1.
2.sudo reboot
3.
为了把USB耳机设定成预设的音效输入和输出,我们需要更新ALSA配置文件。用Nano文字编辑器开启:
1.
2.sudo nano /etc/modprobe.d/alsa-base.conf
3.
把这行:
1.
2.options snd-usb-audio index=-2
3.
改成这样:
1.
2.options snd-usb-audio index=0
3.
用Ctrl-X和输入y来储存并关闭文件,接着用这个指令来重新启动Raspberry Pi:
1.
2.sudo reboot
3.
重新启动后,音效系统会重新载入,所以再次执行前面的
1.
2.cat/proc/asound/cards
3.
4.cat/proc/asound/modules
5.
指令后,应该就会看到USB耳机列为预设 的输入/输出装置(card 0),如上图所示。
用麦克风录5秒钟的片段来测试:
1.
2.arecord -d 5 -r 48000 make.wav
3.
注:如果看到写着「overrun!!!」的错误提示,可以安心把它忽略。
用耳机的扬声器播放:
1.
2.aplay make.wav
3.
如果声音有点粗糙也不用担心,因为在下一步会用更高的品质来录制。
若需要调整音量,可以使用内建公用程序alsamixer。这个工具可以处理音效的输入和输出音量:
1.
2.sudo alsamixer
3.
-
第6步:
下载并撷取源代码
要用Raspberry Pi实现语音识别功能有几种方法,不过我认为这里最适合的方案是借助Google的语音转文字服务。这个服务让我们上传录好的音频文件,然后转换成文字(之后我们会用来翻译)。
项目源代码会帮你处理这个部分。执行以下的指令来下载和撷取文件:
1.
2.wget https://github.com/dconroy/PiTranslate/archive/master.zip
3.
4.unzip master.zip
5.
6.cd PiTranslate-master
7.
注:里面提供Shell和Python程序码。
将语音转文字程序码转换为可执行文件:
1.
2.sudo chmod +x stt.sh
3.
-
第7步:
设定Google语音识别API
-
第8步:
要使用Google的语音识别API,必须先注册。登录你的Google帐号并依照以下的步骤进行。
前往https://cloud.google.com/console并点选「Create Project」。取一个「我的宇宙翻译机」之类的名称,然后点选「Create」。(Google会产生一个随机的项目ID,所以这一ID不用理他。)
在Google的云盘建立你的新项目时,开启新的浏览器分页来加入Chromium-dev Google网上论坛,这样可以存取语音API: https://groups.google.com/a/chromium.org/forum/?fromgroups#!forum/chromium-dev
回到Google项目分页。如果完成建立项目了,就会看到项目控制面板。点选左边的「APIS & AUTH」并点选「APIs」。接着往下滚动并开启语音API。
一样在项目控制面板,点选左边「APIS & AUTH」下方的「Credentials」,接着点选「Create new Key(建立新密钥)」按钮,并选取「Browser Key(浏览器密钥)」。把允许的访客来源文字栏位留白,并点选「Create」。新产生的API密钥接着会显示在控制面板上。
在Raspberry Pi上开启 text-to-translate.py文件并找到下面的代码:
1.
2.key = 'xxx'
3.
用控制面板上的密钥取代xxx。为了让这个步骤更容易,可以启动Raspberry Pi的桌面环境(用startx),用网络浏览器Midori登录Google帐号,然后把密钥复制粘贴到文件里。也可以用电脑通过SFTP变更文件。
注:Google的语音API虽然是免费的,它每天只接受50个要求。
-
第9步:
设定微软翻译API
-
第10步:
Google也有翻译API,但我们的项目会用微软提供的服务,因为是免费的。用你的微软帐号登录Azure Marketplace: https://datamarket.azure.com/developer/applications/
点选「注册」按钮来建立新的应用程序。
填写用户ID、应用程序名称和重新导向URI(任何URL都行)。 点选「建立」。
接下来和Google密钥的做法很像,在PiTranslate.py正确的单引号之间填上用户ID和用户端密码并储存:
1.
2.args = {
3.
4. 'client_id': '',#your client id here
5.
6. 'client_secret': '',#your azure secret here
7.
8. 'scope': 'http://api.microsofttranslator.com',
9.
10. 'grant_type': 'client_credentials'
11.
12. }
13.
-
第11步:
使用宇宙翻译机
-
第12步:
现在API密钥已经建立完成,也输了代码,就可以来测试宇宙翻译机了。戴上耳机后,执行:
1.
2. ./stt.sh
3.
对耳机麦克风说话,说完之后按Ctrl-C
接着可以从耳机听到翻译,还会在指令行看到回馈。
预设设定会把英语翻译成西班牙语。可以在text-to-translate.py 的最后一行轻松变更来源和目标语言,剩下的工作就交给程序代码了。这样的宇宙翻译机支援数以千计的语言交互翻译,你可以尽情尝试!