一起玩XVF3800麦克风阵列(七)

疑问点?

在上一章节我们部署了 git 里面 vocalfusion-rpi-setup项目,我们有些稀里糊涂安装这个项目是对树梅派做了什么操作。我们可以看到 README 文件 描述如下:

1 、禁用内置音频(如果内置音频设备和外接设备同时启用,可能会发生音频输入输出的冲突。/这样可能导致设备无法正常工作)。

2、启用 I2S、I2C(100k 波特率)和 SPI 接口(启用音频I2S,上面已经禁用内部音频; I2C和SPI的通信接口打开)。

3 、更新树莓派并安装所需的软件包(音频处理:支持音频输入/输出、音频编辑和音频接口。硬件交互:确保与 XMOS 音频设备、USB 设备、I2C、SPI 等硬件接口的通信。开发和调试工具:如 numpy、matplotlib 用于数值计算、数据处理和可视化,libreadline 和 libncurses 用于增强命令行交互体验。系统配置:如 libudev 和 libevdev 用于处理设备事件和配置)。

对于 INT设备,它还将执行以下操作:

1 、安装设备树覆盖层。

2 、生成并安装特定于 XMOS 设备的 ALSA 配置。

3、创建脚本以在启动时设置 XMOS 设备(如有必要,设置 I2S、IO 扩展器、DAC 和 MCLK)。

4、生成并替换用户的 crontab,使其在启动时运行这些脚本。

总结就是:(例如带有 I2S 接口的 XMOS 设备)需要更多的硬件配置,脚本会安装设备树覆盖层、设置 ALSA 配置、配置 I2S、DAC 和时钟,并确保系统在启动时自动运行这些配置

对于 UA设备,它将执行以下操作:

添加 udev 规则 ,允许非特权用户访问 USB 接口(例如 USB 音频设备)主要涉及设置 USB 设备的访问权限,并不需要额外的硬件配置。脚本会通过 udev 规则来允许非特权用户访问 USB 接口)。

最后,设置过程将提示您重启 树莓派,这是为了确保所有接口都已启用

下载测试音频

https://standards.ieee.org/wp-content/uploads/import/download/269-2010_downloads.zip

IEEE 269-2010标准定义了一个关于声音信号 的测试规范,尤其是与音频设备的测试和校准相关。Male Mono 48 kHz 信号是该标准中一个特定的测试信号:

  • 男性单声道(Male Mono) :这是指测试信号的语音内容是由男性发出的,且是单声道而不是立体声。这意味着测试音频在整个播放过程中只有一个音频通道(其中也有女性的单声道音频)。

  • 48 kHz采样率:这是指音频信号的采样频率为48 kHz,意味着每秒钟有48,000次音频样本被采集。这在专业音频和视频领域中是一个常见的标准,特别是在视频编辑和广播中,因为它提供了比44.1 kHz更高的精度。

  • 标准化的音频测试信号:通常,类似的标准信号用于测试和校准音频设备(如麦克风、音频接口、扬声器等)的频率响应、失真、信噪比等特性。该测试信号通常是经过精确设计的,能够对设备进行全面的性能评估。

通过树莓派I2S与XVF3800开发板播放与录制音频

1、使用命令进行播放和路由

输入如下命令查看树莓派5当前的声卡设备:

复制代码
aplay -l

如上图所示,我们看到在执行git脚本的时候给我们在ALSA(Linux 内核里官方内置的音频子系统,负责所有声音的底层驱动和控制 )下构建了一个叫 XMOSDevice的音频设备。

进入测试解压后的音频文件夹 269-2010_downloads 目录,执行如下命令

复制代码
aplay -c 2 -f S32_LE -r 48000 -D default IEEE_269-2010_Female_Compressed_mono_48_kHz.wav

**有音频从喇叭输出了!!**这里直接用 default设备即可,测试的时候使用hw指定好像有问题,这里分析下为什么defalut设备就是XMOS的播放和录制:在Home目录下执行如下命令

复制代码
cat ~/.asoundrc

可以看到之前执行脚本的时候已经指定了默认的播放和路由设备为XMOS的I2S设备!

输入如下命令可以进行录音,其中10为录音时间10秒,最后test.wav为音频保存的名称,实测是可以录音的。

复制代码
arecord --mmap -c 2 -d 10 -f S32_LE -r 48000 -D default test.wav

2、使用Audacity进行播放和录音

在树梅派5的 菜单 -> Sound & Video -> Audacity 打开软件。

播放设备选择XMOS

录音设备也选择XMOS

录音通道我们这里选择单通道即可

配置好以后我们可以打开音频文件进行播放,如图所示我们打开标准测试音频并且进行播放

点击播放

如图所示想要路由则打开一个新的工程,点击如图所示开始路由,说话的时候是有波形的

相关推荐
Tezign_space20 分钟前
AI智能体赋能实践:从提示工程到上下文工程的架构演进
人工智能·架构·agentic ai·上下文工程·大模型智能体·长程任务·模型注意力预算
IT阳晨。35 分钟前
【STM32】智能台灯项目
stm32·单片机·嵌入式硬件
..过云雨36 分钟前
17-2.【Linux系统编程】线程同步详解 - 条件变量的理解及应用
linux·c++·人工智能·后端
kalvin_y_liu1 小时前
【2026年经济周期关键节点案例分析】
人工智能
Wokoo71 小时前
开发者AI大模型学习与接入指南
java·人工智能·学习·架构
骚戴1 小时前
2025 n1n.ai 全栈国产大模型接入列表与实测报告
人工智能·大模型·llm·api·ai gateway
南山乐只1 小时前
【Spring AI 开发指南】ChatClient 基础、原理与实战案例
人工智能·后端·spring ai
极客小云2 小时前
【突发公共事件智能分析新范式:基于PERSIA框架与大模型的知识图谱构建实践】
大数据·人工智能·知识图谱
炸膛坦客2 小时前
Cortex-M3-STM32F1 开发:(三十九)DMA详细介绍(3):相关寄存器、库函数介绍,配置步骤,以及内存到内存和内存到外设的实例
stm32·单片机·嵌入式硬件
Fuly10242 小时前
如何评估LLM和Agent质量
人工智能