最近做项目有一个需求,就是对ubuntu下的ALSA声卡进行使用,在摸索了一大圈之后,将所得记录下来,以备后期查看。
首先先插上声卡设备
以下所用的声卡设备皆为3.5mm的耳机测试。
需要使用usb转3.5接口的转接线,下图使用的是绿联的设备。
1. 查看声卡设备
aplay -l //列出所有的声卡设备
由上图可知,在lubuntu系统之下,card2是声卡设备
arecord -l //列出录音设备
ll /proc/asound/card2 //查看card2的信息
由上图可知,stream0存放是声卡的信息,因此,我们可以查看一下声卡所支持的格式,比如通道(单声道还是双声道)、支持的采样率等。使用如下指令查看:
cat /proc/asound/card2/stream0
由上图可知,Endpoint: 1 out是输出,即通常所说的扬声器;Endpoint: 2 IN是输入,即通常所说的麦克风。
麦克风支持的是Chanmels为1,即表示为单声道,支持的采样率Rates为48KHz和44.1KHz,位宽是16bit。知道了这些参数,对我们后面的声卡开发很重要。
2. 配置声卡
在我们正式使用声卡之前,先配置一下声卡的参数,因为如果不配置的话,可能不能正确的使用声卡。
终端输入:
pavucontrol //调用自带的声卡软件
启动软件之后,先配置输出设备
可以戴上耳机调试好声音大小
配置输入设备,选择Microphone,拖动下面的滑条测试声音大小。
3. 录音以及播放
arecord -D "plughw:2,0" -f S16_LE -r 44100 -d 5 -t wav file.wav
参数说明:
指令 | 参数 | 说明 |
---|---|---|
-D | plughw:2,0 | 选择设备,2代表card2,0代表subdevice |
-r | 44100 | 采样率 |
-f | S16_LE | 录音格式,16bit位宽 |
-d | 5 | 录制5秒 |
-t | wav | 输出音频格式为wav |
file.wav | 保存的音频名称 |
录制完成之后,可以使用以下指令播放:
aplay file.wav //播放音频
注意:声卡设备号的获取,可以查看第一节的叙述
在最后在说一句:知道如何获取与应用声卡设备之后,我们可以使用python的PyAudio模块进行编程使用了。或者可以采取Rtmp推流的方式将声音与视频同时推送出去了。