zoukankan      html  css  js  c++  java
  • 训练与解码

    BW算法是对某一个HMM(一个音素)进行训练,需要该HMM对应的观察向量(一段音频),如何让一段文本中的某个音素找到对应一整段音频中的一小段音频?需要用到对齐来找到所有的[音素-音频]的配对。

       

    训练时也需要解码

    1,设训练的一句话有n个音素,即n个HMM,即3n个状态。将这句话对应的音频平均地切分为n个片段(无环回的HMM),每个片段有3个状态(无环回,否则一个HMM大于三个状态)

    2,使用k-means算法,将每个状态对应的所有特征向量聚类为M个簇(这句话有3nM个簇)

    3,为状态i中的每个簇计算均值、协方差矩阵和混合权重(即计算一个GMM,这句话有3nMGMM)

    4,用3中计算好的所有GMMs(3nM个)将这一段音频解码(维特比解码)为多个状态,多个HMM

    5,重复上述2-4步直至收敛

       

    hmm_chinese.pdf p59

    在训练时用的是Viterbi算法,在识别时则用状态Viterbi算法处理状态级数据,用词汇Viterbi算法处理词汇级数据

       

    识别过程

    不考虑句法时,识别过程很类似连接词识别中的一次通过算法

    将词汇表中所有词对应的所有音素的所有状态排成一排,读入一个待识别句子的语音数据,由维特比算法可得到一个最佳状态序列。得到状态序列后,可通过类似编译原理中的文法来得到对应的HMM序列。

       

    声学模型(HMMs)表示的是各词内状态之间的转移

    语言模型(n-gram)表示的是词之间的转移概率关系

       

    解码时需要用到状态Viterbi算法和词汇Viterbi算法

       

    一句话的识别过程需要在状态层与词汇层之前不断切换,状态层:为当前状态选择概率最大的几个下一状态,直至词的最后状态处;词汇层:为当前词选择概率最大的几个下一词。这样直至这句话的结尾,就得到了多条路径,每条路径包含两个信息:累积概率和回溯路径,选择多条路径中累积概率最大的那条路径,使用其回溯路径进行回溯,就得到了该句子的识别结果。

  • 相关阅读:
    86. Partition List
    2. Add Two Numbers
    55. Jump Game
    70. Climbing Stairs
    53. Maximum Subarray
    64. Minimum Path Sum
    122. Best Time to Buy and Sell Stock II
    以场景为中心的产品设计方法
    那些产品经理犯过最大的错
    Axure教程:如何使用动态面板?动态面板功能详解
  • 原文地址:https://www.cnblogs.com/JarvanWang/p/7499575.html
Copyright © 2011-2022 走看看