【sphinx】sphinx文档学习笔记

时间:2021-09-09 06:08:47

2.4 Which CMUSphinx should I use?

  • 按平台来说,sphinx2可以作为嵌入式平台的选择
  • 按研究来说,如果研究声学模型和快速GMM计算的研究,选sphinx3;如果研究搜索算法,选sphinx4;如果做自适应和声学模型生成,可以用sphinxtrain中的estimation(估计)模块
  • 你的要求真的可行吗?  一般来说,如果没有语言学的限制,识别率会很差。影响系统的主要两个因素是:声学复杂度和语言学复杂度。
  • 建立一个有1000个人名的通讯录系统,难度要超过建立一个3000个词的对话系统,因为人名有很多相似很难区分
  • 为语音识别系统设计语法,可以用ngram和有限状态机。语法不能太少到不足以覆盖所有单词,会产生很多OOV单词。而如果只是盲目的增加新词也不可以。在加入新词之前,需要一些决策和基准。
  • sphinx是一个基于音素的识别工具,识别的过程,就是会建立一个巨大的HMM模型,而搜索就是找到最佳的路径,给出这个hmm模型。
  • 最好的词典中含有的是最适合你的用户的发音,而并非是官方发音。
  • cmu官网上开源的broadcast模型,是来自于140个小时的数据训练。http://www.speech.cs.cmu.edu/sphinx/models/。其中建立语言模型用到的词条有约13w。
  • Adding stress markers degrades perfromance by about 5within-word and cross-word triphone HMMs with
    no skips permitted between states. 开源的broadcast模型中,音素级未标记重音,如果标记饿了,会降低性能。状态之间不允许跳过。
  • HMM模型中的元素:Sphinx’s HMM definition are spread in five different files. They are mean,
    variance, mixture weight, transition matrices and model definition.
  • model definition:模型描述,在model_arch目录中。里面列出了音素个数,对应连接状态个数(音素个数*3),每个音素对应的seenone和状态id
  • 语音识别使用模式有两种:批处理模式(batch mode)和现场模式(Live mode)。前者是提前录好音,做识别。后者是边听边识别。
  • cepstral mean normalization (CMN)-CMN做的事是,估计所有倒谱的均值,从而归一化所有的谱向量。batch mode时候,会用到所有谱来做估计,而live mode时候,每次只有部分词语被看到,所以需要使用别的均值做一个近似。
    • 对一个系统的评估有两种:off-line 和 on line.前者比较客观,使用大量测试样例给出系统性能,后者是实际使用,随机取用一些功能,主观评价系统的好坏。两者都重要。
    • off-line评价,有两个参数:句错误率(SER)和词错误率(WER). SER=错误句子数目/总句子数目,WER=(总词条数目-被替换的词条数目-被丢失的词条数目)/总词条数目。 在计算性能之前会做一下result和test的对齐,用到sclite
    • 一个样例数据:假设一个高斯分布需要100个数据点(100帧),而一个有1000个senone的系统,每个senone需要8个高斯分布代表,则这1000个senone总共需要1000*8*100个帧的数据。也就是总弄800000帧。如果10s=1000帧(这个取决于实际采样率),那么800000帧=8000s,如果录音密度(density)=50%(此处可能是指,一段语音有一半的内容是实际语音,其余内容是静音),则实际需要8000s*2=16000s,也就是约等于6hour的数据。
    • 训练数据同样需要音素平衡,一个有1000个句子,都是hello的数据,其实只有4个音素,而triphone更少。训练中尽量音素占比例保持平衡。
    • 录音中噪音有两种:叠加噪音(环境中的噪音)和卷积噪音(来自于仪器,空气传播)。前者可以被算法解决,不同的应用系统尽量需要不同的录音环境。实际使用环境应该和录音环境一致。桌面应用,应该尽量保证录音环境安静,与录音仪器的距离一致。
    • transcription,录音文本的制作,有基于单词的和基于音素的两种。基于音素的通常用于,研究某些区域的口音。
  • wave2feat阶段,流程:音频进入-》预加重(为何?)-》分帧-》加窗做平移(用加窗,将音频分成一小段的帧,认为在这窗内,是短时平稳的,可以做信号处理)—》傅里叶变换成为数字信号—》从不同维度取谱(用一些不同维度系数作为特征,表征语音)-》变换成为倒谱-》得到特征。
  • 一些参数概念:         
1.采样率
2.窗长
3.窗移动的速度
4.滤波器个数
5.滤波器大小(滤波器内的数据个数
6.滤波器的低频,高频
7.预加重系数
8.谱的个数(特征向量中系数的个数)

 

 

 

   THE CMU SPHINX-4 SPEECH RECOGNITION SYSTEM  学习笔记