本文目标:
tools/audio/serial_capture_gui.py 在 PC 端抓取录音的音频数据并保存文件。安装 Python 依赖:
pip3 install pyserial numpy matplotlib
如果 tkinter 缺失(部分 Linux 发行版会缺):
sudo apt-get install python3-tk
serial_capture_gui.py 走的是 USB CDC 协议录音链路,固件需支持 CDC 录音协议(开始/停止录音命令、音频帧、MD5帧)。
修改配置文件 ./apps/arcs-mini/prj.conf ,添加如下配置:
CONFIG_APP_USB_CDC_ENABLE=y
参考文档《Arcs-Mini 开发环境搭建指南》,重新编译固件并烧录。
在工程根目录执行:
python3 tools/audio/serial_capture_gui.py
或先进入目录再运行:
cd tools/audio
python3 serial_capture_gui.py
/dev/ttyACM0、/dev/ttyACM1COM3、COM4921600(若连不上可试 115200)16000161(如固件发送多通道,再改对应值)xxx.pcm注意:该工具保存的是 PCM 原始数据。即使文件名写成
.wav,内容也不是标准 WAV 头格式。
MD5校验通过。


用 ./tools/tone_tool/cmd/ffmpeg-64 转换(16k/16bit/单声道示例):
ffmpeg-64 -f s16le -ar 16000 -ac 1 -i output.pcm output.wav
如果是多通道,把 -ac 1 改成你的实际通道数(例如 -ac 4)。

配置文件 ./apps/arcs-mini/prj.conf 增加如下配置:
CONFIG_APP_USB_AUDIO_ENABLE=y
./src/middleware/usb/tusb_config.h 文件做出如下修改:

audio_play.c 增加镜像上报代码./src/middleware/audio/audio_play.c 在 lisa_audio_play_write(...) 返回后,增加以下代码:
if (data != NULL && size > 0) {
uint32_t sample_count = (uint32_t)ret;
extern int app_usb_audio_write(void *data, uint32_t sample, uint32_t channel, uint8_t bit);
app_usb_audio_write(data, sample_count, 1, 16);
}

