语音识别基础篇(一) - CMU Sphinx简介

版权声明:本文为itas109原创文章,未经允许不得转载引用或用于商业用途。【http://blog.csdn.net/itas109】【[email protected]】 https://blog.csdn.net/itas109/article/details/78568591
如需转载请标明出处: http://blog.csdn.net/itas109 

QQ技术交流群:129518033


CMU Sphinx(简称Sphinx) 是美国卡内基梅隆大学开发的一系列语音识别系统的总称。 在2000年,卡内基梅隆的Sphinx小组致力于开源几个语音识别器组件,包括Sphinx 2和后来的Sphinx 3(2001年)。 语音解码器带有声学模型和示例应用程序。可用资源包括声学模型训练软件,语言模型编辑软件和语音词典cmudict。

1.软件部分

CMU Sphinx是一个领先的语音识别工具包,具有用于构建语音应用程序的各种工具。 CMU Sphinx包含许多用于不同任务和应用程序的开发包。 有时候,选择什么是令人困惑的。 下面来介绍一下每个开发包的用途:

  • Pocketsphinx — lightweight recognizer library written in C  (C语言开发的轻量级语音识别引擎)
  • Sphinxtrain — acoustic model training tools (声学模型训练工具)
  • Sphinxbase — support library required by Pocketsphinx and Sphinxtrain (Pocketsphinx和Sphinxtrain的基础类库 
  • Sphinx4 — adjustable, modifiable recognizer written in Java (Java语言开发的可调节、可修改的语音识别引擎)

 在线生成语言模型和词典的工具 http://www.speech.cs.cmu.edu/tools/lmtool-new.html 


 2017年11月18日最新的软件版本为5prealpha

  最新的源代码http://github.com/cmusphinx


  支持的操作系统:Windows、Linux、MAC


  支持的开发语言:C/C++、Java、Python

2.模型部分

  模型包括声学模型( acoustic model )、语言模型( language model )、拼音字典( phonetic dictionary )

  声学模型包含每个句子的声学特性。 存在与上下文无关的模型,其包含属性(每个音素的最可能的特征向量)和依赖于上下文的(从具有上下文的语音建立的)属性。

  语言模型用于限制单词搜索。它定义了哪些单词可以遵循以前识别的单词(记住,匹配是一个顺序过程),并通过剥离不可能的单词来帮助显着限制匹配过程。最常用的语言模型是 n-gram语言模型 - 它们包含单词序列的统计数据和有限状态语言模型 - 它们通过有限状态自动化(有时具有权重)来定义语音序列。为了达到很高的准确率,您的语言模型必须在搜索空间限制方面非常成功。这意味着它应该很好地预测下一个单词。语言模型通常会限制考虑到它所包含的单词的词汇。这是名称识别的一个问题。为了解决这个问题,一个语言模型可以包含像子词甚至音素这样的小块。请注意,这种情况下的搜索空间限制通常较差,相应的识别精度低于基于单词的语言模型。

  语音词典包含从单词到音素的映射。 这个映射不是很有效。 例如,只有两到三个发音变体被记录在其中。 但是,大多数情况下它是足够实用的。 词典不是将单词映射到电话的唯一方法。 您也可以使用一些机器学习算法学到的复杂功能。

  模型下载地址: Download models
  其 Mandarin为中文普通话,下载下来之后我们可以看到
  声学模型: zh_broadcastnews_16k_ptm256_8000.tar.bz2
  语言模型: zh_broadcastnews_64000_utf8.DMP
  拼音字典: zh_broadcastnews_utf8.dic

zh_broadcastnews_ptm256_8000目录结构
├──  feat.params   //HMM 模型的特征参数
├──  mdef   // 模型定义文件(为每个即将进行训练的 HMM 的每一状态定义一个独特的数字标识)
├──  means  // 混合高斯模型的均值
├──  mixture_weights   // 混合权重
├──  noisedict    // 噪声也就是非语音字典
├──  sendump  // 用来从声学模型中获取 mixture_weights 文件的?
├──  transition_matrices  //HMM 模型的状态转移矩阵
└──  variances  // 混合高斯模型的方差

其他的中文声学模型还有tdt_sc_8k,该模型可以在pocketsphinx-0.8-win32中找到。


Reference

https://en.wikipedia.org/wiki/CMU_Sphinx

http://www.speech.cs.cmu.edu/sphinx

https://cmusphinx.github.io

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

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

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

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

http://blog.csdn.net/zouxy09/article/details/7942784


觉得文章对你有帮助,可以用微信扫描二维码捐赠给博主,谢谢!



 如需转载请标明出处:http://blog.csdn.net/itas109 

QQ技术交流群:12951803


猜你喜欢

转载自blog.csdn.net/itas109/article/details/78568591
CMU