Advertisement

Python实现语音识别和语音合成!

阅读量:

目录 语音识别 MFCC 隐马尔科夫模型声音合成

声音的本质即为振动;而振动的本质则可视为位移随时间的变化规律;在音频文件(.wav格式)中包含了不同时间点上的振幅信息

Python资源共享群:626017123

借助傅里叶变换技术, 能够将时间域中的声音函数表示为多种不同频率的正弦波叠加. 频率谱线的独特排列模式, 有助于建立起音频内容与文本之间的对应关系, 这一关联机制可被选作模型训练的基础依据.

案例:画出语音信号的波形和频率分布,(freq.wav数据地址)

复制代码

语音识别

梅尔频率倒谱系数(MFCC)通常利用声音信号中与内容高度相关的13个特定频段的能量分布情况,并结合梅尔频率倒谱系数矩阵这一工具来进行语音特征提取。在隐马尔科夫模型的基础上建立模式识别体系,并结合测试样本数据进行训练优化,在此基础之上实现对未知语音信息的有效识别和分类处理

MFCC

梅尔频率倒谱系数相关API:

复制代码

案例:画出MFCC矩阵:

python -m pip install python_speech_features

复制代码

隐马尔科夫模型

隐马尔科夫模型相关API:

复制代码

案例:在录音数据中选择training目录下的音频样本,并将录音数据中的音频文件用于识别任务中的分类处理

语音识别设计思路

解析训练文件夹中的所有训练音频样本。
每个音频将与对应的MFCC矩阵匹配。
每个MFCC矩阵将被分配到特定的标签(Apple)。

复制代码

2、把所有类别为apple的mfcc合并在一起,形成训练集。

训练集:

train_x:[mfcc1,mfcc2,mfcc3,...],[mfcc1,mfcc2,mfcc3,...]...

train_y:[apple],[banana]...

由上述训练集样本可以训练一个用于匹配apple的HMM。

复制代码

3、训练7个HMM分别对应每个水果类别。 保存在列表中。

复制代码

4、读取testing文件夹中的测试样本,整理测试样本

测试集数据:

test_x: [mfcc1, mfcc2, mfcc3...]

test_y :[apple, banana, lime]

复制代码

5、针对每一个测试样本:

1、分别使用7个HMM模型,对测试样本计算score得分。

2、取7个模型中得分最高的模型所属类别作为预测类别。

复制代码

声音合成

基于需求获取某声音模型的频域数据,并通过逆向过程生成时域数据以完成声音的合成。基于业务要求能够调整模型数据以满足不同应用场景的需求。

案例,(数据集12.json地址):

复制代码

全部评论 (0)

还没有任何评论哟~