语音识别-深度学习
文章平均质量分 69
Xwei1226
江南大学
展开
-
语音学习开源社区网站
元语音研究网智能语音技术交流https://www.meta-speech.net/语音学习应该有一个专业网站,如上。所有文章均开源,目前刚建立,大家感兴趣可以关注原创 2022-02-25 13:48:16 · 2892 阅读 · 1 评论 -
语音识别三年研究感想
语音识别技术是一门艺术,学习语音识别是一个循序渐进的过程。 刚开始接触语音识别技术是在本科毕业广州运通研究院实习的暑假,由于本科是自动化专业,对于深度学习技术完全没有概念,对于语音识别技术更是一窍不通。实习前一个月都在做数据标注,不得不承认语音识别的标注是一样相当繁琐且乏味的工作,但是我坚持标注了一个月,到一个月结束也不明白为什么要标注。真正开始接触语音算法是在实习的后一个月,当时组内做的是语音分割,我跟着组内大佬打下手,当时我的任务时提取语音特征MFCC,这个问题对于当时的我来说真的是很难,也是...原创 2020-07-22 11:32:42 · 4717 阅读 · 58 评论 -
语音识别—声学模型解码
声学模型解码(带状态转移概率) 最近一直在学习哥伦比亚大学与爱丁堡大学语音识别课程,并且修正了哥伦比亚大学中基于HMM构建的语音识别系统存在问题终自己写了一套基于HMM的语音识别系统,前文一些博客简单对上述工程实现以及理论进行了介绍,但是前文进行Viterbi解码时并未融入状态转移概率,虽然转移概率相较于发射概率对于解码结果影响较小,虽然影响较小,但是笔者认为一个优秀...原创 2020-05-19 10:42:49 · 1368 阅读 · 0 评论 -
语音识别—声学模型训练(前向-后向算法)
声学模型训练(前向-后向算法) 前文讲述了语音识别声学模型训练算法,主要基于Viterbi-EM算法来估计模型中参数,但是该方法对于计算语料中帧对应状态的弧号存在计算复杂度指数级增加的问题,为解决上述问题,有学者提出用前向后向算法来估计模型中参数,其可以解决复杂度指数级增长的问题,主要理论及工程实现如下。 本文语音识别算法主要参考哥伦比亚大学语音识别课程提供的源码...原创 2020-05-15 18:13:46 · 2556 阅读 · 1 评论 -
语音识别—声学模型训练(Viterbi-EM)
Viterbi-EM语音识别训练方法 前文刚研究过语音识别特征提取以及基于Viterbi的状态解码方法,现着手研究基于GMM-HMM的语音语音识别声学模型训练方法,其理论部分可参考本人前期所写的GMM-HMM理论推导拖成,但上述推导过程是采用前后向算法更新模型参数,本人则主要采用Viterbi-EM训练方法对GMM中参数进行更新训练。 实际上该训练方法主要是针...原创 2020-05-12 16:57:44 · 3718 阅读 · 0 评论 -
语音识别—Viterbi解码
Viterbi解码理论与实战 笔者最近着手研究基于HMM的语音识别系统,之前博文基于C++工具手写了提取MFCC语音特征(具体可以观看之前博文),最同时,也对基于GMM-HMM的语音识别训练过程进行了理论推导,现本文对基于Viterbi的解码方法进行详细的研究。 曾看过很多语音识别书(余栋的语音识别实战、陈果 果的kaldi实战以及张雪英的数位...原创 2020-05-10 15:11:38 · 2008 阅读 · 0 评论 -
语音识别特征—MFCC(实战篇)
语音特征提取—MFCC(理论篇) 本文主要针对特征提取中核心代码提取进行说明,如果有不懂或者想进一步了解的大佬可以私聊作者, 本文为语音特征提取—MFCC实战部分,参考哥伦比亚大学语音识别代码进行提取,其具体流程如下:(1)分帧与加窗...原创 2020-04-27 15:05:06 · 1951 阅读 · 0 评论 -
语音识别特征—MFCC(理论篇)
语音特征提取—MFCC(理论篇) 本文为语音特征提取—MFCC理论部分,参考哥伦比亚大学语音识别代码进行提取,其具体流程如下: (1)预加重、分帧以及加窗 语音识别中特征提取过程首先进行预加重、分帧以及加窗操作,其具体理论如下...原创 2020-04-27 14:57:58 · 1586 阅读 · 0 评论 -
隐马尔可夫模型基本概念(1)
最近抽空学习下Kaldi下语音识别系统,参考西工大谢磊老师硕士论文与其他博客对Kaldi下语音识别算法进行学习研究。 隐马尔科夫模型(Hidden Markov Model,HMM)本质上是一种统计模型,将HMM应用与语音识别解决三大问题,后续奉上理论推导(本人前期博客手推过一个版本)。一、HMM定义1.1 状态定义 研究HMM首先得知道其定义并能对其定义进行准确的描述,...原创 2020-04-24 15:44:37 · 678 阅读 · 0 评论 -
keras基础学习-二
1. 目标函数Objectives目标函数,或称损失函数,是编译一个模型必须的两个参数之一可以通过传递预定义目标函数名字指定目标函数,也可以传递一个Theano/TensroFlow的符号函数作为目标函数,该函数对每个数据点应该只返回一个标量值,并以下列两个参数为参数:y_true:真实的数据标签, Theano/TensorFlow张量y_pred:预测值,与y_true相同shape的...转载 2019-02-25 13:58:45 · 599 阅读 · 0 评论 -
transformer优秀文章
[1] https://blog.csdn.net/pipisorry/article/details/84946653[2] https://blog.csdn.net/Zhangbei_/article/details/85036948[3] https://jalammar.github.io/illustrated-transformer/原创 2019-02-14 16:30:57 · 415 阅读 · 0 评论 -
transformer
Google于2017年6月发布在arxiv上的一篇文章《Attention is all you need》,提出解决sequence to sequence问题的transformer模型,用全attention的结构代替了lstm,抛弃了之前传统的encoder-decoder模型必须结合cnn或者rnn的固有模式,只用attention,可谓大道至简。文章的主要目的是在减少计算量和提高并行...转载 2019-02-14 16:21:34 · 2270 阅读 · 5 评论 -
Attenion 综述三
近一两年,注意力模型(Attention Model)是深度学习领域最受瞩目的新星,用来处理与序列相关的数据,特别是2017年Google提出后,模型成效、复杂度又取得了更大的进展。以金融业为例,客户的行为代表一连串的序列,但要从串行化的客户历程数据去萃取信息是非常困难的,如果能够将self-attention的概念应用在客户历程并拆解分析,就能探索客户潜在行为背后无限的商机。然而,笔者从Atte...转载 2019-01-21 10:17:53 · 497 阅读 · 1 评论 -
keras 编写自己的Layer
1. Layer重写的基本思路?Keras层的骨架。只需要实现三个方法即可:build(input_shape): 这是你定义权重的地方。这个方法必须设self.built = True,可以通过调用super([Layer], self).build()完成。build,这个函数用来确立这个层都有哪些参数,哪些参数是可训练的哪些参数是不可训练的。call(x): 这里是编写层的功能逻...转载 2019-01-09 16:56:19 · 1905 阅读 · 0 评论 -
Keras 自定义层
Keras提供众多常见的已编写好的层对象,例如常见的卷积层、池化层等,我们可以直接通过以下代码调用:# 调用一个Conv2D层from keras import layersconv2D = keras.layers.convolutional.Conv2D(filters,\kernel_size, \strides=(1, 1), \padding='valid', \...)...转载 2019-01-09 15:23:37 · 1462 阅读 · 0 评论 -
Attention 二 创新篇
讲讲最近深度学习里面的后期之秀吧,Transformer(和变形金刚没有半毛钱关系)话说自公元二零一三年,深度学习网络一枝独秀,自机器学习王国脱颖而出,带动了人工智能领域的发展。其中它最主要的两大家,卷积网络(CNN)和循环网络(RNN),因其独特的性质,分别在计算机视觉和自然语言处理领域得到广泛使用。然而这两大家却都还是上世纪就被提出来了,本世纪虽有创新,却也逃脱不了这两大家的干...转载 2019-01-18 10:00:25 · 818 阅读 · 0 评论 -
Attention 一综述
近年来,注意力(Attention)机制被广泛应用到基于深度学习的自然语言处理(NLP)各个任务中。随着注意力机制的深入研究,各式各样的attention被研究者们提出,如单个、多个、交互式等等。去年6月,google机器翻译团队在arXiv上的《Attention is all you need》论文受到了大家广泛关注,其中,他们提出的自注意力(self-attention)机制和多头(mult...转载 2019-01-10 15:13:19 · 1585 阅读 · 0 评论 -
GMM-HMM kaldi 详解
虽然现在端到端语音识别模型可以直接对后验概率建模,可以不需要HMM结构了。但实际上目前很多state-of-the-art模型还是以HMM结构为主,比如chain model。而且掌握HMM-GMM结构,对于深入理解语音识别过程是由有一定好处的。但对于外行(比如像我这种从机械行业转行到语音识别领域的人)或者刚接触语音识别的人来说,要弄懂HMM-GMM结构还是要花不少时间的,因为语音识别任务的特殊...转载 2019-04-09 09:00:34 · 3233 阅读 · 3 评论 -
深度学习应用总结
一、语音识别 以字为建模单元代码:https://github.com/zw76859420/ASR_WORD 二、图像识别 以安检危险品、Mnist等数据集,采用深度学习方法进行分类,其中涉及VGG resnet densenet mobilenet 数据增强等技术,代码: https://github.com/zw76859420/image-recognit...原创 2018-11-25 13:35:55 · 1023 阅读 · 0 评论 -
Densenet综述
Densely Connected Convolutional Networks ,作者清华姚班的刘壮,获得cvpr 2017 best paper。非常值得阅读。DenseNet优势:(1)解决了深层网络的梯度消失问题(2)加强了特征的传播(3)鼓励特征重用(4)减少了模型参数DenseNet的网络基本结构如上图所示,主要包含DenseBlock和transition laye...转载 2019-02-20 09:39:15 · 579 阅读 · 2 评论 -
语音识别一(预处理)
好久没写自己的原创博客,受到群里的小伙伴的要求,最近写一个手推版本的MFCC FBANK 提取的详细过程,见下:原创 2019-03-19 15:35:32 · 2355 阅读 · 8 评论 -
GMM-HMM 详解
本文简明讲述GMM-HMM在语音识别上的原理,建模和测试过程。这篇blog只回答三个问题:1.什么是Hidden Markov Model?HMM要解决的三个问题:1) Likelihood2) Decoding3) Training2. GMM是神马?怎样用GMM求某一音素(phoneme)的概率?3. GMM+HMM大法解决语音识别3.1 识别3.2...转载 2019-03-20 20:50:53 · 9455 阅读 · 1 评论 -
CTC语音识别
目前主流的语音识别都大致分为特征提取,声学模型,语音模型几个部分。目前结合神经网络的端到端的声学模型训练方法主要CTC和基于Attention两种。本文主要介绍CTC算法的基本概念,可能应用的领域,以及在结合神经网络进行CTC算法的计算细节。CTC算法概念CTC算法全称叫:Connectionist temporal classification。从字面上理解它是用来解决时序类数据的分类问题。传统...转载 2018-07-09 14:09:37 · 3019 阅读 · 2 评论 -
基于树莓派语音控制—LED开关控制
此文是学术记录,亦是技术交流文档,本文使用LVCSR构建的语音控制系统。 研究接近两年的语音识别,最近一个月开始准备将自己的研究应用于实践中。从今年5月初开始研究语音控制,到今天才出一个简单的demo,最后演示结果如下: (https://v.youku.com/v_show/id_XNDIyNDY2MjcxMg==.html?spm=a2h3j.8428770.3416059.1...原创 2019-06-12 09:32:47 · 8402 阅读 · 9 评论 -
树莓派LED灯控制
随着Mini型PC越来越多,与之而来的创客也丰富起来,比如说Arduino就是一个非常好里例子。不过,Arduino毕竟是一块适合入门型的基础开发板,无论是从性能上,还是处理复杂问题的实现上,其本身都是有限的。所以有些时候我们会考虑成本更高的卡片式PC,类似于树莓派、香蕉派、橙子派等等。话虽然可以这么说,但作为PC跟GPIO一体的板卡,有些朋友刚拿到手确实是不知道何从下手,更不知道如何去控...转载 2019-06-05 09:11:32 · 1662 阅读 · 0 评论 -
树莓派连接电脑
1、串口连接这种方式在我树莓派的第一篇博客有讲,这里我简单介绍。连接树莓派,树莓派GPIO串口的GND,txd,rxd分别与转接口的GND,rxd,txd相连,用的什么转接模块我不管,反正最后得变成一个USB的接口接在电脑上,并在电脑设备管理器上的端口选项可以发现它,用Serial登录。可以用PUTTY登录,我用的是新版的secureCRT。2、ssh登...转载 2019-06-04 16:01:01 · 1636 阅读 · 0 评论 -
kaldi 中文件读取
* 1.ark,scp文件~/kaldi/src/featbin/copy-featsark:raw_mfcc_dev.10.arkark,t:-|headark存的试二进制文件,scp可以直接用cat命令看。*2.fst文件~/kaldi/tools/openfst-1.6.2/bin/fstprintL.fst|head-n10~/kaldi/t...转载 2019-04-23 18:16:16 · 1603 阅读 · 0 评论 -
基于GMM-HMM语音识别系统的算法推导(全)
最近研究完CTC,转而研究GMM-HMM; 参考文献:《语音识别实践》;《数学之美》;清华大学开源资料;爱丁堡大学语音识别课件;以及一些高校本硕博学位论文; 本文将会刷新你对GMM-HMM的认识,以及对EM算法加深理解; 本文将对GMM-HMM中的转移概率,发射概率,高斯核权重以及Viterbi算法解码进行推导:以上为所...原创 2019-04-21 14:55:21 · 3656 阅读 · 17 评论 -
语音识别的前世今生
这是我4月份在BitTiger公开课听的王赟大牛《语音识别的前世今生》整理的笔记,本来打算整理通畅再发的,结果实在没时间就一拖再拖。笔记有些草率,不过应该可以看明白,希望可以对大家有用,也祝王赟大神好。Q&A1. 历史上非特定人和特定人的语音识别是不是有很大的不同?这个就是前面讲过的打补丁,各种说话人适应的那一页(如下图)这一页上的这三种方法就是历史上,其实也包...转载 2019-04-03 18:32:55 · 961 阅读 · 0 评论 -
ctc decoder
本文主要对CTC 原理及实现中的代码进行解释。1.np.random.seed(1111)请参见本专栏文章numpy中random.seed()的妙用2.softmax的实现代码是这样的:def softmax(logits): max_value = np.max(logits, axis=1, keepdims=True) exp = np.exp(log...转载 2019-04-01 21:12:09 · 2703 阅读 · 0 评论 -
GMM详解
本文就高斯混合模型(GMM,Gaussian Mixture Model)参数如何确立这个问题,详细讲解期望最大化(EM,Expectation Maximization)算法的实施过程。单高斯分布模型GSM多维变量X服从高斯分布时,它的概率密度函数PDF为:x是维度为d的列向量,u是模型期望,Σ是模型方差。在实际应用中u通常用样本均值来代替,Σ通常用样本方差来代替。很容易判断一个...转载 2019-03-20 20:52:24 · 8883 阅读 · 0 评论 -
神经网络正则化方法
正则化方法:防止过拟合,提高泛化能力在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不work。为了防止overfitting,可以...转载 2018-09-11 10:21:19 · 5012 阅读 · 1 评论 -
Attention学习三
深度学习里的Attention model其实模拟的是人脑的注意力模型,举个例子来说,当我们观赏一幅画时,虽然我们可以看到整幅画的全貌,但是在我们深入仔细地观察时,其实眼睛聚焦的就只有很小的一块,这个时候人的大脑主要关注在这一小块图案上,也就是说这个时候人脑对整幅图的关注并不是均衡的,是有一定的权重区分的。这就是深度学习里的Attention Model的核心思想。AM刚开始也确实是应用在图像...转载 2018-08-27 14:26:49 · 906 阅读 · 0 评论 -
keras简介
可以这样说,Keras Python库使得创建深度学习模型变得快速且简单。 序列API使得你能够为大多数问题逐层创建模型。当然它也是有局限性的,那就是它并不能让你创建拥有共享层或具有多个输入或输出的模型。 Keras中的的函数式API是创建模型的另一种方式,它具有更多的灵活性,包括创建更为复杂的模型。 在本教程中,你将了解如何用Keras中更具灵活性的函数式API来定义深度...转载 2018-07-19 10:21:36 · 1246 阅读 · 0 评论 -
CNN-ASR
总结目前语音识别的发展现状,dnn、rnn/lstm和cnn算是语音识别中几个比较主流的方向。2012年,微软邓力和俞栋老师将前馈神经网络FFDNN(Feed Forward Deep Neural Network)引入到声学模型建模中,将FFDNN的输出层概率用于替换之前GMM-HMM中使用GMM计算的输出概率,引领了DNN-HMM混合系统的风潮。 长短时记忆网络(LSTM,LongS...转载 2018-07-17 21:20:45 · 1935 阅读 · 0 评论 -
语音识别模型优缺点简介(一)
2006年,Hinton提出深度学习网络,指出深度神经网络因为层数过多导致训练参数多的问题可以利用逐层初始化解决。在工业界和学术界掀起了深度学习的浪潮,并在语音识别和图像处理领域取得了巨大成功。2011年微软和谷歌在语音识别上采用DNN模型,将词错误率降低20%-30%。这里的DNN主要采用的是DBN,即深度置信网络。随着语音识别以及深度学习的发展,研究人员发现将CNN和RNN模型应用于语音识别领...转载 2018-06-29 10:36:02 · 9877 阅读 · 0 评论 -
基于深度学习的语音识别声学模型研究(一)
经历了两周的bug,终于把全连接神经网络搭好,并把数据成功的喂入到神经网络中。下面我我对我的网络进行简单的介绍: 首先通过tensorboard‘画图’,网络的结构如下图所示: 这是一侧五层的全连接神经网路:神经元等超参数的设定在之后的脚本中有详细的解释,具体见后面的代码。 之后训练200轮之后绘制出测试集和训练集的曲线以及loss曲线如下图所示: 通过上面的分析,我们发现,当网络堆叠...原创 2018-06-29 09:27:53 · 4092 阅读 · 2 评论 -
语音识别-语言模型
发布于2017-04-27 由AILEMON统计语言模型:从中文拼音到文本前言:自然语言是信息的载体,记录和传播着信息,信息论之父香农对信息的定义是“信息是用于消除随机不确定性的东西”。信息通过编码,经过一定的信道传输,然后传递到接收者,再解码成对应的可被人理解感知的东西,就完成了一次信息的传递。原始人的通信方式就是说话,而说话是先将信息编码为对应的语言信号,可以是文本,可以是声音...转载 2018-07-16 19:55:35 · 3068 阅读 · 0 评论 -
语音识别
tensorflow 语音识别最近在做语音识别的项目,现在项目告一段落,就把最近碰到的东西做一个总结。一些资料 https://medium.com/@ageitgey/machine-learning-is-fun-part-6-how-to-do-speech-recognition-with-deep-learning-28293c162f7a https://distill.pub/201...转载 2018-07-10 10:37:46 · 694 阅读 · 0 评论 -
基于深度学习的语音识别研究-CTC理论推导(四)
有时候学习真的得循序渐进,并没有速成的方法,本小白在经历了大约一个月终于把CTC的从头到尾大致看完了,下面讲一下我的理解,欢迎各位朋友批评指正。 首先,我们得知道为什么要引入CTC,前面博客讲到,之前在做语音的声学模型的时候,我们的数据形式是帧与标签的分别对齐,以Thchs30为例,训练集大约25小时的数据集,经过kaldi的GMM-HMM对齐之后,大约分为917w多帧的语音数据,标签经过后...原创 2018-07-02 22:17:24 · 4973 阅读 · 6 评论