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

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

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

前言

在深度学习领域,一份好的数据决定了成功的一半。为了得到优质的声音样本,我特意选取了三位相声大师的单口相声,音频样本简单纯粹,每一位都选取了十分钟以上的音频信息。将音频信息安装停顿切成一个个不超过10s的小声音片段,然后对每一段音频进行MFCC特征提取,获得数百个带标签的音频样本。

利用python进行图像角点探测

前言

上次我们发现,只要找到了矩形的四个角点,进行旋转变换后就能够很完美的得到一个横平竖直的矩形。那如何得到四个角点呢?现在比较常见的方式是通过canny算子去探测角点,但是由于角点众多,其实canny算子并不适合表格类型的角点探测。还有一种是通过hough圆变换得到所有直线,然后计算最外围轮廓直线的交点得到角点,但同样的,也因为表格类型的直线较多,且容易在二值化的时候丢失线段,所以处理效果也比较差。
这里介绍另外一种方式去探测角点,先确定最大轮廓,然后在这个轮廓里寻找四个角点。

mysql django 配置问题

今天在配置django+mysql时碰到一个诡异的问题,就是无法连接上mysql报错

1
2
3
4
5
6
7
8
9
10
django.db.utils.OperationalError: (2006, <NULL>)
或者
django.db.utils.OperationalError: (2059, "Authentication plugin 'b'sha256_passwo
rd'' not configured")
或者
django.db.utils.InternalError: (1862, 'Your password has expired. To log in you
must change it using a client that supports expired passwords.')
或者
django.db.utils.OperationalError: (1045, "Access denied for user 'cyd'@'localhos
t' (using password: YES)")

利用python进行纸质文档识别(一)图像旋转矫正

前言

这学期我们上了一门软件工程课和数字图像处理课,软件工程课课设要求大家设计一款软件。作为一个学生助理,我早就对学校的问卷调查不满意了,填写完的纸质表格竟然还要输入成电子表格,人工手动输入,未免也太难受了。所以结合我所学的知识,我准备利用python+opencv做一款纸质文档识别软件,专门识别纸质表格转化成为电子表格。

python打包的艰难之旅

前几日,我做了一个简单地划词翻译工具,还挺好用的,但是作为一个python脚本,每次都要打开命令行去执行或者是用spyder太过麻烦了,本来就是想简单简单再简单,所以一心搞事的我又踏上了艰难的python打包之旅。
python打包成exe执行文件是挺费劲的,毕竟python本身是没有这个工具的。我用的anaconda也没有这个功能。经过查阅资料,我发现其实python有两个比较好用的打包工具,一个是pyinstaller,一个是py2exe。当时年轻的我还没有意识到,我即将为我的冲动付出时间的代价。

,