ALSA命令

没有连接usb声卡时,树莓派只有缺省音频设备bcm2835 ALSA,连接usb声卡后可以看到USB Audio Device。ALSA是Linux下对声卡的管理命令,Jessie版本的系统已经内置了这些命令,主要包括:aplay , arecord, amixer,, alsamixer , alsaloop, alsactl, speaker-test等,可以用man查看详细的说明。

aplay -l  # 列出所有的声音播放设备

arecord -l  # 列出所有的声音采集设备

测试USB Audio Device

speaker-test -Dplughw:CARD=Device -c2 -twav

其中-D选项按设备名称plughw:CARD=Device选定USB声卡,-c2是左右双声道,-twav选定播放.wav声音文件,如果没有指定.wav声音文件名,则播放缺省的声音,会有左右声道交替出现的英语声音”Front Left”和”Front Right”.

我们也可以通过arecord进行音频采集,然后通过aplay进行采集音频的播放,具体命令如下:

录音:
arecord -Dplughw:CARD=Device -fcd -c2 -twav test.wav
或
arecord -Dplughw:CARD=Device -fS16_LE -r 16000 -c1 -d 5 test.wav
或
arecord --device=hw:1,0 -f S16_LE -r 44100 -c1 -d 5 test.wav

播放:
aplay -Dplughw:CARD=Device test.wav

-D选项按名称选定设备,-f选项设定音频格式,-c选项是声道数,-t选项是音频文件格式,详细选项设置内容可使用man查看。

对于音量的控制可以使用alsamixer命令操作,用上下左右就可以进行音量的操作,如果有多个声卡可以点击f6按钮选择相应的声卡进行操作!

有了声音的采集和播放,离用树莓派做个小黄人又近了一步。

设置默认声卡

$ vim ~/.asoundrc

pcm.!default {
         type asym
         playback.pcm {
             type plug
             slave.pcm "hw:1,0"
         }
         capture.pcm {
             type plug
             slave.pcm "hw:1,1"
         }
 }
ctl.!default {
         type hw
         card 1
 }

配置

使用 alsamixer 进行调整:

alsamixer

先重点设置 HeadphoneSpeakerPlayback 的音量,3D 也可以适当开一些。

之后按 F4 键切换到录音设置界面,把 Capture 也开大。

发表评论

电子邮件地址不会被公开。 必填项已用*标注