对语音固有的序列特性和可变性进行建模,是高级语音处理中的一项主要任务。语音,无论是我们尝试识别它(ASR)还是生成它(TTS),本质上都是随时间展开的一系列事件。此外,它充满了不确定性。发音各异,背景噪音干扰,说话风格不同。统计模型为处理这种序列结构和不确定性提供了数学框架。尽管现代语音处理大量依赖深度学习,但理解统计学原理有助于领会这些先进模型解决的问题及其运作方式。自动语音识别的核心问题通常使用贝叶斯定理来描述。我们希望在给定观测到的声学特征序列 $A$ 的情况下,找出最可能的词序列 $W$:$$ P(W|A) = \frac{P(A|W) P(W)}{P(A)} $$由于我们寻找的是最可能的序列 $W$,并且在给定音频输入时 $P(A)$ 是一个常数,所以任务简化为最大化两个概率的乘积:$$ \hat{W} = \underset{W}{\operatorname{argmax}} P(A|W) P(W) $$在此,$P(A|W)$ 代表声学模型,它估计在词序列 $W$ 被说出时,观测到声学特征 $A$ 的可能性。$P(W)$ 代表语言模型,它估计词序列 $W$ 在目标语言中出现的先验概率。早期乃至一些当前的混合系统都使用统计技术显式地建模这些概率。序列建模:隐马尔可夫模型 (HMMs)几十年来,隐马尔可夫模型 (HMMs) 一直是自动语音识别 (ASR) 中声学建模 $P(A|W)$ 的主导方法。隐马尔可夫模型非常适合对底层生成过程无法直接观测的序列进行建模。在语音中,底层(隐藏)状态可能对应于音素或次音素单元,而观测值是从音频中提取的声学特征向量(如MFCCs)。隐马尔可夫模型由以下要素定义:隐藏状态集合,$S = {s_1, s_2, ..., s_N}$。状态转移概率分布,$A = {a_{ij}}$,且 $a_{ij} = P(\text{在 } t+1 \text{ 时刻的状态 } s_j | \text{在 } t \text{ 时刻的状态 } s_i)$。观测概率分布(发射概率),$B = {b_j(o_t)}$,且 $b_j(o_t) = P(\text{在 } t \text{ 时刻的观测 } o_t | \text{在 } t \text{ 时刻的状态 } s_j)$。通常,对于MFCCs等连续特征,这使用高斯混合模型(GMMs)进行建模。初始状态分布,$\pi = {\pi_i}$,且 $\pi_i = P(\text{在 } t=1 \text{ 时刻的状态 } s_i)$。digraph HMM { rankdir=LR; node [shape=circle, style=filled, fillcolor="#a5d8ff", fontname="Helvetica"]; edge [fontname="Helvetica"]; S1 [label="S₁"]; S2 [label="S₂"]; S3 [label="S₃"]; subgraph cluster_observations { label = "观测值"; style=dotted; O1 [label="O₁", shape=rect, style=filled, fillcolor="#d8f5a2"]; O2 [label="O₂", shape=rect, style=filled, fillcolor="#d8f5a2"]; O3 [label="O₃", shape=rect, style=filled, fillcolor="#d8f5a2"]; O1 -> O2 -> O3 [style=invis]; } S1 -> S1 [label="a₁₁"]; S1 -> S2 [label="a₁₂"]; S2 -> S2 [label="a₂₂"]; S2 -> S3 [label="a₂₃"]; S3 -> S3 [label="a₃₃"]; S1 -> O1 [label="b₁(O₁)", style=dashed, color="#495057"]; S2 -> O2 [label="b₂(O₂)", style=dashed, color="#495057"]; S3 -> O3 [label="b₃(O₃)", style=dashed, color="#495057"]; Start [shape=point, style=invis]; Start -> S1 [label="π₁"]; Start -> S2 [label="π₂", style=invis]; // 假设起始状态通常是第一个音素 }3状态隐马尔可夫模型的简化图示。圆形代表隐藏状态(例如,音素),矩形代表观测值(声学特征)。实线箭头显示状态转移 ($a_{ij}$),虚线箭头表示从状态发射观测值 ($b_j(O_t)$) 的概率。隐马尔可夫模型通过状态转移捕捉语音中的时间依赖性,并通过发射概率建模声学可变性。训练过程常涉及期望最大化(EM)算法,具体是Baum-Welch算法,以使用最大似然估计(MLE)来估计参数 $A$ 和 $B$。Viterbi算法通常在识别(解码)过程中使用,以在给定观测值的情况下找到最可能的隐藏状态序列(从而得到词语)。尽管功能强大,传统的HMM-GMM系统仍有局限性:马尔可夫假设(当前状态仅依赖于前一状态)是一个大幅简化。给定状态下观测值条件独立性的假设经常被违反。高斯混合模型(GMMs)难以有效建模高维特征空间中的复杂关联。这些局限性推动了向深度学习模型的转变,这些模型可以直接从数据中学习更复杂的时间依赖性和特征表示。然而,隐马尔可夫模型的原理依然重要,尤其是在混合系统(第二章)中,神经网络用于估计HMM的发射概率。统计语言模型:N-gram自动语音识别的另一个组成部分是语言模型(LM),即 $P(W)$。传统上,这通过N-gram模型来完成。N-gram模型通过仅条件化前 $N-1$ 个词来近似计算给定整个前置历史的下一个词 $w_i$ 的概率:$$ P(w_i | w_1, w_2, ..., w_{i-1}) \approx P(w_i | w_{i-N+1}, ..., w_{i-1}) $$例如,一个三元模型($N=3$)使用 $P(\text{识别}|\text{语音})$ 来近似 $P(\text{识别}|\text{语音})$。这些概率通常通过计算大型文本语料库中词序列的出现次数来估计,并使用最大似然估计(MLE),常结合平滑技术(如Kneser-Ney)来处理未见过的N-gram。尽管简单且计算高效,N-gram模型存在数据稀疏问题(许多合理的词序列从未出现在训练数据中),并且难以捕捉语言中的长距离依赖。现代自动语音识别系统越来越多地使用神经网络语言模型(在第三章中介绍),这些模型克服了许多上述局限,但知晓N-gram为语言模型集成技术提供了背景。统计学与深度学习的衔接这些统计学原理如何与我们将要关注的深度学习架构关联起来?概率估计: 自动语音识别和文本到语音中的深度神经网络本质上是强大的函数逼近器,训练用于估计复杂概率分布。一个自动语音识别声学模型可能会输出 $P(\text{音素}|A_{\text{窗口}})$,而一个文本到语音声学模型可能会在给定文本输入的情况下预测梅尔频谱帧分布的参数。损失函数: 训练神经网络通常涉及最大化似然(或通过MAP估计最大化后验概率等相关目标),这直接与最大似然估计(MLE)和最大后验(MAP)原理相连。交叉熵(用于分类)或均方误差(用于参数化分布的回归输出)等损失函数是根据关于数据生成过程的统计假设选择的。序列建模: 循环神经网络(RNNs)、长短期记忆网络(LSTMs)、Transformer和连接主义时间分类(CTC)(第二章)专门设计用于建模序列数据,隐式捕捉时间依赖性,比隐马尔可夫模型中简单的一阶马尔可夫假设有效得多。混合系统: 如前所述,深度学习并非一夜之间完全取代了隐马尔可夫模型。混合型深度神经网络-隐马尔可夫模型(DNN-HMM)系统(第二章)利用深度神经网络(DNNs)来估计隐马尔可夫模型(HMM)的发射概率 $b_j(o_t)$,将神经网络的表示能力与既有的隐马尔可夫模型框架结合,用于序列对齐和解码。这篇回顾起着衔接作用。尽管我们将主要使用深度学习工具,但牢记它们旨在解决的底层统计问题——建模序列概率、处理不确定性、估计似然——为理解其架构、训练和评估提供了有价值的视角。我们本质上是在寻找更强大的方法来估计自动语音识别的 $P(A|W)$ 和 $P(W)$,或文本到语音的 $P(A|T)$(其中 $T$ 代表文本),通常直接从数据中学习表示和依赖性,而不是依赖于强烈的简化假设。