食物声音识别Task6
作者:互联网
01 语音识别基础与发展
1.1 语音识别基础
语音识别全称为“自动语音识别”,Automatic Speech Recognition (ASR), 一般是指将语音序列转换成文本序列。语音识别最终是统计优化问题,给定输入序列O={O1,...,On},寻找最可能的词序列W={W1,...,Wm},即寻找使得概率P(W|O)最大的词序列。用贝叶斯公式表示为:
1.2 语音识别的发展
-
传统机器学习,基于统计的GMM-HMM,其中HMM (隐马尔可夫模型,Hidden Markov Model)用来描述信号动态特性(即语音信号相邻帧间的相关性),GMM(高斯混合模型,Gaussian Mixed Model)用来描述HMM每个状态的静态特性(即HMM每个状态下语音帧的分布规律);
-
与深度学习结合,DNN-RNN、DNN-HMM,可引入LSTM(长短期记忆网络,Long Short-Term Memory),DNN(深度学习网络,Deep Neural Networks),RNN(循环神经网络,Recurrent Neural Network);
-
迁移学习(Transfer learning)算法、以及注意力(Attention)机制的基于语音频谱图的CNN(卷积神经网络,Convolutional Neural Network)模型的兴起。
02 语音识别方法
语音识别系统在长久的发展中形成了完整的流程(从前端语音信号处理,到声学模型和语言模型的训练,再到后端的解码),而深度学习方法较多地作用于声学模型和语言模型部分(或者端对端模型)。其中,前端的语音信号处理我们在task3中有所涉及,这里就不再赘述这部分了。
接下来我们将分别从“声学模型”、“语言模型”、“端到端模型”等模块简要介绍语音识别的基本实现方法。
2.1 声学模型
在今天的主流语音识别系统中,声学模型是一个混合(hybrid)模型,它包括用于序列跳转的隐马尔可夫模型(HMM)和根据当前帧来预测状态的深度神经网络。
2.2 语言模型
语言模型要解决的问题是如何计算 P(W),常用的方法基于 n 元语法(n-gram Grammar)或RNN。
2.3 解码器
我们的最终目的是选择使得 P(W|O) = P(O|W)P(W) 最大的 W ,所以解码本质上是一个搜索问题,并可借助加权有限状态转换器(Weighted Finite State Transducer,WFST) 统一进行最优路径搜索.
2.4 基于端到端学习的方法
由于语音与文本的多变性,起初我们否决了从语音到文本一步到位的映射思路。但今天再回过头来看这个问题。假设输入是一整段语音(以帧为基本单位),输出是对应的文本(以音素或字词为基本单位),两端数据都处理成规整的数学表示形式了,只要数据是足够的,选的算法是合适的,兴许能训练出一个好的端对端模型,于是所有的压力就转移到模型上来了,怎样选择一个内在强大的模型是关键。深度学习方法是端对端学习的主要途径。 端对端学习需要考虑的首要问题也是输入输出的不定长问题。
03 语音识别的应用与开发工具
3.1 语音识别的应用
- 关键词检出(KWS,Keyword Spotting)、唤醒词检测(Wake-up Word Detection,WUW),比如天猫精灵、小爱同学、hey sari、你好小娜;
- 声纹检测(VR,Voiceprint Recognition)、说话人识别 (SR,Speaker Recognition),比如hey sari只能被手机主人唤醒;
- 语音识别(SR,Speech Recognition)、语种识别(Spoken Language Recognition)、情绪识别(Spoken Emotion Recognition, SER),比如输入法的文字输入,与sari、天猫精灵交流等;
- 语音合成(TTS,Text To Speech),将sari、天猫精灵的回复通过语音的形式播放;
3.2 语音识别的开发工具
深度学习平台
平台名称 | 初始开发者 | 主要特点 |
---|---|---|
TensorFlow | 高效的产品部署,已集成Keras | |
PyTorch | 动态图、适合科研,已集成Caffe2 | |
MXNet | Apache软件基金会 | 可扩展性强,Amazon云支持 |
CNTK | Microsoft | Azure云集成简单 |
PaddlePaddle | 百度 | 模型库丰富,官方支持 |
语音识别开发工具
工具名称 | 依托的深度学习平台 | 支持的模型结构 |
---|---|---|
mozilla/DeepSpeech | TensorFlow | RNN+CTC |
kaldi-asr/kaldi | - | GMM/CNN/LSTM/TDNN-HMM/LF-MMI/RNNLM |
facebook-research/wav2letter | - | CTC/Attention/AutoSegCriterion |
espnet | Chainer/PyTorch | CTC/Attention/DNN-HMM/RNN-T |
NVDIA/OpenSeq2Seq | Tensorflow | CTC/Attention |
04 语音识别相关开源学习资料
4.1 开源数据集
- 清华中文语音数据集THCHS-30
- 希尔贝壳中文普通话语音数据库AISHELL-2
- 中国明星声纹数据集 CN-Celeb2
- kaldi中免费的数据集(中文跟英文)
- Google发布的语音分离数据集
- 好未来开源近600小时中英文混合语音数据集
- 字节跳动发布全球最大钢琴MIDI数据集
- 中英文NLP数据集搜索库:CLUEDatasetSearch
4.2 开源语音识别项目
- https://github.com/kaldi-asr/kaldi
- https://github.com/SeanNaren/deepspeech.pytorch
- https://github.com/srvk/eesen
- https://github.com/Uberi/speech_recognition
- https://github.com/xxbb1234021/speech_recognition
标签:食物,Task6,模型,学习,HMM,语音,识别,Recognition 来源: https://blog.csdn.net/flyingfox023/article/details/116035429