简述CMUSphinx的基本概念和几个工具包的区别

今天再重新仔细了解CMUSphinx的基本概念和几个工具包的区别

基本概念

    探测器Senones

各种声音探测器可由少量不同的短声音探测器表示。我们使用4000个不同的短声音探测器来组成三音素探测器。我们将这些探测器称为Senones。Senones对上下文的依赖可能比左右上下文更复杂。它可以是由决策树或其他方式定义的相当复杂的函数

    最佳匹配过程

    首先,它是功能的概念。由于参数的数量很大,我们正在尝试对其进行优化。通过将语音划分为帧而从语音计算的数字。然后,对于通常为10毫秒长度的每个帧,我们提取39个代表语音的数字。这被称为特征向量。生成参数数量的方法是一个积极调查的主题,但在一个简单的情况下,它是光谱的衍生物。

    其次,它是模型的概念。模型描述了一些收集说出的单词的共同属性的数学对象。在实践中,对于Senone的语音模型来说,它是三种状态的高斯混合 - 简单来说,它是最可能的特征向量。从模型的概念出发,提出以下问题:

1.该模型如何描述现实

2.这个模型可以更好地利用它的内部模型问题

3.如果条件发生变化,模型的适应性如何

    语音模型称为隐马尔可夫模型或HMM。它是描述黑盒通信通道的通用模型。在该模型中,过程被描述为以一定概率彼此改变的状态序列。此模型旨在描述任何顺序过程,如语音。HMM已被证明对语音解码非常实用。

    第三,它本身就是一个匹配过程。由于将所有特征向量与所有模型进行比较需要比宇宙存在更长的时间,因此通常通过应用许多技巧来优化搜索。在任何时候我们都会保持最佳匹配变量,并随着时间的推移扩展它们,为下一帧产生最佳匹配变体。

    模型

根据语音结构,语音识别中使用三种模型进行匹配:

一个声学模型包含每个句音声学特性。有与上下文无关的模型包含属性(每个音节最可能的特征向量)和依赖于上下文的属性(从带有上下文的senones构建)。

一个语音字典包含话音节的映射。这种映射不是很有效。例如,其中仅注意到两到三个发音变体。但是,大部分时间它都很实用。字典不是将单词映射到音节的唯一方法。您还可以使用通过机器学习算法学习的一些复杂函数。

一个语言模型用于限制单词搜索。它定义哪个单词可以跟随先前识别的单词(记住匹配是一个顺序过程),并通过剥离不可能的单词来帮助显着限制匹配过程。最常见的语言模型是n-gram语言模型 - 这些模型包含单词序列和有限状态语言模型的统计 - 这些模型通过有限状态自动化定义语音序列,有时使用权重。要达到良好的准确率,您的语言模型必须在搜索空间限制方面非常成功。这意味着它应该非常善于预测下一个单词。语言模型通常会限制考虑其包含的单词的词汇。这是名称识别的问题。为了解决这个问题,语言模型可以包含较小的块,如子词甚至音节。

    这三个实体在引擎中组合在一起以识别语音。如果您要将引擎应用于其他语言,则需要使用此类结构。对于许多语言,可以下载声学模型,语音词典甚至大词汇量语言模型。

工具包的区别

    CMUSphinx包含许多用于不同任务和应用程序的包。有时,令人困惑的是选择什么。为了阐明工具包的各个部分,这里有一个列表:

Pocketsphinx - 用C编写的轻量级识别器库——一般嵌入式设备上运行

Sphinxbase - Pocketsphinx所需的支持库

Sphinx4 - 用Java编写的可调整,可修改的识别器——一般基于Web的识别

Sphinxtrain - 声学模型训练工具

资源

测试集为任何语音识别应用程序的一个关键问题。测试集在声学和语言方面应具有足够的代表性。另一方面,测试集不一定需要大,你可以花十分钟创建一个好的。这可能是你自己可以做的几个录音。

对于训练集和模型,您应该检查已经存在的资源。对语音技术越来越感兴趣,人们通过为他们的母语创建模型来做出贡献。通常,您必须收集指定语言的音频素材。实际上它并不复杂。有声读物,电影和播客提供了足够的录音,可以轻松地构建一个非常好的声学模型

要构建一个语音字典,您可以使用现有的TTS合成器之一,它现在涵盖了很多语言。您也可以手动提升字典,然后使用机器学习工具进行扩展。

对于语言模型,您必须为您的域找到大量文本。它可能是教科书,已经转录的录音或其他来源,如在网络上抓取的网站内容。

基于语音字典和语言模型需要大量的数据,本实验采用现有的语音字典和语音模型,主要进行对声学模型进行训练

你可能感兴趣的:(简述CMUSphinx的基本概念和几个工具包的区别)