自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 利用kaldi源码自定义功能和程序

文章目录前言目标功能kaldi源码解析编译和运行代码前言虽然还未完全看完kaldi的C++源码,但已经发现kaldi真的是一个复杂而庞大的开源项目,想找到并理解某一种功能的具体实现,比如对齐,解码,GMM迭代… 等等,都绕不开其繁杂而完备的数据结构设计,当然也可能是因为笔者的C++功底一般,还在kaldi源码的苦海中挣扎。本文是秉着总结,学习和经验分享的目的,利用现有的kaldi数据结构和类型来实现一种功能,整体并不复杂,但有助于对源码的进一步理解,具体来说是编写1个新的kaldi程序,即cpp源码。

2022-04-20 11:46:52 627

原创 面向语音识别岗位的技术储备(持续更新)

语音识别技术相关理论知识

2021-12-14 14:46:02 813

原创 OpenSeq2Seq中修改beam search解码器使其返回token id而不是string

文章目录前言解码器源码概览前言Nvidia的OpenSeq2Seq是一个基于Tensorflow的开源深度学习工具,可以用来训练和部署asr或者nlp相关的模型,但距今为止已经有2-3年没更新了,反倒是Nvidia新开发的基于pytorch的Nemo框架逐渐流行起来,github上的star也逐渐超过了OpenSeq2Seq,主要还是因为pytorch的易用性和易读性。但OpenSeq2Seq中有一套基于 ctc beam search 的解码器却一直被很多开发者引用,包括在Nemo里面的decoder

2021-12-03 19:43:10 483

原创 语音识别方向秋招面试记录(持续更新)

面试记录LSTM+BPTT1次 (字节跳动 AI-Lab语音识别实习;)CTC1 次 (字节跳动 AI-Lab语音识别实习;)

2021-09-06 13:47:56 3584 3

原创 CTC 讲解和python实现

