借助包括 Jetson Nano、Xavier NX 和 AGX Xavier 在内的模型,NVIDIA 生产了一系列紧凑型计算机,能够在各种环境中高效地部署 AI 解决方案,以满足不同的需求和期望。
Jetson Nano 开发者套件是一款小巧而强大的计算机,它允许用户同时运行多个神经网络,用于图像分类、对象检测、分割和语音处理等应用——所有这些都在一个功耗低至 5 瓦的紧凑型设备中。Jetson Nano 开发套件配备了各种外围设备,包括 USB、以太网和 HDMI 连接。一种缺少但常见的外围设备是某种形式的音频输入或输出。如今,许多设备都配备了音频插孔,有些甚至带有板载麦克风。
有很多方法可以为 Jetson 设备添加音频功能。USB 扬声器和USB 麦克风是一种简单的解决方案,但它们确实占用了宝贵的 USB 插槽,这些插槽可能更适合用于键盘、蓝牙功能、Internet Keys 和其他配件。
在 Jetson 设备上,NVIDIA 通过 40 针 GPIO 扩展接头提供对 I2C、SPI 和 I2S 等一系列外围设备的访问。为了处理音频,我们最感兴趣的是 I2S 外设,它是一种用于连接数字音频设备的电气串行总线接口。我们不需要从头开始创建 I2S 功能,但了解常见通信协议的来龙去脉总是有用的,因此有关 I2S 的更多信息,请查看这篇精彩的文章。
Jetson 的 40 针扩展接头使我们能够轻松访问 I2S 外围设备,并且通过适当的附加电子设备,我们可以快速利用 I2S 功能。
来自协议开发商飞利浦半导体的 I2S 时序图。(照片:SmartCow)
我们选择的硬件
Adafruit I2S MEMS 麦克风分线板 (SPH0645LM4H)是一款紧凑型音频录制解决方案,输入频率范围为 50 Hz 至 15 kHz。该板没有模拟输出,而是纯数字输出。
许多微控制器通常配备模拟输入,因此添加模拟音频信号是一项简单的任务。对于更大更复杂的微控制器和微计算机,不能保证模拟输入。更复杂的是,众所周知,模拟麦克风系统会渗入噪音。通常可以找到 I2S 外设来代替模拟输入。
麦克风是一个单声道元素——您可以选择使用左声道或右声道。对于那些更喜欢/需要立体声的人来说,使用两个麦克风的简单配置可以很容易地实现,一个麦克风设置在左声道,第二个麦克风设置在右声道。值得一提的是,该设备是从设备,必须使用外部逻辑完全驱动。
Adafruit MAX98357 I2S D 类单声道放大器适用于具有数字音频功能的微控制器和微型计算机。它可以接收标准的 I2S 数字音频输入,并将其解码为模拟信号,然后直接放大到扬声器中。这款紧凑型分线板解决了数字音频输出的两个常见任务:I2S 数字音频转换 (DAC) 和放大。放大增益也可以通过添加精心挑选的电阻器或可变电阻器来修改。
输出是一个大约 300kHz 的方波 PWM,由扬声器线圈平均 - 听不到高频。事实上,它无需任何中间步骤即可直接驱动通用扬声器。
这款小型单声道放大器的重量超过了它的重量 - 能够为 4 欧姆阻抗扬声器提供高达 3.2 瓦的功率(5V 功率 @ 10% THD)。鉴于其 D 类架构,该放大器非常高效,可轻松在 2.7V 至 5.5V 直流电源下运行 - 非常适合便携式和电池供电项目。
设置 Jetson Nano
Jetson Nano 是这个项目的核心。设置 Jetson Nano 是一个有据可查的过程。您可以找到有关如何完成此任务的各种资源。
对于我们的任务,Jetson Nano 需要一根用于供电和编程的 USB 到 UART 电缆、一个键盘、鼠标和 HDMI 显示器。此外,我们需要将分线板连接到 Jetson Nano:
确保还将您的 MAX98357A 输出连接到扬声器。我们使用了 8 欧姆、15 瓦的扬声器和 Jetson Nano 提供的 3.3V 电源。
配置 I2S
Jetson Nano 与 SPH0645 和 MAX98375A + 扬声器(照片:SmartCow)
启动 Jetson Nano 后,在 Jetson 40 引脚 GPIO 扩展接头中配置 I2S 引脚是一个非常简单的过程:
1. 在开发者工具包上,打开命令行终端并运行以下命令:
2. Jetson 将启动并显示其主显示屏。在我们的例子中,我们想要手动配置 Jetson 40pin 接头和配置接头引脚。
3. 在“选择所需功能(针对引脚):”页面上,选择 i2s4 选项。
4. 之后,您将被带回主页并要求重新启动并保存您所做的重新配置,因此请继续并重新启动。
配置 Jetson 40pin 接头(照片:SmartCow)
手动配置头针(照片:SmartCow)
选择 i2s4 外设(照片:SmartCow)
保存引脚更改(照片:SmartCow)
保存并重启!(照片:SmartCow)
如果您需要有关配置 Jetson 引脚的进一步指导,请查看此链接。
重新启动并重新登录 Jetson Nano 后,您需要安装以安装任何更新,并下载几个库。
让我们初始化我们的麦克风设置:我们所要做的就是重置我们的声卡,设置我们的音量,并指定我们希望我们的音频信号使用的路径。
在设置采样率(48kHz)并指定所需的录音长度(本例中为 30 秒)后,我们终于可以开始录音了!
录制后你会注意到我们现在有一个名为“test.wav”的文件,这是录制的音频。我们还没有完成,我们还可以播放录制的音频。让我们重置声卡并设置音量。
现在剩下要做的就是输入命令来播放生成的音频文件。
一定要花点时间坐下来享受聆听演讲的乐趣。请随时查看我们的迷你演示。我们通过 SPH0645 麦克风录制了一首歌曲,并使用 MAX98357 播放。
结论
任务完成!我们已经成功地为 Jetson Nano 开发套件构建了一个端到端音频系统,该系统仅由一根 USB 电缆供电。接下来,您可能会包含一个机器学习模型并播放经过更改的录音版本。考虑从一种语言翻译成另一种语言,添加过滤和压缩等音频效果,或创建语音映射(谁不想听起来像达斯维德或摩根弗里曼?)
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !