• 语音识别中的标注问题和嵌入式训练


    什么是嵌入式训练(Embedded Training)?

    序列的标注问题

    机器学习的问题主要分为三类:分类问题,标注问题和回归问题
    标注问题的输入是一个观测序列,输出是一个标记序列或者状态序列。标注问题的一个目标是训练一个模型,使它能够对观测序列给出标记序列和状态序列。
    常用的统计学习方法: 隐马尔科夫模型,条件随机场。
    在信息提取和自然语言处理中,标记问题是常见的基本问题。

    如何标注

    在进行语音识别的时候,我们不知道语音的哪一个部分对应的是哪一个音素或者词。首先想到的是,人为给它打上标签,即每一个音频中的因素或者词都根据发音字典等等被手动分开和标记。然而实际情况中由于工作量太大而无法操作,这就需要一个方法能够自动切分音素或者词。
    最常见的实现方式可以参考下图:
    p
    图中展示的主要是两部分:
    (1)根据字典建立隐马尔科夫模型;
    这个模型定义了一些反映发音的隐状态
    (2)特征提取
    提取MFCC特种

    接下来最重要的是如何训练得到HMM的参数问题?即如何得到转移矩阵和发射概率。
    一个高效的训练方法是直接使用Viterbi解码算法训练,这种训练方法的另外一种叫法是维特比对齐或者强制对齐(forced alignment)。

    为什么叫嵌入式训练

    p2
    因为每一个发音都嵌在整个句子中,作为训练的一部分,所以把这个训练过程叫做嵌入式训练。

    嵌入式训练的过程

    (1)建立句子的HMM模型
    (2)初始化转移概率A
    (3)使用训练集的均值和方差初始化发射概率B
    (4)使用Viterbi算法训练,得到B
    这种训练方法的基本思路是:在知道词对应的观测状态下,直接设定转移概率强制Vertibi解码时通过确定的词。

    嵌入式训练的结果

    这个训练的目的就是为了把音频信号与我们的特征一一对应,也就是对齐,为后面的识别做准备。


    Pelhans 语音识别笔记 (五) http://pelhans.com/2018/01/14/deepspeech-mfcc/
    语音识别 Embedded Training
    https://blog.csdn.net/dearwind153/article/details/56277667

  • 相关阅读:
    PHP中判断变量为空的几种方法小结
    linux mysql字符编码问题
    php连接access数据库的三种方法
    js 一个关于图片onload加载的事
    shell脚本修复MySQL主从同步
    【Median of Two Sorted Arrays】cpp
    【Search In Rotated Sorted Array】cpp
    【Remove Duplicates from Sorted Array II】cpp
    【Remove Duplicates from Sorted Array】cpp
    Python刷题到底为止-开始cpp刷题
  • 原文地址:https://www.cnblogs.com/siucaan/p/9623169.html
Copyright © 2020-2023  润新知