记录精彩的程序人生
本项目将分三个阶段分支,分别是入门级 、进阶级 和最终级 分支,当前为最终级,持续维护版本。PPASR中文名称PaddlePaddle中文语音识别(PaddlePaddle Automatic Speech Recognition),是一款基于PaddlePaddle实现的语音识别框架,PPASR致力于简单,实用的语音识别项目。可部署在服务器,Nvidia Jetson设备,未来还计划支持Android等移动设备。
WenetSpeech数据集 包含了10000+小时的普通话语音数据集,所有数据均来自 YouTube 和 Podcast。采用光学字符识别(OCR)和自动语音识别(ASR)技术分别标记每个YouTube和Podcast录音。为了提高语料库的质量,WenetSpeech使用了一种新颖的端到端标签错误检测方法来进一步验证和过滤数据。
PPASR(进阶级)基于PaddlePaddle2实现的端到端自动语音识别,相比入门级,进阶级从三个方面来提高模型的准确率,首先最主要的是更换了模型,这次采用了DeepSpeech2模型,DeepSpeech2是2015年百度发布的语音识别模型,其论文为《Baidu’s Deep Speech 2 paper》 。然后也修改了音频的预处理,这次使用了在语音识别上更好的预处理,通过用FFT energy计算线性谱图。最后修改的是解码器,相比之前使用的贪心策略解码器,这次增加了集束搜索解码器,这个解码器可以加载语言模型,对解码的结果调整,使得预测输出语句更合理,从而提高准确率。
本章我们来介绍如何使用Pytorch训练一个区分不同音频的分类模型,例如你有这样一个需求,需要根据不同的鸟叫声识别是什么种类的鸟,这时你就可以使用这个方法来实现你的需求了。
本章介绍如何使用Tensorflow实现简单的声纹识别模型,首先你需要熟悉音频分类,没有了解的可以查看这篇文章《基于Tensorflow实现声音分类》 。基于这个知识基础之上,我们训练一个声纹识别模型,通过这个模型我们可以识别说话的人是谁,可以应用在一些需要音频验证的项目。不同的是本项目使用了ArcFace Loss,ArcFace loss:Additive Angular Margin Loss(加性角度间隔损失函数),对特征向量和权重归一化,对θ加上角度间隔m,角度间隔比余弦间隔在对角度的影响更加直接。
本章介绍如何使用Pytorch实现简单的声纹识别模型,本项目参考了人脸识别项目的做法Pytorch-MobileFaceNet ,使用了ArcFace Loss,ArcFace loss:Additive Angular Margin Loss(加性角度间隔损失函数),对特征向量和权重归一化,对θ加上角度间隔m,角度间隔比余弦间隔在对角度的影响更加直接。
PPASR基于PaddlePaddle2实现的端到端自动语音识别,本项目最大的特点简单,在保证准确率不低的情况下,项目尽量做得浅显易懂,能够让每个想入门语音识别的开发者都能够轻松上手。PPASR只使用卷积神经网络,无其他特殊网络结构,模型简单易懂,且是端到端的,不需要音频对齐,因为本项目使用了CTC Loss作为损失函数。在传统的语音识别的模型中,我们对语音模型进行训练之前,往往都要将文本与语音进行严格的对齐操作。在传统的语音识别的模型中,我们对语音模型进行训练之前,往往都要将文本与语音进行严格的对齐操作,这种对齐非常浪费时间,而且对齐之后,模型预测出的label只是局部分类的结果,而无法给出整个序列的输出结果,往往要对预测出的label做一些后处理才可以得到我们最终想要的结果。基于这种情况,就出现了CTC(Connectionist temporal classification),使用CTC Loss就不需要进行音频对齐,直接输入是一句完整的语音数据,输出的是整个序列结果,这种情况OCR也是同样的情况。
MASR是一款基于Pytorch实现的语音识别框架,MASR致力于简单,实用的语音识别项目。可部署在服务器,Nvidia Jetson设备,未来还计划支持Android等移动设备。
本项目说是使用Keras,但使用的都是Tensorflow下的keras接口,本项目主要是用于声纹识别,也有人称为说话人识别。本项目包括了自定义数据集的训练,声纹对比,和声纹识别。
本章介绍如何使用PaddlePaddle实现简单的声纹识别模型,本项目参考了人脸识别项目的做法PaddlePaddle-MobileFaceNets ,使用了ArcFace Loss,ArcFace loss:Additive Angular Margin Loss(加性角度间隔损失函数),对特征向量和权重归一化,对θ加上角度间隔m,角度间隔比余弦间隔在对角度的影响更加直接。
本章介绍如何使用Tensorflow实现简单的声纹识别模型,首先你需要熟悉音频分类,没有了解的可以查看这篇文章《基于Tensorflow实现声音分类》。基于这个知识基础之上,我们训练一个声纹识别模型,通过这个模型我们可以识别说话的人是谁,可以应用在一些需要音频验证的项目。
本章我们来介绍如何使用PaddlePaddle训练一个区分不同音频的分类模型,例如你有这样一个需求,需要根据不同的鸟叫声识别是什么种类的鸟,这时你就可以使用这个方法来实现你的需求了。
本章我们来介绍如何使用Tensorflow训练一个区分不同音频的分类模型,例如你有这样一个需求,需要根据不同的鸟叫声识别是什么种类的鸟,这时你就可以使用这个方法来实现你的需求了。话不多说,来干。
目前大部分的手机都有语音助手,例如小米手机的小爱同学,VIVO的小V等等,通过智能助手我们可以快速询一些资讯或者操作手机,例如询问天气,发送微信给你的好友等等。这篇文章就来介绍如何使用AIUI快速搭建类似这样的智能助手。
我们在Android应用做语音识别的时候,一般是用户唤醒之后开始说话。当用户超过一定的时候没有说话,就停止录音,并把录音发送到语音识别服务器,获取语音识别结果。本教程就是解决如何检测用户是否停止说话,我们使用的是WebRTC架构的源代码中的vad代码实现的。 VAD算法全称是Voice Activity Detection,该算法的作用是检测是否是人的语音,使用范围极广,降噪,语音识别等领域都需要有vad检测。webrtc的vad检测原理是根据人声的频谱范围,把输入的频谱分成六个子带:80Hz——250Hz,250Hz——500Hz,500Hz——1K,1K——2K,2K——3K,3K——4K。分别计算这六个子带的能量。然后使用高斯模型的概率密度函数做运算,得出一个对数似然比函数。对数似然比分为全局和局部,全局是六个子带之加权之和,而局部是指每一个子带则是局部,所以语音判决会先判断子带,子带判断没有时会判断全局,只要有一个通过认为是语音。