语音识别系统是深度学习生态中发展最成熟的领域之一。当前这一代的语音识别模型基本都是基于递归神经网络(Recurrent Neural Network)对声学和语言模型进行建模,以及用于知识构建的计算密集的特征提取流水线。虽然基于RNN的技术已经在语音识别任务中得到验证,但训练RNN网络所需要的大量数据和计算能力已经超出了大多数机构的能力范围。最近,Facebook的AI研究中心(FAIR)发表的一个研究论文,提出了一种新的单纯基于卷积神经网络(Convolutional Neural Network)的语音识别技术,而且提供了开源的实现wav2letter++,一个完全基于卷积模型的高性能的语音识别工具箱。

在深度学习领域,在语音识别系统中使用CNN并不新鲜,但是大部分应用都局限于特定的任务,而且通常与RNN结合起来构成完整的系统。但是当前CNN领域的研究表明只使用卷积神经网络也有潜力在语音识别的所有领域达到最高水平,例如机器翻译、存在长程依赖的语言模型的语音合成等。CNN模型与其他技术的最大优势在于它不需要额外而且昂贵的特征提取计算就可以天然地对诸如MFCC之类的标准特征计算进行建模。因此长久以来,深度学习社区一直都期待着在语音识别工作流中完全使用CNN,因为这要比目前的基于RNN的模型更高效也更富有竞争力。

全卷积语音识别架构

经过很多次实验,FAIR团队决定依赖于一个整合多个不同CNN层的架构来实现端对端的语音识别流水线,从音频波形处理到语言转录。该架构基于下图所示的散射模型:

模型的第一层CNN用来处理原始音频并提取一些关键特征;接下来的卷积声学模型是一个具有门限单元的CNN,可通过训练从音频流中预测字母;卷积语言模型层则根据来自声学模型的输入生成候选转录文本;最后环节的集束搜索(Beam-Search)编码器则完成最终的转录单词序列。

FAIR团队将其全卷积语音识别模型与最先进的模型进行了对比,它可以用少的多的训练数据达到基本一致的性能,测试结果令人满意因此FAIR团队决定开源该算法的初始实现。

Wav2letter++

虽然深度学习技术近期的进步促进了自动语音识别(Automatic Speech Recognition)框架和工具箱的增加。然而,全卷机语音识别模型的进步,激励了FAIR团队创建wav2letter++,一个完全使用C++实现的深度语音识别工具箱。wav2letter++的核心设计基于以下三个关键原则:

  1. 实现在包含成千上万小时语音数据集上的高效模型训练
  2. 简单可扩展模型,可以接入新的网络架构、损失函数以及其他语音识别系统中的核心操作
  3. 平滑语音识别模型从研究到生产部署的过渡

基于以上原则,wav2letter++实现了如下图所示的非常直白的架构:

为了更好地理解wav2letter++的架构,有以下几点值得着重指出:

  • ArrayFire张量库:wav2letter++使用ArrayFire作为张量操作的基础库。ArrayFire支持硬件无关的高性能并行建模,可以运行在多种后端上,例如CUDA GPU后端或CPU后端
  • 数据预备和特征提取:wav2letter++支持多种音频格式的特征提取。框架可以在每次网络评估之前即时计算特征,并且通过异步并行计算来实现模型训练的效率最大化
  • 模型:wav2letter++包含一组丰富的端对端序列模型,也包含众多网络架构以及激活函数。
  • 可扩展的训练:wav2letter++支持三种主要的训练模式:
    • train :从零开始训练
    • continue :从检查点状态继续训练(continuing with a checkpoint state),
    • fork :可用于迁移学习。训练流水线使用并行数据、同步随机梯度下降以及基于NVIDIA的集群通信库,可以无缝伸缩。
  • 解码:wav2letter++×××是基于前面提到的全卷积架构中的集束搜索×××,它负责输出最终的音频转录文本

Wav2letter++实战

FAIR团队将wav2letter++与其他语音识别进行了对比测试,例如ESPNet、Kaldi和OpenSeq2Seq。实验基于著名的华尔街日报CSR数据集。初始结果表明wav2letter++在训练周期中的任一方面都完胜其他方案。

完全基于CNN的语音识别系统当然是一个有意思的实现途径,它可以优化对计算能力和训练数据的需求。Facebook的wav2letter++实现已经被视为当前最快的语音识别框架之一。我们将在不久的未来看到该领域越来越多的进步。

汇智网翻译整理,转载请标明出处:Introducing Wav2letter++

转载于:https://blog.51cto.com/13697184/2335796

