录音工具
资源
概述
录音工具由瑞昱(Realtek)设计,用于配置 Ameba 芯片的音频参数、从 Ameba 芯片捕获音频数据并将其录制为 PCM/WAV 文件。
录音工具的图形用户界面(GUI)如下图所示。

运行环境
硬件环境
如下图所示,通过 USB 转 UART 适配器将 Ameba 芯片上的 UART 端口连接到 PC 的 USB 端口。
备注
用于音频录制的 UART 端口与具体实现相关,请根据您的硬件和软件设计进行调整。
请选择合适的 USB 转 UART 适配器,以满足所需音频数据速率的要求。
软件环境
PC 环境:Win 7 或更高版本,Microsoft .NET Framework 4.0
Ameba 环境:烧录了音频录制示例的固件
芯片设置
编辑录音工具可执行文件所在目录下的 Chip.json
文件来配置芯片参数。
[
{
"ChipID": "RTL872XD",
"BaudRate": 3000000,
"AmicNum": 2,
"DmicNum": 3,
"MinRefNum": 1,
"MaxRefNum": 1
},
{
"ChipID": "RTL8720E",
"BaudRate": 3000000,
"AmicNum": 3,
"DmicNum": 4,
"MinRefNum": 1,
"MaxRefNum": 2
},
{
"ChipID": "RTL8730A",
"BaudRate": 3000000,
"AmicNum": 5,
"DmicNum": 8,
"MinRefNum": 1,
"MaxRefNum": 2
}
]
芯片配置以芯片信息列表的形式组织,其描述如下:
配置项 |
类型 |
描述 |
---|---|---|
ChipID |
string |
用于识别芯片的 ID,可根据需要自由更改。 |
BaudRate |
int |
用于音频录制的串口波特率,与软硬件实现相关。 |
AmicNum |
int |
AMIC 接口的数量,与硬件实现相关。 |
DmicNum |
int |
DMIC 接口的数量,与硬件实现相关。 |
MinRefNum |
int |
REF 通道的最小数量,与软硬件实现相关。 |
MaxRefNum |
int |
REF 通道的最大数量,与软硬件实现相关。 |
音频设置
通过 GUI 设置
录音工具允许用户通过 GUI 设置最常用的音频配置:

