资源简介
目的:使用CNN卷积神经网络实现语音识别
步骤:(1)预处理。 首尾端的静音切除,降低对后续步骤造成的干扰,然后进行声音分帧,把声音切开成帧,,各帧之间一般是有交叠。
(2)特征提取。运用的算法为倒谱系数(MFCC),把每一帧波形变成一个包含声音信息的多维向量;
(3)RNN模型训练。有了特征,就可以使用TensorFlow完成模型的建立和训练了。
(4)验证模型。
目标:对相应的声音数据进行分类,例如数据的是数数的数据,能够输出对应的数字。

代码片段和文件信息
# -*- coding: utf-8 -*-
import tensorflow as tf
import scipy.io.wavfile as wav
from python_speech_features import mfccdelta
import os
import numpy as np
import sklearn.preprocessing
path_film = os.path.abspath(‘.‘)
path = path_film + “/data/xunlian/“
test_path = path_film + “/data/test_data/“
isnot_test_path = path_film + “/data/isnot_test_path/“
#使用one-hot编码,将离散特征的取值扩展到了欧式空间
#全局one-hot编码空间
label_binarizer = ““
def def_one_hot(x):
if label_binarizer == ““:
binarizer = sklearn.preprocessing.LabelBinarizer()
else:
binarizer = label_binarizer
binarizer.fit(range(max(x)+1))
y= binarizer.transform(x)
return y
“““读取文件位置“““
def read_wav_path(path):
map_path map_relative = [str(path) + str(x) for x in os.listdir(path) if os.path.isfile(str(path) + str(x))] [y for y in os.listdir(path)]
return map_path map_relative
“““获得mfcc系数“““
def def_wav_read_mfcc(file_name):
fs audio = wav.read(file_name)
processed_audio = mfcc(audio samplerate=fs nfft=512)
return processed_audio
“““获取输入的矩阵形状(大小)“““
def find_matrix_max_shape(audio):
h l = 0 0
for a in audio:
a b = np.array(a).shape
if a > h:
h=a
if b > l:
l=b
return 700l
def matrix_make_up(audio):
h l = find_matrix_max_shape(audio)
new_audio = []
for aa in audio:
zeros_matrix = np.zeros([h l]np.int8)
a b = np.array(aa).shape
for i in range(a):
for j in range(b):
zeros_matrix[i j]=zeros_matrix[ij]+aa[ij]
new_audio.append(zeros_matrix)
return new_audiohl
def read_wav_matrix(path):
map_path map_relative = read_wav_path(path)
audio=[]
labels=[]
for idx folder in enumerate(map_path):
processed_audio_delta = def_wav_read_mfcc(folder)
audio.append(processed_audio_delta)
labels.append(int(map_relative[idx].split(“.“)[0].split(“_“)[0]))
x_datahl = matrix_make_up(audio)
x_data = np.array(x_data)
# 得到文件夹内每种语音的one-hot编码
x_label = np.array(def_one_hot(labels))
return x_data x_label h l
“““初始化权值“““
def weight_variable(shapename):
initial = tf.truncated_normal(shapestddev=0.01)#生成一个截断的正态分布
return tf.Variable(initialname=name)
“““初始化偏置“““
def bias_variable(shapename):
initial = tf.constant(0.01shape=shape)
return tf.Variable(initialname=name)
“““卷积层“““
def conv2d(xW):
# x input tensor of shape ‘[batch in_height in_width in_channels]‘[训练时一个batch的图片数量 图片高度 图片宽度 图像通道数]
# W filter / kernel tensor of shape [filter_height filter_width in_channels out_channels][卷积核的高度,卷积核的宽度,图像通道数,卷积核个数]
#‘strides[0] = strides[3] = 1‘. strides[1]代表x方向的步长,strides[2]代表y方向的步长
# padding: A ‘string‘ from: ‘“SAME“ “VALID“‘
return tf.nn.conv2d(xWstrides=[1111]padding=‘SAME‘)
“““池化层“““
def max_pool_2x2(x):
#[池化的输入
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9694 2019-07-02 15:26 speechRecogined.py
文件 2993 2019-07-02 09:26 test.py
- 上一篇:MFC 多线程之间通过消息传递数据
- 下一篇:瑞利信道下的正规LDPC性能.rar
相关资源
- 语音识别系统设计
- 用matlab编的基于DTW和MFC算法的语音识
- 深度学习之卷积神经网络CNN用于人脸
- 语音识别C++
- 深度学习之卷积神经网络CNN模式识别
- 基于mfcc的说话人语音识别matlb
- windows 讯飞语音听写和微软sapi c++ 实现
- 语音识别的算法实现C++
- 基于MFCC的GMM的语音识别
- 盛大开源哼唱识别代码(C++)
- 语音识别端点检测程序C++
- deep learning卷积神经网络CNN在C++环境下
- 用动态时间规整模型进行语音识别
- 用遗传算法实现语音识别--基于mfcc参
- 百度语音识别api QT window下 调试应用
- 语音识别STM_C语言代码
- 语音识别GMM模型
- 基于HMM语音识别的C语言实现
- 新版,积分也变少了C++语音识别接口
- VC++下的语音识别源代码
- c-c++写的卷积神经网络
- C++实现CNN识别手写数字
- 讯飞windows端语音识别一套是基于QT设
- windows下c++版faster -rcnn
- C++语音识别接口Microsoft Speech SDK简单清
- 人脸特征点检测,轻量级的MTCNN实现
- 基于科大讯飞语音云识别软件
- 基于百度sdk的语音识别 C++版本demo V
- 语音识别的demo及需要的库
- 基于深度学习的人脸识别系统
评论
共有 条评论