文章目录损失函数解码和语言模型结合代码实现讲解比较详细的博客CTC的原始paper在大多数语音识别任务中,我们都缺少文本和音频特征的alignment,Connectionist Temporal Classification作为一个损失函数,用于在序列数据上进行监督式学习,可以不需要对齐输入数据及标签。对于输入序列X=[x1,x2,..,xT]X=[x_1, x_2, .., x_T]X=[x1​,x2​,..,xT​] 和 输出序列 Y=[y1,y2,...,yU]Y = [y_1, y_2.

2021-04-21 17:06:55 1269 2

原创 二叉树的序列和反序列化总结 python C++

文章目录前言二叉树的读取和输出中序遍历pythonC++层序遍历pythonC++链表的读取和输出链表翻转pythonC++常规数据的读取和输出pythonC++前言实际面试中不会像力扣一样给你定义好二叉树或者是链表的节点类,我们需要自己将输入数据转换为题目需要的数据结构,本文记录一些常用的数据读取模板和技巧,记住之后在面试手撕代码时可以直接使用。二叉树和数组的转换可以通过层序遍历实现,力扣上也有原题,熟悉的话就可以不用往下看了。二叉树的读取和输出中序遍历pythonC++层序遍历py.

2021-04-19 19:10:47 247

原创 kaldi nnet模型的decode流程解析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言1、特征提取1-1 filter bank特征计算1-2 cmvn处理1-3 拼帧2、nnet-forward3、解码生成词图(lattice)前言前面的文章中讲过nnet3模型的线上解码流程,本文用的是nnet模型,又称nnet1,之前虽然讲过nnet3,但并没有对nnet系列模型进行说明,具体细节以后的文章中会讲到,简单概括一下就是,nnet1-3是目前kaldi中神经网络3个版本的实现,其中nnet1只能单GPU训练

2021-04-01 00:27:29 1632

原创 语音识别 HMM和端到端Seq-to-Seq模型的异同

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言1 Hidden Markov Model (HMM)1-1 传统HMM1-2 HMM+Deep Learning1-2-1 Tendam1-2-2 DNN-HMM混合模型2 Seq-to-Seq模型前言本文主要是李宏毅老师语音识别公开课4的笔记,全部课程可以参考这里近几年语音领域的顶会发表了很多关于端到端Seq-to-Seq模型的研究,并且根据实验数据,在大规模语音数据集的支持下,他们的WER或者是CER都已经超过了传

2021-03-20 01:52:31 743

原创 EM算法在GMM中的应用与python实现

文章目录一、混合高斯分布1-1 GMM概要1-2 由边缘概率引出的隐变量二、推导三、python代码实现一、混合高斯分布1-1 GMM概要在k-means中,每个数据样本属于某一个cluster,比如对于第1个数据,可以通过r1=(0,1,0)r_1=(0,1,0)r1​=(0,1,0)中的指示变量0,1来明确指出该数据属于哪个cluster。关于k-means可以参考我的另一篇博客。在混合高斯分布(Gaussian Mixture Mode:GMM)中,每个数据样本也是属于某一个cluster.

2021-02-23 16:58:53 1064 1

原创 kaldi nnet3模型对单一语音文件在线解码

文章目录一、online2-wav-nnet3-latgen-faster二、lattice生成脚本三、lattice解码脚本本文主要以kaldi中的CSJ日语数据集为例进行讲解,文中涉及的路径都是在egs/csj/s5 中可以找到的。一、online2-wav-nnet3-latgen-fasteronline2-wav-nnet3-latgen-faster 是nnet3模型解码的核心程序,它读取wav 文件,进行mfcc 和ivector 特征处理,根据单词符号表生成对应的词图,即latti.

2021-02-04 00:13:58 1634 3

原创 tensorflow1.14编译自定义运算时报错:cannot find -ltensorflow_framework

问题描述:在tensorflow中自定义了一个函数想注册到运算库中,用g++编译时报出错误没找到动态链接库:g++ -std=c++11 -shared ConvCustom.cc -o ConvCustom.so -fPIC -I/usr/local/lib/python3.5/dist-packages/tensorflow/include -D_GLIBCXX_USE_CXX11_ABI=0 -L/usr/local/lib/python3.5/dist-packages/tensorflow -

2021-02-03 16:09:22 874 3

原创 kaldi 在线解码时报错 dimension mismatch 39 vs. 40

目录问题描述原因分析解决方案问题描述kaldi中用 online-wav-gmm-decode-faster 对单一wav文件解码时报出如下错误:online-wav-gmm-decode-faster --verbose=1 --rt-min=0.8 --rt-max=0.85 --max-active=4000 --beam=12.0 --acoustic-scale=0.0769 scp:./work/input.scp online-data/models/tri4/model online-

2021-01-25 12:34:10 535

原创 django+jquery 用post方式上传文件采坑记录

文章目录前言1. 前端布局2. django 设置3. JS 实现对上传操作的控制3.1 失败版 .ajax3.2 失败版 .ajaxSubmit3.3 成功版 直接用submit前言最近用django做一个在线的语音识别demo,需要上传语音文件,前端是bootstrap+jquery,后端是django,在我的理解范围内,要处理POST上来的文件,肯定要调用django的视图函数,最关键的是他视图函数触发的条件是url要发生变化,否则连 request 是什么类型都判断不了,更别说保存处理了。我.

2021-01-04 01:52:01 401

原创 主成分分析(PCA)的理解和推导

本文参考了一些日语的课件,所以图片上会出现一些日文,但结合注解看的话问题不是很大文章目录一、主成分分析1-1 问题导入1-2 推导二、计算实例一、主成分分析1-1 问题导入主成分分析又称 PCA 算法,即 Principal Component Analysis,本质上是一种改变数据轴的方法,经常被用来降维,以下图为例,PCA算法对原来的两个(x,y)数据轴进行了变换,即相互垂直的红蓝两个数据轴,这么做的目的是尽可能让新的数据轴与数据“贴合”起来,更容易表现出原数据的特征和分布,注意如果新的数据

2020-12-23 23:09:10 832

原创 SVM的理解和推导(线性)

本文参考了一些日语的课件,所以图片上会出现一些日文,但结合注解看的话问题不是很大目录一、问题引入二、拉格朗日乘数法2-1 求最优解问题2-2 条件限制下 求最优解问题2-3 拉格朗日函数2-4 不等式限制条件二、支持向量机 SVM3-1 定义3-2 推导一、问题引入二、拉格朗日乘数法2-1 求最优解问题对于f(x)f(x)f(x),如果我们想求解 maximizef(x)maximize f(x)maximizef(x),那么我们需要找到∇f=0\nabla f=0∇f=0 对应的数据点,

2020-12-22 13:36:56 294 1

原创 k-means推导和python实现

文章目录一、算法流程二、推导三、python代码实现一、算法流程首先有2点需要注意:k-means和 k-nn(k邻近法) 是不一样的,不要混淆。k-means本身理解起来不难,讲这个是为了引出后面的EM算法,两者有共通之处。算法流程如下所示,这里以k=3k=3k=3, 数据维数D=2D=2D=2, 数据样本个数N=500N=500N=500为例:给定K个聚类中心,用 μ\muμ 来表示, 并且适当进行初始化现在对于给定的μ=(μ1,μ2,μ3)\mu = (\mu_1,\mu.

2020-12-01 13:41:51 257 1

原创 kaldi单音素模型训练 - train_mono.sh脚本解读

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言上下文无关的单音素模型,或者monophone模型,是声学模型中最基础的模型。用HMM建模时每个状态对应一个上下文无关的单音素,大多数kaldi的训练脚本run.sh都是从monophone模型的训练开始,重复几次训练-对齐的过程,最后用HMM-GMM模型的对齐结果作为label去训练DNN模型。本文着重讲解一下steps/train_mono.sh脚本,

2020-10-16 14:26:56 1295

原创 Processing 自动贪吃蛇脚本

スマートインフォメディアシステム特論 期末课题用Processing写贪吃蛇脚本,有手动和自动两种模式,程序开始直接手动控制,GG一次后可以选择RESTART重新开始,或者AI MODE进入自动模式。其中AI MODE模式有两种报酬计算方法,或者两种距离算法,distance_type=1 表示曼哈顿距离, distance_type=2 表示欧拉距离。具体代码直接贴出来,放到Processing 2.XX 里应该是可以直接运行的。int game_pause = -1;int snake_le

2020-06-12 18:59:36 2064 2

原创 Phoneme的相关概念以及Triphone

Phoneme的相关概念以及Triphone目录Phoneme的相关概念以及Triphone前言可用来训练HMM的基本单位1. 片语 phrase2. 词 words3. 单音 syllables4. 音素 phonemes5. Triphone困难中文基本构成中文模型参考教程前言 无论多长或者多短的语音单位都可以做成HMM可用来训练HMM的基本单位一般我们都会认为单位越小,训练效果越好,那么下面讲一下选择的基准,或者说评价标准:精度(Accuracy),希望我们的模型可以精确描述声音是否容

2020-05-18 22:14:25 3202

原创 Kaldi 语音识别工具使用记录

Kaldi 语音识别工具使用记录 - 日语数据集CSJ数据下载数据前处理1. 生成phone.txt 和 lexcion.txt2. 语言模型3 特征提取

2020-05-11 00:20:39 1375 9

空空如也

空空如也

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

TA关注的人

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