PyTorch语音识别的理论基础——MFCC

在语音识别研究领域,音频特征的选择至关重要。本书大部分内容中都在使用一种非常成功的音频特征---梅尔频率倒谱系数(Mel-Frequency Cepstrum Coefficient,MFCC)。

MFCC特征的成功很大程度上得益于心理声学的研究成果,它对人的听觉机理进行了建模。研究发现,音频信号从时域信号转换为频域信号之后,可以得到各种频率分量的能量分布。心理声学的研究结果表明,人耳对于低频信号更加敏感,对于高频信号比较不敏感,具体是什么关系?

心理声学研究结果表明,在低频部分是一种线性关系,但是随着频率的升高,人耳对于频率的敏感程度呈现对数增长的态势。这意味着只从各个频率能量的分布来设计符合人的听觉习惯的音频特征是不太合理的。

MFCC是基于人耳听觉特性提出来的,它与Hz频率呈非线性对应关系。MFCC利用这种关系,计算得到Hz频谱特征,已经广泛地应用于语音识别领域。

MFCC特征提取包含两个关键步骤:

(1)转换到梅尔频率。

(2)进行倒谱分析。

下面依次进行讲解。

  1. 梅尔频率

梅尔刻度是一种基于人耳对等距的音高(Pitch)变化的感官判断而定的非线性频率刻度。作为一种频率域的音频特征,离散傅里叶变换是这些特征计算的基础。一般选择快速傅里叶变换(Fast Fourier Transform,FFT)算法,其粗略的流程如图14-1所示。

图14-1 快速傅里叶变换

而梅尔刻度和频率的赫兹关系如下:

所以,如果在梅尔刻度上是均匀分度的话,赫兹之间的距离就会越来越大。梅尔刻度的滤波器组的尺度变化如图14-2所示。

图14-2 梅尔刻度的滤波器组的尺度变化

梅尔刻度的滤波器组在低频部分的分辨率高,跟人耳的听觉特性是相符的,这也是梅尔刻度的物理意义所在。这一步的含义是:首先对时域信号进行傅里叶变换,转换到频域,然后利用梅尔频率刻度的滤波器组对对应频域信号进行切分,最后每个频率段对应一个数值。

  1. 倒谱分析

倒谱的含义是:对时域信号进行傅里叶变换,然后取log,再进行反傅里叶变换,如图14-3所示。倒谱可以分为复倒谱、实倒谱和功率倒谱,这里使用的是功率倒谱。倒谱分析可用于将信号分解,将两个信号的卷积转换为两个信号的相加,从而简化计算。

图14-3 倒谱分析演示

具体公式这里就不阐述了,有兴趣的读者在学习之余可以自行钻研相关内容。接下来向读者演示使用Python音频处理库librosa计算MFCC的过程,代码如下:

使用librosa音频处理库获取音频的梅尔频谱

wav, sr = librosa.load(data_path, sr=32000) #sr为取样频率

计算音频信号的MFCC

spec_image = librosa.feature.mfcc(y=wav, sr=sr)

这里需要注意的是,sr的意思是取样频率,其作用是对输入的音频根据特定的取样频率生成对应的音频特征。

读者可以使用.wav后缀的音频进行尝试。

本文节选自《PyTorch 2.0深度学习从零开始学》,这本书内容包括PyTorch概述、开发环境搭建、基于PyTorch的MNIST分类实战、深度学习理论基础、基于PyTorch卷积层的MINIST分类实战、PyTorch数据处理与模型可视化、实战ResNet、有趣的word embedding、基于RNN的中文情感分类实战、自然语言处理的编码器、站在巨人肩膀上的预训练模型Bert、自然语言处理的解码器、基于PyTorch的强化学习实战、基于MFCC的语音唤醒实战、基于PyTorch的人脸识别实战。实战案例丰富,可带领读者快速掌握深度学习算法及其常见案例。

相关推荐
CSDN云计算8 分钟前
如何以开源加速AI企业落地,红帽带来新解法
人工智能·开源·openshift·红帽·instructlab
艾派森18 分钟前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
hairenjing112320 分钟前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机
小蜗子24 分钟前
Multi‐modal knowledge graph inference via media convergenceand logic rule
人工智能·知识图谱
SpikeKing37 分钟前
LLM - 使用 LLaMA-Factory 微调大模型 环境配置与训练推理 教程 (1)
人工智能·llm·大语言模型·llama·环境配置·llamafactory·训练框架
黄焖鸡能干四碗1 小时前
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)
大数据·人工智能·软件需求·设计规范·规格说明书
1 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
ctrey_1 小时前
2024-11-4 学习人工智能的Day21 openCV(3)
人工智能·opencv·学习
攻城狮_Dream1 小时前
“探索未来医疗:生成式人工智能在医疗领域的革命性应用“
人工智能·设计·医疗·毕业
学习前端的小z2 小时前
【AIGC】如何通过ChatGPT轻松制作个性化GPTs应用
人工智能·chatgpt·aigc