用pytorch+CTC+WFST实现汉语语音识别
最近专门空出来很多时间,准备把一直犹豫不决要不要写的智能理论写出来,同时准备用语音识别做一些实验,所以有了这个项目。
语音识别实验比可选的工具有kaldi,wav2letter,espnet等,使用比较广泛工具是kaldi,但是对于前端语音处理的部分,我觉得kaldi所使用的HMM-GMM方式相当的不直观,Kaldi所使用的nnet神经网络也不是目前主流的深度学习工具。而kaldi创建者Daniel Povey要推出的与pytorch接口良好的kaldi新的版本也还没有出来。但是kaldi的WFST解码系统在处理文本模型的表现相当的出色,我想要的工具是pytorch处理语音前端,再加上WFST处理文本模型。
我在网上找了一下,找到了一个项目比较满足我的需求,它就是github上的eesen(https://github.com/isi-vista/eesen),eesen和传统kaldi处理方式对比如下:
传统的kaldi处理方式:
• Hidden Markov models (HMMs)
• Gaussian mixture models (GMMs)
• Decision trees and phonetic questions
• Dictionary, if characters are used as the modeling units
• ...
eesen的处理方式:
• Acoustic Model -- Bi-directional RNNs with LSTM units.
• Training -- Connectionist temporal classification (CTC) as the training objective.
• Decoding -- A principled decoding approach based on Weighted Finite-State Transducers (WFSTs).
eesen项目最近的更新已经是两年前,所使用的依赖库也比较早期,对于神经网络的处理还是使用nnet,所使用的例子也是英文。所以在github上我又参考了两个相关的项目,一个是ctc-asr(https://github.com/placebokkk/ctc-asr)和 eesen-for-thchs30(https://github.com/Sundy1219/eesen-for-thchs30),经过一段时间的调试,我做了第一个实验,语音处理前端使用pytorch处理,其输出是基于拼音的概率矩阵,然后用WFST处理得到文字输出。
注意:首先要安装好eesen,由于这个项目时间久远,支持的库比较老,我折腾了好久,我目前在ubuntu16.04上编译成功,cuda使用的9.2版本,pytorch我使用anaconda安装,使用版本的是python3.7,pytorch1.2,cuda9.2。
使用的实验语料是清华实验室提供的thchs30,安装好后首先要在before_run.sh中设置好thchs30语料的所在的目录,然后运行run-ctc.sh,如果要继续训练,需要将exp/train*/model/final.pt 复制到exp/init.pt,然后运行train_continue.sh.
项目访问地址https://github.com/lixinyu2001/eesen-pytorch-thchs30
用pytorch+CTC+WFST实现汉语语音识别相关推荐
- 【百度贾磊】汉语语音识别技术重大突破:LSTM+CTC详解(22PPT)
1新智元原创1 作者:王嘉俊 新智元福利 回复1028下载贾磊22页PPT Google 去年发布了一项研究报告,说在美国年龄介于13到18岁的青年当中,约有55%的人每天使用语音搜索. 语音搜索正在 ...
- 知物由学 | 多级建模方法提升汉语语音识别效果,获ISCSLP大赛认可
导读:语音是人类信息沟通的重要途径,同时也是人机交互的重要桥梁,自动语音识别可以表述为通过计算机将人类语音信号转录为书面形式的文字输出的过程.本文分享了网易易盾提出的多级建模单元的端到端汉语语音识别方 ...
- pytorch使用pytorch-kaldi实现ASR语音识别
pytorch使用pytorch-kaldi实现ASR语音识别 Song • 10986 次浏览 • 0 个回复 • 2018年09月17日 pytorch-kaldi是开发最先进的DNN/RNN混合 ...
- 基于CTC转换器的自动拼写校正端到端语音识别
基于CTC转换器的自动拼写校正端到端语音识别 Automatic Spelling Correction with Transfo ...
- CTC模型、安装及其pytorch绑定安装
CTC模型是语音识别模型中常见的模块之一,现有主流的语音识别系统经常采用该模型来实现端到端的语音识别.而CTC出现之前,语音识别模型的端到端识别效果还是相对较弱的,也就是说CTC解决了这一问题. 1. ...
- python语音识别库kaldi_pytorch使用pytorch-kaldi实现ASR语音识别 - pytorch中文网
pytorch-kaldi是开发最先进的DNN/RNN混合语音识别系统的公共存储库.DNN部分由pytorch管理,而特征提取,标签计算和解码使用kaldi工具包执行.前面我们已经介绍了Linux/W ...
- 基于类语言模型和令牌传递解码器的端到端上下文语音识别(论文翻译)
Title:END-TO-END CONTEXTUAL SPEECH RECOGNITION USING CLASS LANGUAGE MODELS AND A TOKEN PASSING DECOD ...
- 更好的中英文混合语音识别系统
语音作为人与人交流的直接媒介,承载着人们日常生活中的大部分信息来源.基于近年来通信技术与物联网的发展,各式各样的语音助手.智能家具等软硬件层出不穷,人机交互技术的发展及人们对其需求日益攀升.语音识别技 ...
- 语音识别基础(二):语音识别方法
语音识别的全称是自动语音识别(Automatic Speech Recognition,ASR),说得多了, 就把"自动"省去了,认为"自动"是理所当然的了.语 ...
最新文章
- 从搜索引擎到核心交易数据库,详解阿里云神龙如何支撑双11
- LiveVideoStack线上交流分享 (十六) —— 爱奇艺剧场直播云端混流方案
- [译] 前端组件设计原则
- 带有Netflix Ribbon的Spring Cloud Rest Client-基础知识
- php __FILE__和$_SERVER['SCRIPT_FILENAME']区别
- Android--从零开始开发一款文章阅读APP
- Android 应用开发(38)TableLayout(表格布局)
- ★LeetCode(108)——将有序数组转换为二叉搜索树(JavaScript)
- 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析...
- 让华泰浮盈10亿美金的AssetMark-统包资产管理平台价值几何?
- 如何采集企业信息公示系统
- 统计Java源代码中关键字的数目(每个关键字的数目)
- 8个SVG动画JavaScript库
- 1.1各种编程语言的介绍
- sinc函数卷积_两个矩形窗函数的卷积
- WPS添加带背景颜色的文本框
- LWN:32位Linux的未来!
- idea 的Igonre 设置
- SQL对象名无效的解决
- java爬取今日头条文章