树莓派 alsa 采集pcm
https://github.com/coderTong/raspberrypi_alsa_pcm
sudo apt-get install libasound2
sudo apt-get install libasound2-dev
sudo apt-get install libv4l-dev
sudo apt-get install libx264-dev
sudo apt-get install vim
sudo apt-get install build-essential
sudo apt install audacity
- 进入文件夹 cd ~
.asoundrc
是隐藏文件, 需要ls -a
才能看到
- 先备份原来的文件
cp .asoundrc .asoundrcOriginal20200714
- 编辑
.asoundrc
,将原来内容替换为如下
pcm.usb
{
type hw
card YouDeviceName
}
pcm.!default
{
type asym
playback.pcm
{
type plug
slave.pcm "dmix"
}
capture.pcm
{
type plug
slave.pcm "usb"
}
}
如上图, 红线标记处, 我的树莓派插了两个麦克风, 一个叫Device
, 一个叫Camera
, 我就可以随便选择一个.
- 如果我选择
Device
, 那配置文件就写成如下
pcm.usb
{
type hw
card Device
}
pcm.!default
{
type asym
playback.pcm
{
type plug
slave.pcm "dmix"
}
capture.pcm
{
type plug
slave.pcm "usb"
}
}
- 如果我选择
Camera
, 那配置文件就写成如下
pcm.usb
{
type hw
card Camera
}
pcm.!default
{
type asym
playback.pcm
{
type plug
slave.pcm "dmix"
}
capture.pcm
{
type plug
slave.pcm "usb"
}
}
- 设备配置
根据我们配置的asoundrc
我需要使用plughw:1,0
这种打开设备, 还是看图
- 如果我们配置文件配的是
Device
, 如图Device
是card 1
,device 0
, 所以代码中我就得写plughw:1,0
- 如果我们配置文件配的是
Camera
, 如图Camera
是card 3
,device 0
, 所以代码中我就得写plughw:3,0
- 采集参数
- 录音根据系统信号停止
ctrl + c
停止(stop)
没有gcc
的先装gcc
, 我的树莓派系统里自己有的哈
- 进入
loop.c
代码所在文件夹cd 代码文件夹
- 编译
gcc -Wall -o alsa loop.c -lasound
- 执行
./alsa
- 停止录音
ctrl + c
上面说了我使用的是
- 采样率:
44100
- 采样精度:
SND_PCM_FORMAT_S16_LE
- 声道:
2
所以我们ffmpeg
播放命令就是如下
- 进入pcm文件
- 执行命令
ffplay -ar 44100 -channels 2 -f s16le -i ./domanshowcom.pcm
如果录音声音小, 或者全是噪音什么的. 用alsamixer
调节一下麦克风
- 打开
alsamixer
软件
- 按F6选择麦克风设备
- 按F4对麦克风参数配置
进入此界面后呢, 就可以按↑↓键,调节麦克风 我是调节到麦克风最大强度100, 如果是0, 采集到的声音就会有问题
- alsamixer
- aplay -l
- arecord -l
- gcc -Wall -o alsa loop.c -lasound
- lsusb
- sudo apt install audacity
- audacity