语音识别

已完成

注释

有关更多详细信息,请参阅 “文本和图像 ”选项卡!

语音识别(也称为语音转文本)使应用程序能够将口语转换为书面文本。 从声音波到文本的旅程涉及六个协调阶段:捕获音频、准备特征、建模声学模式、应用语言规则、解码最有可能的字词以及优化最终输出。

音频捕获:将模拟音频转换为数字

当麦克风将声波转换为数字信号时,语音识别开始。 系统以每秒数千次的频率进行模拟音频采样(语音应用程序通常为每秒16,000次采样),并将每个测量值存储为数值。

音频波形图。

注释

采样率为何重要:

  • 更高的速率(如 44.1 kHz 的音乐)捕获更多详细信息,但需要更多处理。
  • 语音识别在 8 kHz 到 16 kHz 之间平衡清晰度和效率。
  • 与扬声器之间的背景噪音、麦克风质量和距离直接影响下游准确度。

在进入下一阶段之前,系统通常会应用基本筛选器来删除可能混淆模型的嗡嗡声、咔嗒声或其他背景噪音。

预处理:提取有意义的功能

原始音频示例包含太多信息,无法高效识别模式。 预处理会将波形转换为紧凑表示形式,以突出显示语音特征,同时放弃不相关的细节(如绝对音量)。

梅尔频率倒谱系数 (MFCC)

MFCC 是语音识别中最常见的特征提取技术。 它通过强调语音能量集中的频率并压缩不太重要的范围,来模仿人耳感知声音的方式。

MFCC 的工作原理:

  1. 将音频划分为帧: 将信号拆分为重叠的 20-30 毫秒窗口。
  2. 应用傅立叶转换: 将每个帧从时间域转换为频率域,显示存在哪些音调。
  3. 映射到梅尔刻度:调整频率区间以匹配人类听觉的敏感度——我们对低频音高的分辨能力要优于高频
  4. 提取系数: 计算一小组数字(通常为 13 个系数),以汇总每个帧的光谱形状。

MFCC 功能映射的关系图。

结果是一系列特征向量(每个帧一个),用于捕获音频的声音,而无需存储每个样本。 这些向量将成为声学建模的输入。

矢量按列提取,每个向量表示每个时间帧的 13 MFCC 特征系数值:

Frame 1: [ -113.2,  45.3,  12.1,  -3.4,  7.8,  ... ]  # 13 coefficients
Frame 2: [ -112.8,  44.7,  11.8,  -3.1,  7.5,  ... ]
Frame 3: [ -110.5,  43.9,  11.5,  -2.9,  7.3,  ... ]

声学建模:识别音素

声学模型了解音频功能和 音素之间的关系,这是区分字词的最小声音单位。 英语使用约 44 个音素;例如,单词“cat”包括三个音素:/k/、/æ/和 /t/。

从功能到音素

现代声学模型使用 转换器体系结构,这是一种在序列任务中表现出色的深度学习网络。 转换器处理 MFCC 特征向量,并预测每个时刻最有可能出现的音素。

转换器模型通过以下方法实现有效的音素预测:

  • 注意机制: 该模型检查周围的帧,以解决歧义。 例如,在“top”这个词的开头和“bat”这个词的结尾,“/t/”这个音素的发音是不同的。
  • 并行处理: 与较旧的反复模型不同,转换器同时分析多个帧,从而提高速度和准确性。
  • 语境化预测: 网络学习到某些音素序列在自然语音中经常出现。

声学建模的输出是每个音频帧内各音素的概率分布。 例如,帧 42 可能会显示 /æ/ 的 80% 置信度,/ɛ/ 的 15%,以及其他音素的 5%。

注释

音素特定于语言。 在英语音素上训练的模型若不重新训练,就无法识别普通话音调。

语言建模:预测单词序列

仅音素预测不能保证准确的转录。 声学模型可能会混淆“their”和“there”,因为这两个词的音素一致。 语言模型通过应用词汇、语法和常见单词模式的知识来解决歧义。 模型指导单词序列预测的一些方法包括:

  • 统计模式:模型知道“The weather is nice”在训练数据中出现的频率高于“The whether is nice”。
  • 上下文感知:在听到“I need to”之后,该模型预期出现的动词是“go”或“finish”,而不是名词“table”。
  • 域适应: 根据医疗或法律术语训练的自定义语言模型可提高专用方案的准确性。

解码:选择最佳文本假设

解码算法搜索数百万个可能的单词序列,以查找与声学和语言模型预测最匹配的听录。 此阶段平衡了两个相互竞争的目标:保持忠实于音频信号,同时生成可读、语法正确的文本。

束搜索解码:

最常见的技术是束搜索,它在处理每个音频帧时维护一个包含顶级评分的部分转录的候选名单(称为“束”)。 在每一步,它都会用下一个最有可能的词来扩展每个假设,剪除低分路径,并只保留最佳候选者。

对于一个三秒长的语音片段,解码器可能会先评估数千种假设选项,然后才会选择“Please send the report by Friday”这一选项,而非诸如“Please sent the report buy Friday”这样的其他选项。

注意

解码是计算密集型的。 实时应用程序通过限制梁宽度和假设深度来平衡准确性和延迟。

后期处理:优化输出

解码器生成原始文本,通常需要在演示前进行清理。 后期处理应用格式规则和更正,以提高可读性和准确性。

常见的后处理任务:

  • 资本化: 将“hello my name is sam”转换为“Hello my name is Sam”。
  • 标点还原: 根据韵律和语法添加句点、逗号和问号。
  • 数字格式: 将“一千二十三”更改为“1,023”。
  • 不雅内容筛选: 如果策略需要,请屏蔽或删除不适当的字词。
  • 反文本规范化: 将口语形式(如“三点下午”)转换为“下午 3 点”。
  • 置信度评分: 在关键应用程序(如医疗听录)中标记低置信度字词以供人工审查。

Azure 语音返回最终转录以及单词级时间戳、置信度分数等其他元数据,使您的应用程序能够突出显示不确定的段落或触发备用行为。

管道如何协同工作

每个阶段都基于上一个阶段:

  1. 音频捕获 提供原始信号。
  2. 预处理 提取强调语音模式的 MFCC 特征。
  3. 声学建模 使用转换器网络预测音素概率。
  4. 语言建模 应用词汇和语法知识。
  5. 解码 搜索最佳单词序列。
  6. 后处理 为人类读取者设置文本的格式。

通过分离关注点,现代语音识别系统可实现跨语言、口音和声学条件的高精度。 听录质量不足时,通常可以将问题跟踪到一个阶段(音频捕获不佳、语言模型训练不足或处理后过于积极),并相应地进行调整。