coderTong / raspberrypi_alsa_pcm

树莓派 alsa 采集pcm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

raspberrypi_alsa_pcm

树莓派 alsa 采集pcm

树莓派alsa采集pcm小计

目录

  1. 项目地址

  2. 软件和库安装

    1. 库安装
    2. 安装 audacity软件
  3. 编辑 ~/.asoundrc

    1. 编辑 asoundrc文件
    2. 其中YouDeviceName具体写什么?
  4. 代码注意点

  5. 编译生成可执行文件

  6. ffmpeg 或者 audacity 播放pcm

    1. 6.1 ffmpeg播放
    2. 6.2 audacity播放
  7. alsamixer麦克风相关配置

  8. 相关命令

  9. 参考资料

alsa001

1. 项目地址

https://github.com/coderTong/raspberrypi_alsa_pcm

alsa002

2. 软件和库安装

alsa002a

2.1 库安装

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

alsa002b

2.2 安装 audacity软件

sudo  apt  install  audacity

alsa003

3. 编辑 ~/.asoundrc

alsa003a

3.1 编辑 asoundrc文件

  1. 进入文件夹 cd ~

.asoundrc是隐藏文件, 需要ls -a 才能看到

  1. 先备份原来的文件
cp .asoundrc .asoundrcOriginal20200714
  1. 编辑.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"
    }
}

alsa003b

3.2 其中YouDeviceName具体写什么?

  1. Terminal 敲密令arecord -l pi010

如上图, 红线标记处, 我的树莓派插了两个麦克风, 一个叫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"
    }
}

alsa004

4. 代码注意点

  1. 设备配置

pi011

根据我们配置的asoundrc我需要使用plughw:1,0这种打开设备, 还是看图

pi012

  • 如果我们配置文件配的是Device, 如图Devicecard 1, device 0, 所以代码中我就得写plughw:1,0
  • 如果我们配置文件配的是Camera, 如图Cameracard 3, device 0, 所以代码中我就得写plughw:3,0
  1. 采集参数

pi013 pi014

  1. 录音根据系统信号停止ctrl + c停止(stop)

pi015 pi016 pi017

alsa005

5. 编译生成可执行文件

没有gcc的先装gcc, 我的树莓派系统里自己有的哈

  1. 进入loop.c代码所在文件夹 cd 代码文件夹
  2. 编译gcc -Wall -o alsa loop.c -lasound
  3. 执行./alsa
  4. 停止录音ctrl + c

alsa006

6. ffmpeg 或者 audacity 播放pcm

alsa006a

6.1 ffmpeg播放

上面说了我使用的是

  • 采样率: 44100
  • 采样精度: SND_PCM_FORMAT_S16_LE
  • 声道: 2

所以我们ffmpeg播放命令就是如下

  1. 进入pcm文件
  2. 执行命令ffplay -ar 44100 -channels 2 -f s16le -i ./domanshowcom.pcm

pi021

alsa006b

6.2 audacity播放

  1. 打开audacity软件 pi018

  2. audacity软件打开pcm文件 pi020

alsa007

7. alsamixer麦克风相关配置

如果录音声音小, 或者全是噪音什么的. 用alsamixer调节一下麦克风

  1. 打开alsamixer软件

pi022 pi023

  1. 按F6选择麦克风设备

pi024 pi025

  1. 按F4对麦克风参数配置

进入此界面后呢, 就可以按↑↓键,调节麦克风 我是调节到麦克风最大强度100, 如果是0, 采集到的声音就会有问题 pi026

alsa008

8. 相关命令

  • alsamixer
  • aplay -l
  • arecord -l
  • gcc -Wall -o alsa loop.c -lasound
  • lsusb
  • sudo apt install audacity
  • audacity

alsa009

9. 参考资料

About

树莓派 alsa 采集pcm

License:Apache License 2.0


Languages

Language:C 100.0%