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(一)/
留言
張貼留言