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/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 语音识别是以语音为研究对象,通过语音信号处理和模式识别让机器自动识别和理解人类口述的语言。语音识别技术就是让机器通...
    郭少悲阅读 27,264评论 2 40
  • 承接前面的《浅谈机器学习基础》、《浅谈深度学习基础》和《浅谈自然语言处理基础》,主要参考了《解析深度学习:语音识别...
    我偏笑_NSNirvana阅读 23,752评论 6 66
  • 车机从WinCE逐步进化到Android,从不能通讯到带4G通讯,随之带来了一系列的新技术的应用。今天就来介绍当前...
    天楚锐齿阅读 4,478评论 0 7
  • 这一篇文章其实是参考了很多篇文章之后写出的一篇对于语言模型的一篇科普文,目的是希望大家可以对于语言模型有着更好地理...
    云时之间阅读 4,519评论 2 8
  • 1.如何描述语音 2.如何理解语音的构成 3.语音如何识别 语音的基本概念 语音是一个复杂的现象。我们基本上不知道...
    Major术业阅读 4,159评论 0 8