micro python 语音识别_使用Python和Keras创建简单语音识别引擎

本文介绍如何使用Python和Keras创建一个简单的语音识别引擎,涉及信号处理、数据预处理、模型架构、训练与验证,以及预测集成。通过重采样和预处理音频,使用TensorFlow的语音指令数据集,构建基于Conv1d和GRU的深度学习模型。
摘要由CSDN通过智能技术生成
f1ca742222e398524a03a8cf72cb8578.png

语音识别是机器或程序识别口语中的单词和短语并将其转换为机器可读格式的能力。通常,这些算法的简单实现有一个有限的词汇表,它可能只识别单词/短语。但是,更复杂的算法(例如Cloud Speech-to-Text和Amazon Transcribe)具有广泛的词汇量,并包含方言、噪音和俚语。

在本文中,我将演示:

  • 语音转文字的工作原理
  • 如何处理要转录的音频
  • 使用Keras解决问题的深度学习模型
  • 一种评估此模型的方法
  • 将预测模型集成到项目中的脚本

简介

语音只是由我们的声带引起的空气周围振动而产生的一系列声波。这些声波由麦克风记录,然后转换为电信号。然后使用高级信号处理技术处理信号,分离音节和单词。得益于深度学习方面令人难以置信的最新进展,计算机也可以从经验中学习理解语音。

语音识别通过声学和语言建模使用算法来工作。声学建模表示语音和音频信号的语言单元之间的关系;语言建模将声音与单词序列进行匹配,以帮助区分听起来相似的单词。通常,基于循环层的深度学习模型用于识别语音中的时间模式,以提高系统内的准确性。也可以使用其他方法,例如隐马尔可夫模型(第一个语音识别算法是使用这种方法)。在本文中,我将仅讨论声学模型。

信号处理

有多种方法可以将音频波转换为算法可以处理的元素,其中一种方法(在本教程中将使用的一种方法)是在等距的点上记录声波的高度:

cbc08ce29375f5fbb93ed2070a207506.gif

我们每秒读取数千次,并记录一个代表当时声波高度的数字。这是一个未压缩的.wav音频文件。“ CD质量”音频以44.1 kHz(每秒44,100个读数)采样。但是对于语音识别而言,16khz(每秒16,000个样本)的采样率足以覆盖人类语音的频率范围。

用这种方法,音频是通过一个数字向量来表示的,其中每个数字以1/16000秒的间隔表示声波的振幅。这个过程类似于图像预处理,如下例所示:

1fc6c8e4e2e8008fd8943f1bd6dcfe9d.gif

多亏尼奎斯特定理(1933年— 弗拉基米尔·科特尔尼科夫(Vladimir Kotelnikov)),我们知道,只要采样速度至少是我们要记录的最高频率的两倍,我们就可以使用数学方法从间隔采样中完美重建原始声波。

Python库

为了完成这个任务,我使用Anaconda环境(Python 3.7)和以下Python库:

  • ipython (v 7.10.2)
  • keras (v 2.2.4)
  • librosa (v 0.7.2)
  • scipy (v 1.1.0)
  • sklearn (v 0.20.1)
  • s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值