Azure AI 语音中的音频概念

语音服务接受并提供多种格式的音频,音频区域是一个复杂的主题,但一些背景信息可能会有所帮助。

音频概念

语音本质上是模拟的,它通过采样将其转换为数字信号来近似。 每秒采样语音的次数为采样率,每个样本的准确程度则由位深度定义。

采样率

每秒音频样本的数量。 更高的采样率将更准确地重现更高的频率,如音乐。 人类通常可以听到 20 Hz 到 20 kHz 之间的声音,但对 5 kHz 的频率最为敏感。 采样率需要是最高频率的两倍,因此对于人类语音来说,16 kHz 采样率通常是足够的,但更高的采样率可以提供更高的质量,尽管文件会更大。 语音转文本和文本转语音的默认值为 16 kHz,但对于有声读物,建议使用 48 kHz。 一些源音频(尤其是来自旧式电信系统的音频)的频率为 8 kHz,这将导致质量下降。

位深度

每个未压缩的音频样本由定义其准确度或分辨率的位数表示。 对于人类语音,需要 13 位,并向上舍入为 16 位样本。 专业音频或音乐则需要更高的位深度。 传统电话系统通常使用 8 位压缩,但它并不理想。

频道

语音服务通常需要并提供单声道流。 立体声和多声道文件的行为特定于 API,例如语音转文本 REST API 将拆分立体声文件并为每个通道生成结果。 文本转语音仅是单声道的。

音频格式和编解码器

要使语音服务能够使用音频,需要知道其编码方式。 此外,由于音频文件可能相对较大,因此通常使用压缩来减小其大小。 音频文件和流可以按容器格式和音频编解码器进行描述。 常见的容器是 WAV 或 MP4,常见的音频格式则是 PCM 或 MP3。 通常无法假设容器使用特定的音频格式,例如 WAV 文件通常包含 PCM 数据,但其他音频格式也是可能的。

未压缩的音频

语音服务在内部处理未压缩的音频,该音频使用脉冲代码调制(或 PCM)进行编码。 这意味着每个样本都表示信号的振幅。 这是一个简单的处理表示形式,但空间效率低,因此压缩通常用于传输音频。

有损压缩音频

有损算法可能会实现更大的压缩,从而生成较小的文件或较低的带宽,这对于移动连接或繁忙网络非常重要。 常见的音频格式是 MP3,这是一个有损压缩的示例。 MP3 文件明显小于原始文件,可能听起来与原始文件几乎相同,但无法重新创建确切的源文件。 有损压缩的工作原理是移除部分音频或近似它。 使用有损算法进行编码时,需要权衡带宽以实现准确度。

MP3 专为音乐而不是语音而设计。

AMR 和 AMR-WB 专为有效压缩手机语音而设计,在表现音乐或噪音方面效果不佳。

A-Law 和 Mu-Law 是一种较早的算法,可自行压缩每个样本,并使用对数量化技术将 16 位样本转换为 8 位。 它只应用于支持传统系统。

无损压缩音频

使用无损压缩可以重新创建原始未压缩的文件。 压缩文件通常比原始文件小得多,而没有任何损失,但实际压缩取决于输入。 它通过使用多种方法从文件中移除冗余来实现压缩。

最常见的无损压缩是 FLAC。

后续步骤

使用语音 SDK 进行音频处理