其他分享
首页 > 其他分享> > 语音识别

语音识别

作者:互联网

目录

背景

语音识别 ( Automatic Speech Recognition, ASR ) 技术是语音交互领域中发展最快,同时是语音相关任务中最有挑战也是最重要的技术之一。

基本概念

语音识别的任务主要是将语音转成对应的文字,其输入信号是一段音频信号,输出是对应的文字序列。
在这里插入图片描述
ASR可以认为是一个搜索过程,给定输入特征X的情况下,搜索出最有可能的词序列W。

一般流程

在这里插入图片描述
系统主要包含特征提取、声学模型,语言模型以及字典与解码四大部分。

预处理常用方法

声学模型

(一)多样性问题

(二)语音识别任务的指标

语言模型

在语音识别的语言模型中,最常用的是语言模型,换句话说就是要计算一个序列(句子)出现的概率。
语言模型主要用来决定哪个词序列概率更大,或者根据前一个或几个词的情况下预测最有可能的下一个词。

解码器

采用维特比算法(Viterbi),综合声学模型与语言模型的结果,给定输入特征序列,找出最有可能的词序列,利用起始概率、转移概率、发射概率寻找全局最优的词序列。

工作原理

(一)分析声音

在这里插入图片描述
图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为以帧长25ms、帧移10ms分帧。分帧后,语音就变成了很多小段。

(二)提取特征

波形在时域上几乎没有描述能力,因此必须将波形作变换。
把每一帧波形变成一个多维向量,简单地理解为这个向量包含了这帧语音的内容信息。
这个过程叫做声学特征提取。

在这里插入图片描述
至此,声音就成了一个12行、N列的一个矩阵,这里N为总帧数。图中,每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。

(三)识别音素和状态(声学模型)

音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。
状态:比音素更细致的语音单位。通常把一个音素划分成3个状态。
在这里插入图片描述

每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了。

识别文字(语言模型+ 解码器)

在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,这称之为“解码”。路径搜索的算法是一种动态规划剪枝的算法,称之为Viterbi算法,用于寻找全局最优路径。

比如:我和你、我河你。

深度学习方法

发展

语音识别本质上是一个序列识别问题,如果模型中的所有组件都能够联合优化,很可能会获取更好的识别准确度,所以我们需要一种端到端(End2End)的语音识别处理系统。

先前的模型包括了特征提取、声学模型,语言模型等模块,是一个pipeline的系统,而end-to-end从输入到输出只用一个算法模型,输入是语音信号,输出就是最终的词序列的结果。

常用的端到端的语音识别模型为基于CTC ( Connectionist Temporal Classification ) 和基于attention机制的模型。

一个基于CTC的语音识别的典型例子:深度学习语音识别框架DEEPSPEECH(2016年)。

基于attention机制的端到端训练语音识别模型也逐渐成为了主流。
Attention机制最早应用在机器翻译领域,实现了从一种语言序列变化到另一种语言序列。
语音识别领域和机器翻译领域非常相似,前者是从语音信号的序列到输出文字的序列,而后者是从一种语言的文字序列到另一种语言文字的序列。

语音识别中使用attention机制的算法模型被称为Listen-Attend-Spell(LAS)模型。Listen部分是一个encoder,把声学信号转换成embedding向量, Attend为转换后向量的权重,Spell部分是一个decoder,把向量转换成对应的文字序列。

Attention模型和CTC模型最主要的区别是,基于神经网络对输出序列的历史信息做了显式的建模。

基于transfomer的语音识别模型

在NLP领域,输入是一段文字,通常的做法会把输入的文字通过embedding的方式转换成连续的向量。
在语音识别中,如果引入Transformer模型,通过会使用几个卷积层来实现downsampling,然后通过transformer模型映射到输出的文字序列,从而加入模型的收敛。
在这里插入图片描述

语音数据集

标签:识别,模型,声学,语音,序列,音素
来源: https://blog.csdn.net/weixin_45114252/article/details/110742455