IoT|硬體|樹莓派|外接麥克風及喇叭設置

輸出喇叭與麥克風設定

[軟體安裝]

安裝 ALSA (Advanced Linux Sound Architecture) 的音效驅動程式
sudo apt-get install alsa-base alsa-utils

[接線]

喇叭接樹莓派自身3.5mm音源孔
音效卡接 USB,外接麥克風的3.5mm接頭插到音效卡上 

以樹莓派內建3.5mm音源孔作為聲音輸出
sudo raspi-config
→ Advanced options → Audio → 選擇Force 3.5mm ('headphone') jack


檢查是否有抓到音效卡
lsusb



樹莓派桌面進行如下設定,並分別將 BCM2835_ALSA 及 USB PnP Sounde device 分別設為 default PCM 及default Microphone。

上述設定完成後請將樹莓派重新開機

測試喇叭是否正確播放聲音測試喇吧是否有聲音,測試指令,它會依左聲道、右聲道的順序反覆播放,可以按「Ctrl+C」來停止
speaker-test -c 2 -t wav -D hw:0,0


[細部設定]

若沒有聲音,確認喇叭是否接在內建音效卡為0的位置上,必且將聲音調整到最大
alsamixer
#card 0 是內建的 BCM2835 晶片
#card 1 就是外接的 USB 音效卡



調整麥克風,Speaker 表示喇叭音量、Mic 表示麥克風直接輸出到喇叭的音量、Auto Gain Control 表示自動調整麥克風增益
F6->選則 sound card
按 esc 離開


將剛剛編號0號及1號音效卡設定儲存下來
sudo alsactl store 0
sudo alsactl store 1

列出樹莓派內建預設的音效卡(編號0)內容
amixer --card 0 contents

列出樹莓派內建預設的音效卡(編號1)內容
amixer --card 1 contents

不一定要透過圖形化的 alsamixer 來調整音量,亦可透過指令 amixer 來設定,可方便在程式中動態調整。
把預設音效卡的音量設為最大400
amixer -c 0 cset numid=1,iface=MIXER,name='PCM Playback Volume' 400

把USB mic.的錄音音量設為最大16
amixer -c 1 cset numid=3,iface=MIXER,name='Mic Capture Volume' 16

[錄音/播放]

arecord 是錄音的 command,馬上錄個音試試:(說明請見 man record)
aplay 是播放音效檔的 command

試著錄聲音10 秒到檔案中 test.wav(arecord 命令參考,這裡假設只有一張外接的音效卡)
#錄音時請務必靠近麥克風
arecord -D plughw:1 --duration=10 -f dat -vv test.wav
aplay test.wav

試著播放聲音,聽一聽是否聲音清晰且沒雜音
arecord -D plughw:1 -f cd -vv ~/rectest.wav
aplay ~/rectest.wav

預設會用編號0內建的音效卡,如果要用編號1的 USB音效卡來播(須將喇叭改接到音效卡聲音輸出孔),則要改為
aplay -D plughw:1 ~/rectest.wav


[Reference]

https://chtseng.wordpress.com/2016/06/22/即時口譯機器人diy(一)/

留言

這個網誌中的熱門文章

成長|語文|學習-英文 持續更新!

IoT|硬體|通訊|Arduino 使用 SoftwareSerial Library 與電腦通訊