Python实现BP网络并进行语音识别(四)

3 篇文章 0 订阅
3 篇文章 0 订阅

title: Python实现BP网络并进行语音识别(四)
date: 2019-06-09 20:45:40
tags: [python, BP, 语音识别]

针对BP网络模型只适合固定大小的输入,我们对音频信号的MFCC系数进行二次特征提取,即从数百帧MFCC中提取出特征最大值,作为输入BP网络的信号。
由于简单三层网络,可能会存在学习能力不强的情况。一开始我设计了一个20,100,3的网络,保证对MFCC系数的充分学习。模型在训练了200轮后顺利达到了 ( 0.99 , 0.99 ) \left(0.99,0.99\right) (0.99,0.99),训练集和验证集为 ( 0.8 , 0.2 ) \left(0.8,0.2\right) (0.8,0.2),总样本数量为697。训练结果说明MFCC可以提供独特的特征进行人声识别。但是在训练的过程中,我发现,训练结果准确率在195轮到200轮之间有一个飞速上涨的过程,平均每轮上涨8%。我怀疑是数据分布太相似,导致准确率最后才上升。
为了验证我的假设,我训练了多组模型,发现准确率到达95%的轮次和隐藏层节点的个数成正比,与数据分布比例成反比。
由分析可以知道,MFCC系数对音频特征的表征能力非常强,仅需要利用简单BP网络在极少次的训练下就可以取得非常好的效果。
综上所述,在提取音频MFCC特征最大值系数后,BP网络仅需要 ( 20 , 3 , 3 ) \left(20,3,3\right) (20,3,3)三层网络结构实现通过音频信号实现三个人的识别。
代码Demo已经上传Github,欢迎大家指点批评

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值