在语音识别中,前端通常进行信号处理以允许从音频流中提取特征。在此过程中应用了两次离散傅里叶变换 (DFT)。第一次是开窗后;在应用此梅尔分箱后,再应用另一个傅立叶变换。
然而,我注意到,在语音识别器(例如CMU Sphinx中的默认前端)中,使用离散余弦变换 (DCT) 而不是 DFT 进行第二次操作是很常见的。这两种操作有什么区别?为什么第一次做 DFT,第二次做 DCT?
在语音识别中,前端通常进行信号处理以允许从音频流中提取特征。在此过程中应用了两次离散傅里叶变换 (DFT)。第一次是开窗后;在应用此梅尔分箱后,再应用另一个傅立叶变换。
然而,我注意到,在语音识别器(例如CMU Sphinx中的默认前端)中,使用离散余弦变换 (DCT) 而不是 DFT 进行第二次操作是很常见的。这两种操作有什么区别?为什么第一次做 DFT,第二次做 DCT?
离散傅里叶变换 (DFT) 和离散余弦变换 (DCT) 执行类似的功能:它们都将有限长度的离散时间向量分解为缩放和移位基函数的总和。两者的区别在于每次变换使用的基函数类型;DFT 使用一组与谐波相关的复指数函数,而 DCT 仅使用(实值)余弦函数。
DFT 广泛用于一般光谱分析应用,这些应用可以进入一系列领域。它还用作利用信号频域表示特性的技术的构建块,例如重叠保存和重叠添加快速卷积算法。
DCT 经常用于有损数据压缩应用程序,例如 JPEG 图像格式。DCT 非常适合压缩的特性是其高度的“光谱压缩”;在定性水平上,与 DFT 等其他变换相比,信号的 DCT 表示倾向于将更多的能量集中在少数系数中。这对于压缩算法是可取的;如果您可以使用一组相对较小的 DCT 系数近似地表示原始(时域或空间域)信号,那么您可以通过仅存储包含大量能量的 DCT 输出来减少数据存储需求。
我发现DCT wiki(也由 Pearsonartphoto 共享)中的一些细节指出 DCT 非常适合压缩应用程序。非正式概述部分的结尾很有帮助(粗体字是我的)。
特别是,众所周知,函数中的任何不连续性都会降低傅里叶级数的收敛速度……函数越平滑,准确表示它所需的 DFT 或 DCT 项就越少,而且它越多可以压缩……但是,DFT 的隐含周期性意味着不连续性通常发生在边界处……相比之下,两个边界甚至总是在边界处产生连续扩展的 DCT。这就是为什么 DCT ......通常在信号压缩方面比 DFT 和 DST 表现更好。在实践中,II 型 DCT 通常是此类应用的首选,部分原因是计算方便。
此外,您可能会发现这个答案也很有用(来自 math.stackexchange.com)。它指出:
余弦变换只不过是计算具有特殊对称性的序列的傅立叶变换的捷径(例如,如果序列表示来自偶函数的样本)。
您在特征提取过程中看到两次应用傅立叶变换的原因是特征基于称为倒谱的概念。倒谱是对频谱这个词的一种玩意——本质上,这个想法是通过傅里叶变换将信号变换到频域,然后像频谱是一个信号一样执行另一个变换。
频谱描述了每个频带的幅度和相位,而倒谱则描述了频带之间的变化。发现从倒谱派生的特征比直接从频谱中提取的特征更能描述语音。
有几个略有不同的定义。最初倒谱变换被定义为傅里叶变换 -> 复对数 -> 傅里叶变换 [1]。另一个定义是傅里叶变换 -> 复对数 -> 傅里叶逆变换[2]。后一种定义的动机在于它能够分离卷积信号(人类语音通常被建模为激励和声道的卷积)。
已发现在语音识别系统中表现良好的流行选择是在频域中应用非线性滤波器组(您所指的 mel binning)[3]。具体算法定义为傅里叶变换 -> 幅度平方 -> mel 滤波器组 -> 实对数 -> 离散余弦变换。
这里可以选择 DCT 作为二次变换,因为对于实值输入,DFT 的实部是一种 DCT。首选 DCT 的原因是输出近似去相关。去相关特征可以有效地建模为具有对角协方差矩阵的高斯分布。
[1] Bogert, B.、Healy, M. 和 Tukey, J. (1963)。回波时间序列的频率分析:倒谱、伪自协方差、交叉倒谱和 Saphe 开裂。在时间序列分析研讨会论文集上,p。209-243。
[2] Oppenheim, A. 和 Schafer, R. (1968)。语音的同态分析。在 IEEE Transactions on Audio and Electroacoustics 16 中,p。221-226。
[3] Davis, S. 和 Mermelstein, P. (1980)。连续句子中单音节单词识别的参数表示比较。在 IEEE Transactions on Acoustics、Speech and Signal Processing 28,p。357-366。
离散傅里叶变换和离散余弦变换之间的区别在于DCT 只使用实数,而傅里叶变换可以使用复数。DCT 最常见的用途是压缩。它相当于两倍长度的 FFT。