手把手教你用樹莓派打造宇宙翻譯機【轉譯】手工電子DIY教程
宇宙翻譯機非常適合在週末時製作,它可以教你如何運用一些非常強大的工具來打造一些可立即使用的東西。喔,還有,它也超好玩的。【轉譯】
主要材料:
Raspberry Pi單板電腦 | SD卡,4GB以上 |
USB耳機 | 電池組 |
無線USB插座(非必要) |
所需工具:
USB鍵盤 | HDMI顯示器:用於跟Raspberry Pi交互。 |
能上網的電腦:用來建立免費線上帳號與宇宙翻譯機交互。 |
製作步驟:
第1步:
設定Raspberry Pi和下載軟件
第2步:
如果你的Raspberry Pi還沒準備好運行,可以參考Raspberry Pi網站提供的教學:
確認Raspberry Pi有網絡連線。如果沒有現成的以太網連接,可以用USB Wi-Fi接收器來連線網絡。
從指令行執行以下兩個指令來更新Raspberry Pi的軟件:
從指令行執行以下兩個指令來更新Raspberry Pi的軟件:
1.
apt-get update
3.
apt-get upgrade
5.
這個程序可能需要一些時間。
用以下的指令安裝這個項目需要的軟件:
1.
apt-get install python-pip mplayer flac python2.7-dev libcurl4-gnutls-dev
3.
pip install requests pycurl
5.
注:這個項目在截稿前經過最新版Raspbian的測試。請注意隨着軟件的更新產生的變化。如果要比較你的版本和我們測試的版本,可以從指令行:
@raspberrypi ~ $ uname -a
2.
x 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.
/proc/asound/cards
3.
/proc/asound/modules
5.
這時候應該可以看到羅技耳機被列為card 1。第二個指令會顯示card 0(預設輸出)的驅動程序是snd_bcm2835,也就是Raspberry Pi的類比音效輸出。card 1(我們的羅技耳機)的驅動程序是snd_usb_audio。如果沒有看到耳機被列出來,可以嘗試重新啟動:
1.
reboot
3.
為了把USB耳機設定成預設的音效輸入和輸出,我們需要更新ALSA配置文件。用Nano文字編輯器開啟:
1.
nano /etc/modprobe.d/
3.
把這行:
1.
ons snd-usb-audio index=-2
3.
改成這樣:
1.
ons snd-usb-audio index=0
3.
用Ctrl-X和輸入y來儲存並關閉文件,接着用這個指令來重新啟動Raspberry Pi:
1.
reboot
3.
重新啟動後,音效系統會重新載入,所以再次執行前面的
1.
3.
5.
指令後,應該就會看到USB耳機列為預設 的輸入/輸出裝置(card 0),如上圖所示。
用麥克風錄5秒鐘的片段來測試:
1.
ord -d 5 -r 48000
3.
注:如果看到寫着「overrun!!!」的錯誤提示,可以安心把它忽略。
用耳機的揚聲器播放:
1.
y
3.
如果聲音有點粗糙也不用擔心,因為在下一步會用更高的品質來錄製。
若需要調整音量,可以使用內建公用程序alsamixer。這個工具可以處理音效的輸入和輸出音量:
1.
alsamixer
3.
第6步:
下載並擷取源代碼
要用Raspberry Pi實現語音識別功能有幾種方法,不過我認為這裏最適合的方案是藉助Google的語音轉文字服務。這個服務讓我們上傳錄好的音頻文件,然後轉換成文字(之後我們會用來翻譯)。
項目源代碼會幫你處理這個部分。執行以下的指令來下載和擷取文件:
1.
3.
p
5.
PiTranslate-master
7.
注:裏面提供Shell和Python程序碼。
將語音轉文字程序碼轉換為可執行文件:
1.
chmod +x
3.
第7步:
設定Google語音識別API
第8步:
要使用Google的語音識別API,必須先註冊。登錄你的Google帳號並依照以下的步驟進行。
前往並點選「Create Project」。取一個「我的宇宙翻譯機」之類的名稱,然後點選「Create」。(Google會產生一個隨機的項目ID,所以這一ID不用理他。)
在Google的雲盤建立你的新項目時,開啟新的瀏覽器分頁來加入Chromium-dev Google網上論壇,這樣可以存取語音API: #!forum/chromium-dev
回到Google項目分頁。如果完成建立項目了,就會看到項目控制面板。點選左邊的「APIS & AUTH」並點選「APIs」。接着往下滾動並開啟語音API。
一樣在項目控制面板,點選左邊「APIS & AUTH」下方的「Credentials」,接着點選「Create new Key(建立新密鑰)」按鈕,並選取「Browser Key(瀏覽器密鑰)」。把允許的訪客來源文字欄位留白,並點選「Create」。新產生的API密鑰接着會顯示在控制面板上。
在Raspberry Pi上開啟 文件並找到下面的代碼:
1.
= 'xxx'
3.
用控制面板上的密鑰取代xxx。為了讓這個步驟更容易,可以啟動Raspberry Pi的桌面環境(用startx),用網絡瀏覽器Midori登錄Google帳號,然後把密鑰複製粘貼到文件裏。也可以用電腦通過SFTP變更文件。
注:Google的語音API雖然是免費的,它每天只接受50個要求。
第9步:
設定微軟翻譯API
第10步:
Google也有翻譯API,但我們的項目會用微軟提供的服務,因為是免費的。用你的微軟帳號登錄Azure Marketplace:
點選「註冊」按鈕來建立新的應用程序。
填寫用户ID、應用程序名稱和重新導向URI(任何URL都行)。 點選「建立」。
接下來和Google密鑰的做法很像,在正確的單引號之間填上用户ID和用户端密碼並儲存:
1.
= {
3.
4. 'client_id': '',#your client id here
5.
6. 'client_secret': '',#your azure secret here
7.
8. 'scope': '',
9.
10. 'grant_type': 'client_credentials'
11.
12. }
13.
第11步:
使用宇宙翻譯機
第12步:
現在API密鑰已經建立完成,也輸了代碼,就可以來測試宇宙翻譯機了。戴上耳機後,執行:
1.
2. ./
3.
對耳機麥克風説話,説完之後按Ctrl-C
接着可以從耳機聽到翻譯,還會在指令行看到回饋。
預設設定會把英語翻譯成西班牙語。可以在 的最後一行輕鬆變更來源和目標語言,剩下的工作就交給程序代碼了。這樣的宇宙翻譯機支援數以千計的語言交互翻譯,你可以盡情嘗試!
小貼士:
原址: