写在前面

最近做声纹识别,需要用到语音识别的知识,在此记录一下。

DNN-HMM步骤:

  • 帧长切分, 提取特征(MFCC)
  • GMM-HMM进行alignment对齐; 对每一帧进行聚类(音素总数), 获得每帧属于各个音素的概率; HMM进行解码搜索, 获得每一帧最优音素表示序列
  • DNN-HMM; 每一帧(多帧)作为DNN输入, GMM似然值(音素标签)作为输出; 训练DNN参数, …

GMM-HMM中的HMM

  • 观察状态序列: 语音中的每一帧; 词性标注中的词串
  • 隐藏状态序列: 语音每一帧对应的音素; 词性标注中每个词对应的词性标签
  • 状态转移矩阵: 语音中音素之间的转移概率(数据集计算, GMM-HMM计算??); 词性标注中词性之间的转移概率
    • 发射概率矩阵: 语音中各个音素发射为每一帧的概率(GMM似然值, GMM-HMM获得概率输入DNN进行反向传播); 词性标注中每个词性发射为每个词的概率
      Ref paper

    • HMM学习问题
      给定 λ = ( π , A , B ) \lambda = (\pi, A, B) λ=(π,A,B)
      O t O_t Ot: 帧
      S i S_i Si: 音素(隐藏状态), 隐藏状态序列待求
      a i j a_{ij} aij: 音素 i , j i,j i,j之间的转移概率
      b i ( O t ) b_{i}(O_t) bi(Ot): 音素 i i i发射为 O t O_t Ot帧的概率
      Baum-Welch算法(EM)计算 A , B A, B A,B
      (训练集上给定音素序列, 可以使用Viterbi算法计算, 进行forced alignment, 然后可以使用EM重复训练)

    • EM算法求解HMM

force alignment

给定音素序列(phoneme), 根据每一帧的GMM似然值,
GMM-HMM -> DNN-HMM -> DNN-HMM迭代进行强制对齐.

embeded training

除了将词拆分为音素训练(embeded training), 也可以直接使用整个词(Whole word)进行训练

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