The PyTorch-Kaldi Speech Recognition Toolkit
PDF: https://arxiv.org/pdf/1811.07453.pdf
代码: https://github.com/mravanelli/pytorch-kaldi
文档: http://fancyerii.github.io/books/pytorch-kaldi/

1 概述

Kaldi目前是最受欢迎的ASR工具包。使用C++和各种脚本来实现最先进的语音识别系统, Kaldi包括一全套使用方法,涵盖了所有最流行的语音语料库。但是Kaldi并不是一个通用的深度学习框架,如果要用深度神经网络来替代GMM的声学模型,就得自己用C++代码实现神经网络的训练与预测,比较容易出错。

PyTorch-Kaldi项目的重点是在弥合Kaldi和PyTorch之间的间隙。我们的工具包在PyTorch中实现声学模型,同时使用Kaldi执行特征提取,标签/对齐计算和解码,使其适合开发最先进的DNN-HMM语音识别器。 PyTorch-Kaldi本身支持多种DNN,CNN和RNN模型。还支持深度学习模型,声学特征和标签之间的组合,从而能够使用复杂的神经架构。

2 PyTorch-Kaldi 结构


主要脚本run_exp.py是用python编写的,用于管理ASR系统中涉及的所有阶段,包括特征和标签提取,训练,验证,解码和评分。

2-1 Configuration file

主脚本将INI格式中的配置文件作为输入,它由几部分组成。

  • [Exp] 部分指定了一些高级信息,例如用于实验的文件夹,训练时期的数量,随机种子。它还允许用户指定是否必须在CPU,GPU或多个GPU上进行实验。
  • [dataset] 部分表示,它用于指定有关要素和标签的信息,包括存储它们的路径,上下文窗口的特征以及必须分割语音数据集的块数。
  • [architechure] 部分定义神经网络模型,
  • [model] 部分定义这些神经网络的组合方式。
  • 后一部分开发了一种由run_exp.py脚本自动解释的简单元语言。
  • [decoding] 部分中定义解码参数的配置文件

2-2 Features

  • 使用Kaldi原生提供的C++库(例如,compute-mfcc-feats,compute-fbank-feats,compute-plp-feats)执行特征提取,有效地提取最流行的语音识别特征。
  • 计算出的系数存储在二进制存档(扩展名为.ark)中,
  • 使用kaldi-io实用程序导入到python环境中。
  • 通过函数load-chunk处理这些特征,该函数执行上下文窗口组合,移动以及均值和方差归一化。
  • PyTorch-Kaldi可以管理多个特征流。

2-3 Labels

  • 用于训练声学模型的主要标签源自语音特征与音素状态序列之间的强制对齐过程,而这种序列是由Kaldi用语音决策树计算的且依赖于上下文。
  • 为了实现多任务学习,PyTorch-Kaldi支持多个标签。

2-4 Chunk and Mini-batch Composition

PyTorch-Kaldi自动将整个数据集拆分为多个块,这些块由从完整语料库中随机抽样的标签和特征组成。然后将每个块存储到GPU或CPU存储器中并由神经训练算法run_nn.py运行处理。该工具包在每个时期动态地组成不同的块。然后从它们中获得一组小批量的数据集。小批量集合由少数用于梯度计算和参数优化的训练样例组成。

小批量集的聚集方式很大程度上取决于神经网络的类型。对于前馈模型,小批量集由随机移动特征和从块中采样的标签组成。对于周期性网络,小批量集合必须由完整的句子组成。然而,不同的句子可能具有不同的持续时间,使得制作相同大小的小批量集合需要零扩充。 PyTorch-Kaldi根据它们的长度按升序对语音序列进行排序(即,首先处理短句)。这种方法最大限度地减少了零扩充的需要,并证明有助于避免批量标准化统计数据的可能偏差。

2-5 DNN acoustic modeling

每个小批量集由PyTorch实现的神经网络来处理,该神经网络将特征作为输入,并将依赖于上下文的音素状态上的一组后验概率作为输出。该代码旨在轻松插入自定义模型。可以通过在neural_nets.py中添加新类来简单地定义新模型。该类必须由通过初始化指定参数的初始化方法,以及定义要执行的计算的正向方法组成。

2-6 Decoding and Scoring

在基于反馈HMM的Kaldi解码器之前,由神经网络产生的声学后验概率被它们的先验概率归一化了。解码器将声学分数与由n-gram语言模型导出的语言概率合并,并尝试使用波束搜索算法检索在语音信号中发出的单词序列。使用NIST SCTK评分工具包计算最终的字错误率(WER)分数。

