端到端和模块化语音识别系统在架构、训练方法和实际实现方面有所不同。端到端系统使用单个神经网络将音频输入直接映射到文本输出,绕过诸如音素或单词对齐之类的中间步骤。 相比之下,模块化系统将过程分解为不同的组件——例如声学建模、发音建模和语言建模——这些组件在组合之前被单独开发和优化。
端到端系统的一个关键示例是像 DeepSpeech (Mozilla) 或 Wav2Vec (Meta) 这样的模型,它们使用序列到序列架构(例如,transformer 或 RNN)直接从数据中学习音频到文本的映射。 这些系统需要大型标记数据集,但避免了手动特征工程。 模块化系统,例如使用 Kaldi 构建的系统,可以使用高斯混合模型 (GMM) 或隐马尔可夫模型 (HMM) 进行声学建模,使用发音词典将声音映射到单词,并使用像 n-grams 或 RNN 这样的语言模型用于上下文。 例如,Kaldi 的 pipeline 分离了特征提取 (MFCC)、对齐和解码等任务,允许开发人员交换组件。
端到端系统的主要优点是简单性:它们通过消除手工制作的组件以及模块之间潜在的错误传播来减少工程工作量。 但是,它们通常需要更多的训练数据和计算资源。 模块化系统提供灵活性:开发人员可以调试或改进单个组件(例如,为新领域更新语言模型),而无需重新训练整个系统。 例如,将医学术语添加到模块化系统的语言模型中非常简单,而端到端模型则需要使用特定领域的数据进行重新训练。 模块化系统在标记数据稀缺的低资源场景中也表现更好,因为组件可以使用较小的数据集单独训练。