语音识别wav2letter++简介相关推荐

  1. 语音识别系统wav2letter++简介

    语音识别系统是深度学习生态中发展最成熟的领域之一.当前这一代的语音识别模型基本都是基于递归神经网络(Recurrent Neural Network)对声学和语言模型进行建模,以及用于知识构建的计算密 ...

  2. 智能手机的超性能语音识别技术简介

    当语音识别技术应用到计算机桌面的时候,这看起来似乎是一个好主意.但是,对于大多数人来说,语音识别还不能取代键盘和鼠标.现在,语音技术正用于一个全新的环境:手机.语音识别技术在手机中的应用将进一步推动这 ...

  3. BNF语音识别文件格式简介

    此文分析离线语音识别的语义规则文件,即BNF文件,一般放在Android Studio的Assets文件夹下.本大侠使用的是科大讯飞的语音识别SDK,所以以下所有规则在此SDK下实测有效 1.结构 简 ...

  4. 语音识别-基础(一):简介【语音转文本】

    一.什么是语音识别 语音识别,通常称为自动语音识别(AutomaticSpeechRecognition,ASR),主要是将人类语音中的词汇内容转换为计算机可读的输入,一般都是可以理解的文本内容,也有 ...

  5. 带你认识传统语音识别技术

    摘要:隐马尔可夫链HMM模型自从1980年代被用于语音识别以来,一直都是实际语音识别系统的主流方法. 本文分享自华为云社区<新手语音入门(四): 传统语音识别技术简介 | 隐马尔可夫链 | 声学 ...

  6. 谷歌云端语音识别助手手机版-Google云端语音识别app1.0.0 官方安卓版-东坡下载...

    Google云端语音识别app是由谷歌最新研发的手机语音识别软件,该软件支持全球80多中语音识别系统,十分的强大,支持中文.粤语.普通话等,不通国家的语言,可以通过该软件进行交流,十分的方便哦,欢迎有 ...

  7. 深度学习笔记 | 第16讲:语音识别——一份简短的技术综述

    原标题:深度学习笔记 | 第16讲:语音识别--一份简短的技术综述 大家好!又到了每周一狗熊会的深度学习时间了.在上一讲中,小编给大家介绍了经典的 seq2seq,以及著名的注意力模型,并且小编在这些 ...

  8. 谷歌云端语音识别服务软件

    谷歌云端语音识别工具正式上线,该服务采用与Google Now.Google搜寻及Google Assistant相同的语音辨识技术.够识别全球超过80种语言,并将语音转换为文字,包括普通话.繁体中文 ...

  9. Google云端语音识别app

    Google云端语音识别app是谷歌最新推出发一款手机语音识别软件,支持全球80多种语音识别系统,其中,中文也在被支持之列,包括普通话.粤语.喜欢的朋友赶紧下载吧. Google云端语音识别app简介 ...

最新文章

  1. mybatis的资源过滤错误及xml文件编码错误
  2. HPU组队赛B:问题(二进制枚举)
  3. Python在Seaborn中手动指定调色板颜色进行数据可视化颜色自定义实战(Manually Specify Palette Colors in Seaborn)
  4. SAP SD基础知识之组织架构设计-Shipping Point篇
  5. JavaScript快速学习
  6. u盘启动pxe安装linux,U盘启动安装centos5.5+centos6.3+PXE网络安装CentOS
  7. 远程桌面保存密码(凭据)的备份导出
  8. deepin linux 怎么安装软件,Linux Deepin 从 Backports 安装软件包
  9. 最好的git命令行基础使用教程 windows
  10. 如何用Excel制作甘特图?专业教程教你快速解决问题
  11. c++ GUI轻量工具包FLTK介绍 (1)
  12. python 学习2
  13. android 谷歌地图显示空白,.android谷歌地图显示空白网格与缩放选项
  14. 如何在WordPress中显示链接的实时预览
  15. 【Linux学习笔记】38:有关Linux进程家族树
  16. 微信小程序 学习第一天
  17. 大数据周会-本周学习内容总结05
  18. 【MetInfo任意文件读取】--任意文件读取漏洞
  19. JS添加iframe标签
  20. 数学建模——统计回归模型

热门文章

  1. layui当前表格第一行_Excel表格如何写入组态王数据,看完就会了
  2. c语言统计最长单词长度,求3个字符串中最长单词的长度 求救 会一个的
  3. c语言实验报告超市购物系统,C语言超市购物管理系统的报告.doc
  4. 二十三、死锁的处理策略---避免死锁(银行家算法)
  5. c语言菱形花圃,一种便于自动修剪花圃的电锯支架的制作方法
  6. php跟html增删改查,EasyUIDataGrid结合ThinkPHP实现增删改查操作初学者_html/css_WEB-ITnose...
  7. oracle中set怎么用,sqlplus命令格式以及sqlplus中set的用法与解释-Oracle
  8. mysql与ofbiz,ofbiz+mysql安装求教
  9. php array的实现原理,PHP数组遍历与实现原理
  10. 浅析Mysql Join语法以及性能优化