CMU Sphinx 语音识别入门:语音识别基本概念

   CMU Sphinx是目前语音识别技术中比较热门的开源技术之一。CMU Sphinx 是一款源于卡内基梅隆大学的产品。它的研发历史大约可以追溯到1988年李开复的一篇论文,目前在 GitHub 和 SourceForge 平台同步更新。在 GitHub 平台有 C 和 Java 两个版本,而且据说分别只有一个管理员维护。但在 SourceForge 平台却有 9 个管理员和十几个开发者。CMU Sphinx 具有包括普通话、英语、法语、西班牙语和意大利语在内的诸多语音可以直接使用的模型。
   在介绍如何使用CMU Sphinx之前,先简单了解一下语音识别的相关概念。

Structure of speech

  在目前的实践中,语音结构可以理解如下:
  语音是一种由稳定状态和动态变化的状态混合而成的连续音频流(audio stream)。在这一系列状态中,可以对声音和音素定义若干相似的类别。声波往往由语音内容,发言者和发音方式等各种音素决定。

Recognition process

  识别语音的一般方法如下:针对一段声波,使用沉默将其分割成若干短发音,然后试着去识别每段发音中的内容。为此,可以用尽可能的单词组合去匹配音频,然后选出最佳的匹配方案,作为语音识别的结果。
  在这个匹配过程中几个比较重要的概念。首先介绍“特征”的概念。首先语音需要被分解成一系列“帧”,每10毫秒一帧,然后对于每一帧,提取39个数字来表征该段语音,这39个数字称之为“特征向量”。如何从音频的每帧中提取数字是个广泛研究的话题,一种简单的方式就是由声谱衍生出来。
  接下来介绍一下“模型”的概念。模型是一种汇集了语音的共同属性的数学模型。实际应用中,一个音素的声学模型往往是其最可能的特征向量的高斯混合模型。该语音模型通常称之为隐马尔可夫模型( Hidden Markov Model,HMM),HMM是语音识别领域中一种常用的模型。
  然后就是“匹配过程”的概念,匹配过程是将特征向量与所有坑你的模型进行比较,然后得出最佳的匹配方案。

Models

  根据语音的结构,语音识别过程中需要用到三种不同的模型。

  1. 声学模型(Acoustic Model )
      声学包含每个语素的声学特性。声学模型主要分为:内容独立的模型(每段发音的特征向量)和内容依赖的模型(基于音素和内容构建的模型)。
  2. 拼音字典(Phonetic Dictionary)
      拼音字典包含了单词与发音之间的映射。当然,这种映射并不是一直有效的。例如,其中只有两到三个发音变体。但是,这种映射大部分时间都很实用。字典映射并不是映射文字和发音的唯一方式,也可以使用机器学习算法学习得出的一些复杂的函数。
  3. 语言模型(Language Model)
      语音模型主要用于约束单词的检索范围。它定义了那些单词可以在之前识别出来的单词的额后面,并通过去掉不可能的词来显著地约束匹配过程。语音模型通常限制了语音识别的词汇表,不出现在语音模型中的词汇往往不会被识别出来。
      在一个语音引擎中,这三个模型是绑在一起的。针对一个新语音,需要同时构建这三个不同的模型。

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

你可能感兴趣的:(CMU Sphinx 语音识别入门:语音识别基本概念)