GUI 上的配置项描述如下:
配置项 |
描述 |
---|---|
Serial Port |
串口,选择用于音频录制的正确串口。 |
Baud Rate |
串口的波特率。 |
Sample Rate |
音频采样率。 |
Format |
音频格式,有效值与 Ameba 软件实现对应。 |
Channels |
音频通道数,有效值范围为 3 到 9。其中一个通道保留给 OUT 源,因此可配置的通道数为(Channels - 1)。 |
Source |
音频源,包括 AMIC 和 DMIC。可用音源受 |
REF |
参考通道,参考通道的数量受 |
工具会根据 Channels
、Source
和 REF
的配置提供实时预览。
通过配置文件设置
首次启动后,录音工具的可执行文件目录下会生成一个名为 Settings.json
的文件,用于保存运行时的录制配置。每次关闭工具后,该文件都会被更新。
Settings.json
包含比 GUI 更多的配置项,其格式如下:
{
"Config": {
"Channels": [
65281,
130818,
65535,
65535,
65535,
65535,
65535,
65535
],
"SampleRate": 32000,
"Format": "PCM_16_BIT",
"DeviceType": "RTPIN_IN_MIC",
"ChannelCount": 3
},
"ChipID": "RTL8720E",
"SerialPort": "USB Serial Port (COM74)",
"SerialBaudRate": 3000000,
"SerialDataBits": 8,
"SerialStopBits": "One",
"SerialParity": "None",
"SerialRxBufferLength": 32768,
"DataRateThreshold": 90,
"DataPayloadLength": 1440,
"DataBufferLength": 4194304,
"MaxRxDataLength": 4294967295,
"GenWavFile": false
}
用户可以编辑此文件以调整录制配置:
配置项 |
类型 |
描述 |
UI 对应配置项 |
---|---|---|---|
ChipID |
string |
用于识别芯片的 ID,应与 |
N/A |
SerialPort |
string |
串口名称。 |
Serial Port |
SerialBaudRate |
int |
串口波特率。 |
Baud Rate |
SerialDataBits |
int |
串口数据位,与 Ameba 软件实现相关。 |
N/A |
SerialStopBits |
enum |
串口停止位,有效值与 Ameba 软件实现对应:
|
N/A |
SerialParity |
enum |
串口校验位,有效值与 Ameba 软件实现对应:
|
N/A |
SerialRxBufferLength |
int |
串口接收缓冲区长度。 |
N/A |
DataRateThreshold |
int |
用于限制音频数据速率相对于串口波特率的百分比阈值。音频数据速率不得超过: (baud rate * SerialDataBits / (1 + SerialDataBits + SerialStopBits) / 1000) * DataRateThreshold / 100 KB/s 否则,当用户点击录制按钮时,工具会弹出警告并拒绝开始录制。 |
N/A |
DataPayloadLength |
int |
从 Ameba 发送到 PC 端录音工具的数据包的有效载荷长度(字节),与 Ameba 软件实现相关。 |
N/A |
DataBufferLength |
int |
录音工具在运行时用于保存接收到的音频数据的缓冲区长度(字节)。 |
N/A |
MaxRxDataLength |
u64 |
工具录制音频数据到文件的最大接收数据长度(字节)。 对于 WAV 文件,受其规范限制, 对于 PCM 文件,则没有限制。 |
N/A |
GenWavFile |
bool |
指示是否将录制数据保存为 WAV 文件: true: WAV 文件 (.wav) false: 原始 PCM 文件 (.pcm) |
N/A |
Config -> Channels |
list<u32> |
最多支持 9 个通道,包括最多 8 个可配置通道和 1 个 OUT 通道。可配置通道定义如下: bit 0: AMIC 1 bit 1: AMIC 2 bit 2: AMIC 3 … bit 7: AMIC 8 bit 8: DMIC 1 bit 9: DMIC 2 bit 10: DMIC 3 … bit 15: DMIC 8 bit 16: REF bit 17~bit 31: 保留 特别地,bit 0~7 = 0b11111111 表示 AMIC 未使用,bit 8~15 = 0b11111111 表示 DMIC 未使用。 例如, |
Source & REF |
Config -> SampleRate |
int |
音频采样率,最大值受 Ameba 软硬件实现限制。 |
Sample Rate |
Config -> Format |
enum |
音频格式,有效值与 Ameba 软件实现对应:
|
Format |
Config -> DeviceType |
enum |
设备类型,有效值与 Ameba 软件实现对应:
|
N/A |
Config -> ChannelCount |
int |
通道数,最大值受 Ameba 硬件实现限制。 |
Channels |
备注
为使更改生效,Settings.json
文件应仅在录音工具关闭时修改,否则任何更改都将在工具关闭时被覆盖。
录音
开始录音
配置完成后,点击 "Record" 按钮开始录制。
如果配置非法,将弹出警告对话框并拒绝录制,用户需调整配置后重试。
如果配置正确,录制将开始。
在录制过程中:
已录制时间将以秒为单位更新。
进度条会持续转圈,每 60 秒一圈。
日志信息(包括关键信息、警告和错误)将打印到文本框中。

停止录音
在录制状态下,点击 "Stop" 按钮将停止录制。
录制数据将根据 Setting.json
中 GenWavFile
属性的设置,保存为 PCM 或 WAV 文件。文件位于录音工具可执行文件目录下的 log
文件夹中,文件名将遵循以下命名规则并打印在日志文本框中:
<Timestamp>_<Format>_CH<Channels>_<Sample Rate>.<FileType>
例如:
20220719_192021_PCM_16_BIT_CH3_44100.pcm

放音
生成的音频文件可以使用支持多轨的音频播放器进行播放,例如使用 Audacity
播放生成的 PCM 文件:
选择 文件 -> 导入 -> 原始数据

选择生成的 PCM 文件,并根据录音工具中的录制配置设置音频参数:

Audacity
中的音频配置项描述如下:
配置项 |
描述 |
---|---|
Encoding |
音频编码,应与录音工具中的 |
Byte order |
字节序,选择 Little-endian。 |
Channels |
通道数,应与录音工具中的 |
Start offset |
起始偏移量,默认为 0。 |
Amount to import |
导入量,默认为 100%。 |
Sample rate |
采样率,应与录音工具中的 |
点击播放按钮:
