目前开源世界里存在多种不同的语音识别工具包,它们为开发者构建应用提供了很大帮助。这些工具各有哪些优劣?数据科学公司 Silicon Valley Data Science 为我们带来了 5 种流行工具包的深度横向对比。此前,他们曾为我们带来过流行深度学习框架的对比:《从 TensorFlow 到 Theano:横向对比七大深度学习框架》。

作为深度学习研发团队的一员,我们对于循环神经网络(RNN)和其他语音识别需要用到的方法都有所涉及。在几年之前,业内***的语音识别系统还是基于语音分析的方法,包含发音、声学和语言模型。通常,这些方法包含 n-gram 语言模型,以及隐马尔科夫模型(HMM)。在此,我们以这种模型作为基准,试图对比目前流行的一些语音识别方法。迄今为止,我们很难看到有人对开源语音识别模型进行过真正对比,希望本文可以抛砖引玉,为大家带来一些帮助。

本文回顾了使用传统 HMM&n-gram 语言模型的开源语音识别工具包。对于用户而言,大多数人都会知道 Siri 或 Cortana 这样的消费产品。而对于研发工程师来说,更灵活、更具专注性的解决方案则更符合需求,很多公司都会研发自己的语音识别通路。以下是目前开源世界上出现的流行工具包,以及我们对它们的各项评价。

开源免费语音识别工具包横向对比

本次分析基于 svds 开发者的主观经验和开源社区的已有消息。上表列出了目前大部分流行的语音识别软件(但略微超出开源的范畴)。2014 年 Gaida 等人的一篇论文评估了 CMU Sphinx、Kaldi 和 HTK。其中 HTK 严格意义上来说并不是开源的,因为其代码并不能重用或作为商业用途使用。

编程语言

因为用户使用语言的情况各不相同,你可能会对特定的工具包有自己的偏好。以上工具除了 ISIP 以外都有 Python 的封装,虽然在一些情况下,Python 封装并不包括核心代码的全部功能。CMU Sphinx 也包含了其他几种编程语言,如 Java 和 C。

开发工作

在学术研究中,所有列出的项目都包含它们的来源。CMU Sphinix,显而易见,从它的名字就能看出来是卡内基梅隆大学的产物。它已经以某些形式存在了 20 年了,现在它在 Github(C (https://github.com/cmusphinx/pocketsphinx) 版本和 Java (https://github.com/cmusphinx/sphinx4) 版本)和 SourceForge (https://sourceforge.net/projects/cmusphinx/) 上都开源了,而且两个平台上都有***活动。Github 上的 Java 版本和 C 版本都只有一个贡献者,但是这并不影响此项目的历史真实性(在 SourceForge repo 上有 9 个管理人员还有很多开发者)。

Kaldi 从 2009 年的研讨会起就有它的学术根基了,现在已经在 GitHub (https://github.com/kaldi-asr/kaldi) 上开源,有 121 名贡献者。HTK 始于 1989 年的剑桥大学,已经商用一段时间了,但是现在它的版权又回到了剑桥大学并且已经不是开源软件了。它的***版本更新于 2015 年 12 月,先前发布于 2009 年。Julius (http://julius.osdn.jp/en_index.php) 起源于 1997 年,***一个主要版本发布于 2016 年 9 月,有些活跃的 Github repo 包含三个贡献者,现在已经不大可能反应真实情况了。ISIP 是***个***型的开源语音识别系统,源于密西西比州立大学。它主要发展于 1996 到 1999 年间,***版本发布于 2011 年,但是这个项目在 Github 出现前就已经不复存在了。

社区

这里我们关注一下邮件、讨论群还有开发者团体的情况。CMU Sphinx 在它的 repos 上有着在线交流论坛和积极的关注。然而,我们想知道复制 SourceForge 和 GitHub 的 repo 是否阻碍了更多的投稿。相比之下,Kaldi 不仅有着论坛和讨论群,还有一个活跃的 GitHub repo。HTK 也有讨论群但是没有开放资源库。Julius 网站上的用户论坛坏掉了,但是在日本站里可能有更多的信息。ISIP 主要用于教育目的,而且邮件清单档案现在已经不再实用。

教程和例子

CMU Sphinx 的教程非常具有可读性,易于学习,Kaldi 的文档也很全面,但似乎更难理解。不过 Kaldi 的内容覆盖了语音识别中的语音和深度学习方法。如果你缺乏语音识别的知识,HTK 的教程文档(注册用户可看)对这一领域有详尽的描述。Julius 项目聚焦于日语,***的资料就是 Japanese2 (https://www.svds.com/open-source-toolkits-speech-recognition/#fn2),但是他们也主动地译成英文,并且也提供相关资料;这里列有一些运行语音识别的实例(https://github.com/julius-speech/dictation-kit)。ISIP 也有一些资料,但是有些难以浏览。

训练模型

即使你使用这些开源工具的***理由是训练特定的识别模型,其他语音功能也会是它们吸引人的地方。CMU Sphinx 包含英语和很多其他即开即用的模型,在该项目 GitHub 的 redme 上,我们可以很容易地找到它们。而 Kaldi 对现有模型进行解码的指令深深地隐藏在文档中,我们最终在 egs/voxforge 子目录的 repo 下发现了一个英语 VoxForge 数据集训练后的模型,而识别功能在 online-data 子目录下。其他三个软件包没有容易找到的功能,但它们至少都有适配 VoxForge 格式的简单模型,后者是一个语音识别数据和训练模型的著名众包网站。

原文:http://www.kdnuggets.com/2017/03/open-source-toolkits-speech-recognition.html

【本文是51CTO专栏机构“机器之心”的原创译文,微信公众号“机器之心( id: almosthuman2014)”】

【编辑推荐】

【责任编辑:IT疯 TEL:(010)68476606】

点赞 0

横向对比5大开源语音识别工具包,CMU Sphinx最佳相关推荐

  1. 资源 | 横向对比5大开源语音识别工具包,CMU Sphinx最佳

    选自svds 作者:Cindi Thompson 机器之心编译 参与:李泽南.Smith目前开源世界里存在多种不同的语音识别工具包,它们为开发者构建应用提供了很大帮助.这些工具各有哪些优劣?数据科学公 ...

  2. 开源语音识别工具包 - CMUSphinx

    开源语音识别工具包 - CMUSphinx 开源语音识别工具包 语音识别简介 语音的构成 识别过程 模型 其他概念 CMU Sphinx 简介 Sphinx初体验 下载 编译 运行 开源语音识别工具包 ...

  3. 第三方Android应用市场横向对比大测评

    第三方Android应用市场横向对比大测评 App Store在苹果整个商业模型中占据了不可替代的核心角色,除越狱之外,App Store是iPhone和iPad所有应用软件的唯一获取途径.同样是应用 ...

  4. 常见开源协议横向对比

    文章目录 1 简介 2 常用协议简介 BSD Apache License 2.0 MIT MPL EPL LGPL GPL2.0 GPL3.0 AGPL MPL EPL No License 3 横 ...

  5. 【水文】从url横向对比大电商网站的搜索细节处理

    看到Keep Walking的大电商网站导航用户体验对比一文,感觉有点意思.因为我最近的工作和搜索多少有些关系,而且被中英文分词搞得有点烦,之前我也借鉴模仿过一些网站的搜索功能,所以下面我就来横向对比 ...

  6. 可以在xmind上同时有两个大主题吗_6大IPAD常用笔记软件横向对比,总有一款适合你|品职效率实验室...

    大家都知道,我们的公众号有一个品职效率实验室系列,里面发布过很多篇有关ipad学习软件的介绍文章,不过也有小伙伴向我们反馈时说:"我有了ipad(pro,air),有了apple penci ...

  7. Facebook 开源首个全卷积语音识别工具包 wav2letter++

    近日,Facebook 人工智能研究院 ( FAIR ) 宣布开源首个全卷积语音识别工具包 wav2letter++.系统基于全卷积方法进行语音识别,训练语音识别端到端神经网络的速度是其他框架的 2 ...

  8. 【玩转ElasticSearch】横向对比ElasticSearch与Sphinx

    摘要: 打算写几篇ElasticSearch使用心得.第一篇,先从ElasticSearch与Sphinx的横向对比开始.横向对比是反应优点和暴露问题的好方法.我是Sphinx阵营转向ElasticS ...

  9. 搜狗又有两大开源力作!你一个也不知道?

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 开源最前线(ID:OpenSourceTop) 猿妹 ...

最新文章

  1. 计算机二级中的html那道题,计算机等级考试题库:这10道二级C++语言试题是个坑,你居然不知道...
  2. python任务调度平台 界面_任务调度平台Cuckoo-Schedule
  3. #.NET分别以GET和POST方式抓取远程页面
  4. 使用Django搭建web服务器(最最正确的方式)
  5. 一文理解设计模式之--观察者模式(Observer)
  6. 数组实例的find() 和 findIndex()方法
  7. 怎么解决vs2017一把鼠标放在Mat类上就卡死的问题
  8. 实现微信摇一摇部分功能
  9. C++ std::shared_ptr是什么意思
  10. JVM监控及诊断工具命令行篇之jhat
  11. a标签下载pdf文件
  12. 用R语言进行Cox回归生存分析
  13. 单核性能强的服务器cpu,单核性能最强的不超频的cpu是哪个
  14. 「实战篇」开源项目docker化运维部署-前端java部署(八)
  15. 无人机动力测试台:150kg级-Flight Stand 150
  16. TSP问题解决:模拟退火、贪心法、爬山法,Python实现
  17. 电脑PHP动画制作画板,html5教程制作简单画板代码分享
  18. 获取cookies(pyppeteer)
  19. Pandas学习——Pandas基础
  20. 天星数科首页CSS布局回顾

热门文章

  1. C#自定义规则对比两个集合的对象是否相等
  2. DB2数据库关于delete in id和batch delete的性能对比
  3. 08.15 javascript3 分支结构 条件语句 :单向分支 双向分支 嵌套分支 多项分支 循环结构 while dowhile for 跳转语句 其他语句...
  4. Win7平台下配置Sublime Text2 的C++编译环境
  5. FZU Problem 2168 防守阵地 I
  6. 蓝桥杯 基础练习 01字串(水题)
  7. 有关冒泡排序法的问题
  8. UVA11398 The Base-1 Number System【进制】
  9. CCF201604-4 游戏(100分)
  10. 九章算术卷第三 衰分