语音识别基本概念

这篇文章主要是对CMU Sphinx系列教程的第一篇文章的主要内容做一些总结。学习某个知识,掌握这些知识的基本概念是必要的。不了解这些基本概念和他们的英文表述,对于代码(kalid)和论文的阅读都会存在一些障碍。对这些基本概念是否了解,是检验一个人是否入门语音识别的一个标志。

原文如下:

https://cmusphinx.github.io/wiki/tutorialconcepts/

语音构成

image

语音是一个连续的音频流,由大部分的稳态和小部分的动态组成,怎么对它进行建模呢。

语音可以认为是由多个词(word)构成,而每个词又是由多个音素(phones,在语言学中也称为 phonemes)构成。一个音素对应的波形(wave form)的声学特征的变化会受上下文,说话人等影响。需要被放到上下文中进行考虑,音素与音素相邻(过渡)部分可能比稳定部分蕴含更多的信息。所以,我们把一个音素分为几个不同的子状态(substates)。这就是多音素建模的思想。这些在上下文中的音素被称为三音素(triphones)甚至是五音素。三音素是常用的,对于三个状态也很好解释,音素的第一部分依赖于它的前一个音素,中间的是稳定的自身的部分,第三部分依赖于它的下一个音素。

波形中除了语音还有其他非语音的声音(non-linguistic sounds),这些声音又被称为填充物(filler)。语音和非语音一起构成了语音片段(utterances)。在语音识别中,一个帧长可以认为是一段utterances。目前通用的语音识别方式如下:有一段波形,通过静音(silences)将它分割成若干个语音片段(utterances),然后识别每一个语音片段说的是什么

特征

用帧frames去分割语音波形,从帧提取特征,一般使用MFCC或FBANK

模型

在语音识别中有3个模型

1. 声学模型(acoustic model) 

表示某段语音是某个词或音素的概率。现在一般使用神经网络

2.发音词典(phonetic dictionary)

发音字典包含了从词到音素的映射关系。

3.语言模型(language model)

语言模型用于限制词的搜索范围。定义了哪个词可以跟在前一个已经被识别出来的词的后面。最广泛使用的语言模型就是n-gram语言模型

解码器

解码器就是对以上3个模型构成的Lattice进行搜索匹配。一般使用WFST。Lattice是用于表示所有识别可能的有向图(directed graph)

特征、模型和解码器三部分构成了一个语音识别系统。

评价指标

-词错误率(Word error rate)

假设我们有一个原始的文本以及长度为N个词的识别文本。I是插入词(inserted words)的数量,D是删除词(deleted words),S表示替换词(substituted words)

WER=(I+D+S)/N

-准确率(Accuracy) 

Accuracy=(N−D−S)/N

-实时率(real time factor) 

度量自动语音识别系统解码速度的值。当实时率等于或小于1时我们说该处理是实时的。详见百度百科:https://baike.baidu.com/item/rtf/15874401?fr=aladdin

-ROC曲线

对于一个检测任务,检测会出现误报和命中两种情况。ROC曲线就是用来评价检测性能的。

 

参考文献

1. https://blog.csdn.net/xm1076709179/article/details/82218262

2. https://blog.csdn.net/zouxy09/article/details/7941055

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值