音频应用

应用程序可通过 ALSA PCM 接口访问 V3S Codec。Buildroot 生成的 sysroot 已包含 ALSA 头文件和库。

编译示例

资料包中的 projects/audio-capture 示例将麦克风数据保存为 16 位单声道原始 PCM。

cd ~/v3s-workspace/projects/audio-capture
export BUILDROOT_OUTPUT="$HOME/v3s-workspace/buildroot-2023.02.3/output"
make

手工链接 ALSA 的核心命令为:

export PATH="$BUILDROOT_OUTPUT/host/bin:$PATH"
export SYSROOT="$BUILDROOT_OUTPUT/host/arm-buildroot-linux-gnueabihf/sysroot"

arm-linux-gnueabihf-gcc --sysroot="$SYSROOT" \
    -O2 -Wall -Wextra src/audio_capture.c -lasound -o audio_capture

运行

scp audio_capture root@<开发板IP>:/root/
ssh root@<开发板IP>

先打开麦克风采集通道:

amixer set Mic1 cap
amixer set 'Mic1 Boost' 4
amixer set 'ADC Gain' 3

录制 5 秒:

/root/audio_capture /tmp/capture.raw 5

按录制参数播放:

aplay -D hw:0,0 -f S16_LE -c 1 -r 8000 /tmp/capture.raw

PCM 参数

示例使用:

参数 数值
设备 hw:0,0
格式 Signed 16-bit Little Endian
通道 1
采样率 8000Hz

应用与 aplay/arecord 必须使用一致的格式、通道数和采样率。更改参数后应同时调整数据处理和播放命令。