加载中…
个人资料
劳格科技
劳格科技
  • 博客等级:
  • 博客积分:0
  • 博客访问:835,983
  • 关注人气:157
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

完全基于C++语言编写的开源语音识别系统

(2022-07-18 18:37:15)
标签:

wav2letter

开源

语音识别系统

c

杂谈

分类: 技术文章

随着大众对于自动语音识别(automatic speech recognition,ASR)技术关注的持续加强,在众多软件社区中语音识别软件系统与工具包软件激增。其中包括Kaldi、ESPNet、OpenSeq2Seq和Eesen。过去十年的发展,这些框架已经从传统的基于隐马尔可夫模型(Hidden Markov Models,HMM)和高斯混合模型(Gaussian Mixture Models,GMM)发展到基于端到端的神经网络模型。许多当前的ASR工具包都不是基于声音单位(phonemes)的而是使用基于图形单位(graphemes)的端到端声学建模。本文章所介绍的ASR工具包也是如此。完全基于C++语言编写的开源语音识别系统


产生这样的转变主要有以下两方面原因:1端到端模型十分简单;2此模型与HMM/GMM系统之间原有的差距正在急剧缩小。

本文向大众展示了一款当前基于深度学XI的语音识别架构——wav2letter++wav2letter++完全基于C++语言编写并使用了能最大化提升效率的ArrayFire张量库。高性能结构可以加快迭代速度,而迭代速度很多时候又是直接关乎研究与训练新的数据库或任务模型的成功的重要参数。

完全基于C++语言编写的开源语音识别系统


作者通过与其他现存常见的主要的开源语音识别系统相比较,确定了wav2letter++在一定情况下比其他已经优化的端到端语音识别神经网络训练速度快超过两倍以上。

其中阐述了wav2letter++为什么会利用现代C++语言对AI智能进行的设计,以及C++为语音识别系统带来的好处:

C++作为当前第三广泛使用的编程语言,能够完全控制高性能任务关键型系统的所有资源。更重要的是,C++中所具有的静态数据类型可以在对大规模程序进行编译时捕捉所有协议不匹配错误。利用现代C++语言对AI智能进行设计,我们可以在不牺牲编程简易度的情况下写出保持效率与高可扩展性的软件。

wav2letter++的设计主要满足三项使用需求首先,工具包必须可以在包含数千小时语音数据的数据库中建立训练模型。其次,必须能尽量简单地合并与表达新的网络结构和损失函数,尽可能简化其他代码的使用。第三,从模型研究到模型部署的路径应该在保研究的灵活性的基础上尽量做到简洁并尽可能减少对新代码的需求。完全基于C++语言编写的开源语音识别系统


wav2letter++采用了ArrayFire作为张量库,并支持数种端到端的模型每个模型分别由“网络”和“标准”两部分组成。同时wav2letter++的训练管道为使用者使用不同的特征、框架与优化参数进行实验提供了大的灵活性。训练程序可以在三种模式下运行:-train(平启动(flat-start)训练),continue(从检查点位置继续)和fork(例如转移学习)。并使用更高效的cuDNN算法扩展了核心ArrayFire CUDA后端

wav2letter++是完全使用C++编写的系统,它事实上可以很简单的和现存的用任何语言编写的应用程序进行整合。由于它使用的C++语言具有静态变量且面向对象,所以它可以更好地适应大规模开发需求。

    本文仅摘取了译文中的一些关键论述,旨在使阅读者能对系统有初步的认识,如想通过更为详细的论点和论据了解该系统为什么能提供高效的语音识别能力?可点击高效的语音识别系统wav2letter++”来对这篇译文进行更深入和详尽的了解。


作者:Vineel Pratap, Awni Hannun

原文链接:https://arxiv.org/abs/1812.07625

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有