The PyTorch-Kaldi Speech Recognition Toolkit相关推荐

  1. Kaldi学习笔记——The Kaldi Speech Recognition Toolkit(Kaldi语音识别工具箱)(上)

    最近看了有关KALDI的论文,在这里介绍一下. Abstract: We describe the design of Kaldi, a free, open-source toolkit for s ...

  2. 语音识别系列1:语音识别Speech recognition综述

    名词约定: 语声识别----- VOICE RECOGNITION 语音识别-----SPEECH RECOGNITION 1 什么是语声识别VOICE RECOGNITION? 语音或说话者识别是程 ...

  3. word2vec, LSTM Speech Recognition实战, 图数据库

    word2vec word2vec是Google于2013年开源推出的一个用于获取word vector的工具包.作者是Tomas Mikolov. Github: https://github.co ...

  4. (IS 19)wav2vec: Unsupervised Pre-training for Speech Recognition

    会议:INTERSPEECH 2019 论文:wav2vec: Unsupervised Pre-training for Speech Recognition 作者:Steffen Schneide ...

  5. python pytorch语音识别_PyTorch通过ASR实现语音到文本端的模型以及pytorch语音识别(speech) - pytorch中文网...

    ASR,英文的全称是Automated Speech Recognition,即自动语音识别技术,它是一种将人的语音转换为文本的技术.今天我们主要了解pytorch实现语音到文本的端到端模型. spe ...

  6. 《Improving speech recognition by revising gated recurrent units》

    作者:Mirco Ravanelli , Philemon Brakel , Maurizio Omologo  , Yoshua Bengio 来源:Interspeech 2017 摘要部分: 本 ...

  7. 用于语音识别的多任务自我监督学习(Multi-task self-supervised learning for robust speech recognition )

    文章目录 简介 论文信息 题目 内容摘要 论文背景 应用背景 技术现状 论文主要工作 论文工作介绍 文章框架 核心工作 1.PASE+整体框架. 蓝色部分是在 PASE 的基础上改进的部分. 2.如何 ...

  8. 用SAPI实现Speech Recognition(SR) - 命令控制模式

    微软的语音识别,在这里我们简称它为SR(speech recognition),SR分为两种模式的监听:第一种模式:听写模式,即随意输入语音,监听对象将最为接近的字或者词,句反馈出来:第二种模式:命令 ...

  9. 用SAPI实现Speech Recognition(SR) - 听写模式

    摘选自:"北极悠蓝"的博客<C++使用SAPI实现语音合成和语音识别的方法和代码> 微软的语音识别,在这里我们简称它为SR(speech recognition),SR ...

  10. NLP之ASR:语音识别技术(Automatic Speech Recognition)的简介、发展历史、案例应用之详细攻略

    NLP之ASR:语音识别技术(Automatic Speech Recognition)的简介.发展历史.案例应用之详细攻略 目录 语音识别技术(Automatic Speech Recognitio ...

最新文章

  1. 并行计算与分布式计算
  2. Spring Boot 拦截器
  3. java用mvvm,[Java教程]MVVM架构~使用boxy和knockoutjs实现编辑功能
  4. jQuery同时监听两个事件---实现同时操控两个按键
  5. Python 模块之 string.py
  6. 浏览器获取设备信息_一条命令获取 IE 浏览器保存网站的账号和密码信息
  7. div 隐藏_div的position属性
  8. Linux基础(1)---top命令
  9. 单链表的回文判断(O(n)时间复杂度和O(1)的空间复杂度)
  10. vue 鼠标点击绘制任意多边形_神操作!PPT也能绘制城市轮廓线
  11. hive字段名、注释中文显示问号
  12. vue2.0 海报生成器、二维码生成器
  13. linux 开机logo制作工具,linux开机logo制作
  14. FreeSSL.cn 申请免费HTTPS 证书
  15. MSOCache是什么文件啊?
  16. 滴滴AI负责人叶杰平:你的每一次出行,都已有AI落地的助力
  17. 研究是一门艺术 前三章节笔记
  18. GRE 词汇2(词根)
  19. 收藏本站——添加到浏览器收藏夹
  20. 线性表:链表的基本操作

热门文章

  1. Winform2、(C#) 设置编译后.exe执行文件的图标
  2. virtualbox突然打不开虚拟机解决方法
  3. 【存储】SDS软件定义存储,看这一篇就够了
  4. 32768HZ晶振不起振
  5. 博客迁移到sunface.io
  6. CogPDF417Tool工具
  7. 支付宝小程序卡包开发(流程+详细案例+商户会员卡)
  8. STM32L476+STM32cubeMx+Freemodbus移植记录
  9. AndroidQ SystemUI之锁屏加载(下)密码锁屏
  10. 又有朋友被骗入传销了!