欢迎光临王子棋牌游戏
主页 > 软件 > 用 Python 训练自己的语音识王子棋牌游戏别系统,这波操作稳了

用 Python 训练自己的语音识王子棋牌游戏别系统,这波操作稳了

软件 2020-10-17 14:373928王子棋牌游戏王子棋牌游戏

作者 | 李秋键

责编 | Carol

封图 | CSDN 付费下载自视觉中国

@AnsonC@SEO@近几年来语音识别技术得到了迅速发展,从手机中的Siri语音智能助手、微软的小娜以及各种平台的智能音箱等等,各种语音识别的项目得到了广泛应用。

语音识别属于感知智能,而让机器从简单的识别语音到理解语音,则上升到了认知智能层面,机器的自然语言理解能力如何,也成为了其是否有智慧的标志,而自然语言理解正是目前难点。

@AnsonA@SEO@同时考虑到目前大多数的语音识别平台都是借助于智能云,对于语音识别的训练对于大多数人而言还较为神秘,故今天我们将利用python搭建自己的语音识别系统。

最终模型的识别效果如下:

实验前的准备

首先我们使用的python版本是3.6.5所用到的库有cv2库用来图像处理;

Numpy库用来矩阵运算;Keras框架用来训练和加载模型。Librosa和python_speech_features库用于提取音频特征。Glob和pickle库用来读取本地数据集。

数据集准备

首先数据集使用的是清华大学的thchs30中文数据。

这些录音根据其文本内容分成了四部分,A(句子的ID是1~250),B(句子的ID是251~500),C(501~750),D(751~1000)。ABC三组包括30个人的10893句发音,用来做训练,D包括10个人的2496句发音,用来做测试。

data文件夹中包含(.wav文件和.trn文件;trn文件里存放的是.wav文件的文字描述:第一行为词,第二行为拼音,第三行为音素);

数据集如下:

模型训练

1、提取语音数据集的MFCC特征:

首先人的声音是通过声道产生的,声道的形状决定了发出怎样的声音。如果我们可以准确的知道这个形状,那么我们就可以对产生的音素进行准确的描述。声道的形状在语音短时功率谱的包络中显示出来。而MFCCs就是一种准确描述这个包络的一种特征。

其中提取的MFCC特征如下图可见。

故我们在读取数据集的基础上,要将其语音特征提取存储以方便加载入神经网络进行训练。

其对应的代码如下:

#读取数据集文件

text_paths = glob.glob

total = len

print

with open as fr:

lines= fr.readlines

print

#数据集文件trn内容读取保存到数组中

texts = []

paths = []

forpathintext_paths:

with open as fr:

lines= fr.readlines

line = lines[ 0].strip.replace

texts.append

paths.append)

print

#定义mfcc数

mfcc_dim = 13

#根据数据集标定的音素读入

def load_and_trim:

audio, sr = librosa. load

energy = librosa.feature.rmse

frames = np.nonzero / 5)

Copyright © 2020 王子棋牌游戏 版权所有