自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 收藏
  • 关注

原创 自监督预训练(三)wav2vec 2.0原理剖析

一、整体流程二、feature encoder理解Conv1dnn.Conv1d(in_channels=5, out_channels=20, kernel_size=3, stride=2)假设输入input=(batch, in_channels, in_len)batch=1in_channels=5,对应向量大小,比如word embeddingin_len=10,对应word的个数cnn内部kernel=(in_channels, kernel_size)=(5,3),相当

2021-04-17 09:36:52 16294 5

原创 自监督预训练(二) 语音部分

一、Predictive Coding系列CPC[4][8]Contrastive Predictive Coding包含三部分:编码网络多层CNN,将输入wave进行降采样,映射为隐层表示zt=genc(xt)z_t=g_{enc}(x_t)zt​=genc​(xt​)自回归网络多层GRU,从隐层表示提取context信息,ct=gar(z≤t)c_t=g_{ar}(z_{\le t})ct​=gar​(z≤t​)打分函数fk(xt+k,ct)=exp(zt+kTWkct)f_k(x_

2021-04-17 09:26:01 2742 3

原创 自监督预训练(一) 语义部分

pre-training技术在NLP领域得到了很好的应用,比如最近几年比较火的谷歌的BERT模型、OpenAI的GPT模型,在NLP各种类型的任务中都取得了很大的突破,大幅刷新了公开数据集的SOTA结果,由于最近在做语音预训练的一些工作,所以最近简单梳理了一下NLP领域pre-training技术的发展脉络。NLP领域的预训练技术主要有两大方向:第一个是基于feature的方法,这个是比较早期的一个做法,代表技术是ELMo技术第二个是基于finetune的方法,这个是最近几年大家都在用的方法,也是这

2021-04-17 09:22:02 2449

原创 重新开始写点东西

好长时间没有更新博客了,有些问题没有来得及回复大家,抱歉!最近国庆节好好反思了一下,感觉技术博客这种总结形式对个人的成长帮助还是蛮大的,所以打算重新捡起来。后面的文章打算在微信公众号上面更新了,更方便实时交流,主要包括以下内容:-平时技术的总结-语音方向的资讯-个人的胡思乱想欢迎大家关注,一起讨论进步...

2020-10-11 17:24:02 281 4

原创 生成对抗网络GAN(二) 语音相关

生成对抗网络GAN(二) 语音相关@(gan)多任务对抗学习[1] 为了获得对噪音的鲁棒性,引入多任务学习,分为三个网络: - 输入网络(绿色),用作特征提取器 - senone输出网络(红色),用作senone分类 - domain输出网络(蓝色),domain这里指噪音的类型,总共17种噪声为了增加对噪音的鲁棒性,增加了GRL层(gradient reversal layer),网络在反

2017-11-12 16:59:33 11916 5

原创 生成对抗网络GAN(一) 简介和变种

基本概念[1]目标函数零和游戏(zero-sum game) 纳什均衡 minimax算法 GAN借鉴了零和游戏的思想,引入生成网络和辨别网络,让两个网络互相博弈,当辨别网络不能辨别数据来自于真实分布还是生成网络的时候,此时的生成网络可以当做一个数据分布到另一个数据分布的转化器。 假设生成网络GG,辨别网络DD,noise数据zz,noise分布pz(z)p_z(z),data数据xx,da

2017-11-12 16:57:56 4151

原创 声学特征转换 kaldi工具

基本工具1.transform-featstransform-feats <transform> <input-feats> <output-feats>其中transform是对应的特征转化矩阵,如果transform是rxfilename形式,认为是speaker-independent;如果transform是rspecifier形式,有-utt2spk选项,认为是per-speaker,没有

2017-11-12 16:32:32 3452

原创 声学特征变换 LDA

含义Linear Discriminant Analysis 线性判别式分析是一种降维算法,特征经过映射以后,在新的空间有最大的类间距离和最小的类内距离;LDA降维的维度跟类别的个数有关 相关公式推导可以参考这篇博客kaldi实现特征降维特征做完splice以后进行降维steps/train_lda_mllt.shacc-lda #使用pdf-id作为类别,获得统计量est-lda #获得ld

2017-11-12 16:31:18 2857

原创 声学特征变换 STC/MLLT

背景Global Semi-tied Covariance (STC)/Maximum Likelihood Linear Transform (MLLT) estimation gmm建模方差使用对角矩阵的前提是假设特征之间相互独立,使用full或者block-diagonal矩阵可以对相关性的特征建模,但是参数增多。为了解决使用这个问题,有两种方法: - feature-space 使用DC

2017-11-12 16:30:15 2670

原创 声学特征变换 fMLLR

含义 当测试数据YY和模型Λx\Lambda_x不匹配的时候,可以通过变换的方式进行匹配[1]: - model-space 也就是Λx\Lambda_x转化为Λy\Lambda_y - feature-space 也就是YY转化为XX其中model-space的变换又可以分为两种: - unconstrained: 均值和方差无关 - constrained: 均值和方差变换是相同的形式

2017-11-12 16:29:24 7178 1

原创 声学特征 ivector

提取流程1.UBMuniversal background model[1] 使用GMM建模,UBM的训练通过EM算法完成,有两种方法: - 所有的数据训练出来一个UBM,需要保证训练数据的均衡 - 训练多个UBM,然后合在一起,比如根据性别分成两个,这样的话可以更有效的利用非均衡数据以及控制最后的UBM。2.supervector 使用MAP adaptation对UBM的高斯进行线性插值

2017-11-12 16:26:38 19814 1

原创 声学特征 PNCC

特点power-normalized cepstral coefficients相比于MFCC特征: - 在噪声和混响场景下提升识别效果,尤其在训练语料是clean语音的时候 - 相比于MFCC,计算量提升34.6%使用pncc相比mfcc,噪声和口音测试集可以得到10-15%的相对提升细节 和MFCC/PLP特征的整体对比如上图filter bank相比于MFCC的triangular fi

2017-11-12 16:25:02 9359 1

原创 声学特征 PLP

PLP的由来Linear prediction可以用来获得语音功率谱P(ω)P(\omega)的全极点模型A(ω)A(\omega),也可以把LP看做获取P(ω)P(\omega)的频谱包络的手段,参考前面的文章 由于LP对待所有频率一视同仁,它不符合人耳的听觉机理,比如人耳对于高于800Hz的感知会下降,对于中间频段更敏感。 为了解决这个问题,Hermansky在进行LP之前修改语音的功率谱P

2017-11-12 16:20:16 5212

原创 语音合成vocoder(五) synthesis

基本概念最小相位脉冲响应[1]可以保证波形在时域上基本不变。 根据频谱包络求出最小相位响应(减弱时域信号的相位失真),然后IFFT还原为语音信号 其中AA跟频谱包络有关合成流程合成[2]分为三步 1. 根据f0f_0确定脉冲的位置 对分帧的频谱插值获得脉冲对应的频谱spectrumspectrum 2. 时域周期信号 2.1 求出频谱包络中周期部分,然后过最小相位脉冲响应 peri

2017-05-17 18:21:40 3627 1

原创 语音合成vocoder(四) aperiodicity参数

基本概念 “aperiodicity” is defined as the power ratio between the speech signal and the aperiodic component of the signal它是跟混合激励有关的参数,为了获得自然的声音,激励源不能只使用周期信号,也需要包含一些非周期信号。一种典型的非周期信号是噪音。PLANTINUM[1]使用exci

2017-05-17 18:19:25 4362

原创 语音合成vocoder(三) spectral envelope参数

基本概念[1] spectral envelope的三个性质: - 包络线连接峰值,并且紧紧包裹幅度谱 - 包络线不能震荡太剧烈,需要平滑 - 包络线不能有corner语音信号可以模拟为激励脉冲序列与声道冲激响应的离散卷积,对于浊音信号 y(t)y(t)可以简化为基音周期为T0T_0脉冲串δ\delta和声道冲激响应h(t)h(t)的卷积: y(t)=h(t)∗∑n=−∞∞δ(t−nT0)

2017-05-17 18:17:51 6191 3

原创 语音合成vocoder(二) 基频参数

基本概念声带每开启和关闭一次的时间就是基音周期(pitch period),倒数即为音频频率(pitch frequency)[1]。 基音频率取决于声带的大小、厚薄、松紧程度,以及声门上下之间的气压差的效应等。最低可达80Hz,最高可达500Hz,老年男性偏低,小孩女性偏高。它反映了声调的变化。常用方法常用的有自相关方法和倒谱方法 Autocorrelation Function(ACF)运算

2017-05-17 18:13:57 5683

原创 语音合成vocoder(一) 概况

Question1: vocoder在合成中的角色???合成概况语音合成主要有波形拼接和参数合成两种方法[1]。波形拼接方法 使用原始语音波形替代参数,合成的语音清晰自然,质量相比于参数合成方法要好。PSOLA(pitch synchronous overlap add)算法可以对拼接单元的韵律特征进行调整。参数合成方法提取参数->HMM建模->合成参数->波形重建 合成中的vocoder

2017-05-17 18:11:22 16084 2

原创 boost库使用

boost C++库简介 linux下载安装大部分库不需要编译,使用的时候只需要include相应的hpp文件即可,少数库需要提前编译。 假设下载的库文件解压到目录/path/to/boost 使用boost数学库中的expint函数(matlab)#include "boost/math/special_functions/expint.hpp"#include <iostream>int

2017-04-22 08:57:04 2264

原创 端到端语音识别(四) raw wavform

现在的端到端语音识别的第一个“端”大部分还是使用人为设定的语音特征,比如FBANK/PLP,更高级的端到端语音识别输入是语音波形,输出是文字。 近几年也有一些工作是使用神经网络(比如CNN)来学习传统的特征提取步骤,取得了跟使用传统的语音特征相当的结果,当前这部分工作绝大多数还是基于传统的HMM框架来做,还没有跟CTC或者encoder-decoder相结合。CNNGoogle[1]分析了CNN跟

2017-04-20 19:55:13 4519

原创 端到端语音识别(三) Sequence to Sequence and Attention

Historyencoder-decoder2014年Kyunghyun Cho[1]提出了RNN Encoder-Decoder的网络结构,主要用在翻译上面。 encoder将变长的输入序列映射到一个固定长度的向量,decoder将该向量进一步映射到另外一个变长的输出序列,网络结构如下图: encoder: h⟨t⟩=f(h⟨t−1⟩,xt)\boldsymbol h_{\langle

2017-04-20 19:54:00 5556 2

原创 端到端语音识别(二) ctc

相关笔记CTC学习笔记(一) 简介 CTC学习笔记(二) 训练和公式推导 CTC学习笔记(三) 解码 CTC学习笔记(四) 解码-WFST CTC学习笔记(五) eesen训练源码HistoryICML-2006. Graves et al. [1] introduced the connectionist temporal classification (CTC) objective fu

2017-04-20 19:50:11 9986

原创 端到端语音识别(一) 概况

传统方法的局限性[1]HMMMarkovian Assumptionp(qt|q<t)=p(qt|qt−1)p(q_t|q_{<t})=p(q_t|q_{t-1}) 转移概率只跟前一个时刻有关,无法对长时依赖性建模。Conditional Independence Assumptionp(xt|x<t,q≤t)=p(xt|qt)p(x_t|x_{<t}, q_{\leq t})=p(x_t|q_t

2017-04-20 19:49:33 9686

原创 DTW(Dynamic Time Warping)算法

变量定义1.warping function F=c(1),c(2)...c(k)...c(K)F=c(1),c(2)...c(k)...c(K) 其中c(k)=(i(k),j(k))c(k)=(i(k),j(k)) 表示两个语音特征序列A和B之间的映射关系。 2.time-normalized distance D(A,B)=MinF[∑Kk=1d(c(k))⋅w(k)∑Kk=1w(k)

2017-04-20 19:47:29 4953

原创 kaldi 1d-CNN源码

CNN nnet/nnet-convolutional-component.h假设CNN相关参数如下###输入相关参数num_splice=3 #语音数据的左右context,此处左右一帧path_stride=5 #一帧

2017-03-15 21:33:43 2595

原创 kaldi 1d-CNN网络结构

生成nnet.proto utils/nnet/make_cnn_proto.py假设输入26维的fbank,feat_raw_dim=26,splice_num=8,delta_order=0: num_filters1=128 num_filters2=256 pool_size=3 pool_step=3 pool_type=MAX num_splice=8 patch_s

2017-03-15 21:23:40 4806

原创 kaldi feature extraction

支持提取mfcc/plp特征,和HTK特征的主要差别在于默认参数值的设定。使用选项-htk-compat=true以及合适的参数,可以得到htk特征。全局CMVNcompute-cmvn-stats假设帧数为i,特征维度为j,cmvn计算得到两个矩阵: (A1,A2,...,Aj,Aj+1)(A_1, A_2,...,A_j,A_{j+1}) (B1,B2,...,Bj)(B_1, B_2,..

2017-02-25 17:37:53 3720 2

原创 kaldi data preparation

主要两个文件夹data/train和data/langtrain需要手动创建三个文件 - utt2spk - text - wav.scp以上文件需要提前按照C++方式排序export LC_ALL=C然后可以调用steps下的脚本抽特征steps/make_mfcc.sh --nj 20 --cmd "$train_cmd" data/train exp/make_mfcc/train $m

2017-02-25 17:35:09 828

原创 kaldi NFS/GlusterFS

NFS详细介绍参考《鸟哥的LINUX私房菜-服务器架设篇》第十三章 主要流程server端配置安装两个软件:rpcbind和nfs-utils配置/etc/exports<DIR> *(rw,no_root_squash)启动nfs/etc/init.d/rpcbind start/etc/init.d/nfs start/etc/init.d/nfslock startchkco

2017-02-25 17:19:23 1063

原创 kaldi GridEngine

概况queue.ql: gridengine 多机运行 run.ql: 本地多进程,忽略除了JOB以外的其他参数queue.pl test.log echo foo \| awk 's/f/F/';基本格式queue.pl <options> <log-file> <command>其中command对于”|>;”这些shell会解析的符号需要做转义 queue.pl传入参数到qsub参数的对

2017-02-25 17:13:24 4584 1

原创 Deep Speech笔记

Deep Speech 1 Hannun, A., Case, C., Casper, J., Catanzaro, B., Diamos, G.,Elsen, E., Prenger, R., Satheesh, S., Sengupta, S., Coates,A., et al. (2014a).Deepspeech: Scaling up end-to-end speech recogn

2017-02-03 18:20:07 10491

原创 神经网络-CNN结构和语音识别应用

一、基本结构入门介绍:https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/ 参考deep learning. Ian Goodfellow的chapter9 cross-correlation: S(i,j)=(I∗K)(i,j)=∑M∑NI(i+m,j+n)K(m,n)S(i,j)=(I*K)(i,j)=\sum_M

2017-01-23 21:46:23 22627 9

原创 kaldi mmi/bmmi/mpe/smbr训练及源码

训练流程make_denlats.sh 产生1gram语言模型对应的解码网络nnet-latgen-faster产生denominator lattice,作为smbr训练的分母,充当竞争路径的作用align.sh 根据标注的reference作为G构建WFST解码获得最优路径,产生每一帧对齐的最好结果numerator alignment,作为smbr训练的分子,充当标准路径的作用g

2017-01-23 19:53:24 4074 3

原创 kaldi lattice

概况两种lattice结构Lattice结构FST的形式,weight包括两部分(graph cost和acoustic cost),输入是transition-ids,输出是words。 其中weight的graph cost包含LM+transition+pronunciation三部分。CompactLattice结构和lattice相似,区别在于它是接收机,输入和输出一样(都是words)

2017-01-23 19:52:26 7954 1

原创 kaldi 神经网络

overview type author CPU/GPU feature nnet1 Karel GPU单卡训练 使用pre-training,使用early stopping nnet2 Dan 支持多GPU训练,以及多CPU多线程 使用固定epoch个数,最后几个epoch参数平均 nnet3 Dan 是nnet2的扩展 支持更多的网

2017-01-23 19:50:58 5397

原创 神经网络-LFR model

CLDNN[1]不同的网络结构有不同的优势 - CNN擅长减少频率偏移 - LSTM擅长对时序信号进行建模 - DNN可以对特征做更高阶的抽象,更容易进行分类 CLDNN依次将CNN/LSTM/DNN进行串联组合成一个新的网络,相当于依次进行频域变化/时域关联/特征抽象,相比于单一的LSTM网络,可以获得性能的提升。delay constraint[2]对ctc模型来讲,在数据帧和输出l

2016-12-02 21:14:27 3354

原创 神经网络-pnorm

发展历史1.bagging算法Leo Breiman[1]在1994年提出了bagging算法,给定一个大小为 n的训练集D,Bagging算法从中均匀、有放回地选出 m个大小为 n’的子集DiD_{i},作为新的训练集。在这m个训练集上使用分类、回归等算法,则可得到m个模型,再通过取平均值、取多数票等方法,即可得到Bagging的结果。2.dropoutHinton[2]在2012年提出了drop

2016-12-02 21:12:08 3977

原创 arm平台和相关的矩阵运算库

一、arm平台ARM(Acorn RISC Machine,后改为Advanced RISC Machine)是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。类比于服务端的X86,其他的架构还有MIPS/PowerPC/DSP。差异参考这篇博文arm处理器架构 包括ARMv5/ARMv6/ARMv7-A/ARMv8-A等型号,对应的指令集和性能不同arm内核ARM在

2016-11-24 21:07:17 6686

原创 lstm(三) 模型压缩lstmp

lstmp结构对于传统的lstm而言 it=δ(Wixxt+Wimmt−1+Wicct−1+bi)i_t=\delta(W_{ix}x_t+W_{im}m_{t-1}+W_{ic}c_{t-1}+b_i) ft=δ(Wfxxt+Wfmmt−1+Wfcct−1+bi)f_t=\delta(W_{fx}x_t+W_{fm}m_{t-1}+W_{fc}c_{t-1}+b_i) ct=ft⊙ct−1+

2016-11-24 21:05:19 8248 4

原创 CTC学习笔记(五) eesen训练源码

essen源码参考https://github.com/yajiemiao/eesen,这里简单说一下涉及到训练前后向的核心算法源码实现。 以单句训练为准(多句并行类似),用到的变量 变量 含义 phones_num 最后一层输出节点个数,对应于|phones|+1 labels_num 一句话对应的标注扩展blank以后的个数,比如”123”扩展为”b1b2b3b” f

2016-11-24 20:58:58 6074

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除