带你训练一个简单的音频识别网络(附代码)

本文详细介绍了如何构建一个基本的音频识别网络,能够识别10个不同的词语。通过TensorFlow进行训练,包括数据下载、模型训练、混淆矩阵分析、验证和测试。文章还提供了将模型应用于Android应用程序的指导,以及对模型工作原理的解释。训练过程可能需要几个小时,最终在测试集上可达到85%~90%的准确率。
摘要由CSDN通过智能技术生成

来源:大数据文摘

本文长度为7600字,建议阅读10分钟

本文将一步步向你展示,如何建立一个能识别10个不同词语的基本语音识别网络。


你需要知道,真正的语音与音频识别系统要复杂的多,但就像图像识别领域的MNIST,它将让你对所涉及的技术有个基本了解。


完成本教程后,你将拥有一个模型,能够辨别一个1秒钟的音频片段是否是无声的、无法识别的词语,或者是“yes”、“no”、“up”、“down”、“left”、“right”、 “on”、“off”、“stop”、“go”。你还可以使用这个模型并在Android应用程序中运行它。


注:本文含有大量代码,需要代码原文的同学请参考文末来源地址中的内容。

 

准备工作


确保你已经安装了TensorFlow,由于脚本程序将下载超过1GB的训练数据,你需要畅通的网络连接,而且你的机器需要有足够的空余空间。训练过程本身可能需要几个小时,所以确保你有一台可以使用这么长时间的机器。

 

训练


开始训练前,在TensorFlow 源码树下运行:



这个脚本程序将开始下载“语音命令数据集”,包括65000条由不同的人说30个不同词语组成的WAVE音频文件。这份数据由Google收集,并在CC-BY协议许可下发行,你可以通过贡献自己五分钟的声音来帮助提升它。这份文件大小超过1GB,所以这部分可能需要一段的时间,但你应该看一下过程日志,一旦它被下载一次,你就不需要再进行这一步了。



这表明初始化进程已经完成,循环训练已经开始,你将看到每一次训练产生的输出信息。这里分别解释一下含义:



在100步之后,你将会看到一行输出如下:



就可以从该点重新开始脚本。

 

混淆矩阵


在400步之后,将记录如下的信息:


第一部分是混淆矩阵。为了理解它的含义,首先需要知道所使用的标签,它们是 “silence”、 “unknown”、 “yes”、 “no”、 “up”、 “down”、 “left”、 “right”、 “on”、 “off”、“stop”和“go”。每一列代表一组被预测为某个标签的样本,因此第一列代表着所有预测为“silence”的片段,第二列都被预测为“unknown”词,第三列是“yes”,以此类推。


每一行代表着正确的、完全真实为该标签的片段。第一行是所有为“silence”的片段,第二行的片段都是“unknown”词,第三行是“yes”,以此类推。


这个矩阵比单单一个准确率更有用,因为它能很好地总结出网络所犯的错误。在这个例子中,除了第一项之外,第一行中的所有项都是零。因为第一行指的是所有实际上是“silence”的片段,这意味着没有一个被否定地标记为词语,所以我们没有漏报一个“silence”。这表明网络已经能够很好地区分“silence”和词语。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值