- 博客(174)
- 资源 (9)
- 收藏
- 关注
原创 工具-测试网速
#!/bin/shLANG=""while truedoup_time1=`ifconfig $1 | grep "TX packets" | awk '{print $2}' | awk -F':' '{print $2}'`down_time1=`ifconfig $1 | grep "RX packets" | awk '{print $2}' | awk -F':' '{print $2}'`sleep 1clearup_time2=`ifconfig $1 | grep "TX.
2020-09-26 09:35:21 572
原创 OpenFST源码解析一:权重前移或后移操作
openfst中reweight部分的源码解析(在注释部分)对边上的权重进行重新分配: 公式为:arc.weight = arc.weight + P(arc.nextstate) - P(state)// reweight.h//// Licensed under the Apache License, Version 2.0 (the "License");// you...
2019-10-24 11:41:55 846 2
原创 语音识别系列7-chain model 之分子部分
一、简介现在有越来越多的公司和团体开始使用chain model了,得益于kaldi社区日益活跃和kaldi作者povey的大力推荐,chain model的优越性在于:1,使用了单状态的biphone,建模粒度更大,有些类似于CTC;2,采用的低帧率策略,DNN每三帧输出一次,解码速度更快;3,使用了区分性训练,准确率更高;4,改进了MMI,提出了Lattice free MMI,训练速度更...
2019-06-01 14:31:21 1357
原创 语音识别系列5-语音活动端点检测(VAD)
语音识别系列7-语音活动端点检测(VAD)一、介绍语音活动端点检测(VAD)已经是一个古老的话题,用于分离信号中语音信号和非语音信号,首先我们讲述VAD的三种做法:1,通过分帧,判断一帧的能量,过零率等简单的方法来判断是否是语音段;2,通过检测一帧是否有基音周期来判断是否是语音段;3,通过DNN的方法训练模型来分类是否是语音帧。相对来说,通过DNN的方法来做VAD准确率会更好一些,本节我们...
2019-05-21 09:13:59 6142 4
原创 语音识别系列6-语音识别CTC之tensorflow前向计算
语音识别系列6-语音识别CTC之tensorflow前向计算一、介绍根据上一节的介绍,我们的模型就训练好了,但是如何使用模型呢,这一节我们进行介绍,模型训练完后,会在模型保存目录下生成至少四个文件,分别为:checkpoint、model.ckpt-*.data-00000-of-00001、model.ckpt-*.index、model.ckpt-*.meta二、源码解析...
2019-05-20 15:39:16 831
原创 语音识别系列4--语音识别CTC之模型训练源码解析
一、介绍上一节我们简单介绍了CTC及数据准备过程,做好了数据准备,本节我们介绍CTC模型训练及源码解析。CTC(Connectionist Temporal Classification)连接时间分类,直观上理解,循环神经网络(RNN)更适合于CTC训练,关于CTC的原理上的介绍,大家已经写的很多了,本节我们主要从代码着手,帮助大家从零搭建CTC-ASR训练系统。既然是系统,我们就让代码的...
2019-05-18 11:46:01 3575 5
原创 语音识别系列3--KALDI解码器(SimpleDecoder)
Kaldi简单解码器(SimpleDecoder)总述本节我们讲述kaldi中一个最简单的解码器,实现这个解码器的类是SimpleDecoder,理解了这个解码器,也就打下了解码搜索的基础,其他的解码器方法也与其类似,目录在kaldi/src/decoder/simple-decoder.h。解码图数据结构依赖于openfst,基本上可以通过名称猜到表达的含义。分析上一节已经知道,解码...
2019-05-17 11:40:57 3216 3
原创 语音识别系列2--基于WFST解码器
一、总述解码器是ASR重要的组件之一,在传统的基于GMM-HMM/DNN-HMM混合系统中,解码器架起语言模型、声学模型、发音词典等知识源的桥梁,得到最终的识别结果,如图1所示。随着深度学习技术的盛行,一系列ASR端到端系统、ASR-NLP端到端系统甚至ASR-NLP-TTS端到端系统被相继提出,解码器的作用在被一步步弱化,但是笔者认为,抛弃解码器,实现完全的端到端系统还有相当长的...
2019-05-17 11:29:47 3309 2
原创 语音识别系列1--语音识别CTC之数据准备
语音识别CTC之数据准备一、简介CTC是一种端到端的神经网络训练方法,在语音识别领域应用非常广泛,和传统的语音识别HMM相比,CTC省略了数据对齐,特征选取的过程。传统的HMM在训练神经网络之前需要选择特定的语音特征,比如FBANK、MFCC。而CTC则直接将语音转到频域即可使用,传统的HMM在训练之前需要对数据进行帧对齐,对齐的过程首先要进行HMM-GMM的聚类,并且较小的建模粒度需要做...
2019-05-17 11:15:25 1978 2
原创 阿拉伯数字简单转中文数字
#!/usr/bin/env python# -*- coding: utf-8 -*-import reimport syschinesedict = {}chinesedict['0'] = '零'chinesedict['='] = '幺'chinesedict['1'] = '一'chinesedict['2'] = '二'chinesedict['3'] = '三'c...
2018-11-15 12:02:41 566
转载 kaldi008 -- pdf id and phone
最近需要解决一个问题:在Kaldi下做完DNN训练之后,要怎么得到一段录音feature的后验概率,以及在有了这个后验概率之后怎么知道每一帧对应的是哪个状态,同时又是对应哪个phone。首先,如何得到一段录音feature的后验概率。由于DNN训练已经做完,已经得到了训练后的网络,那么只要把feature放进这个网络里面进行一遍从头到尾的运算,就可以得到这个后验概率。在Ka
2017-06-20 19:09:31 1542 2
转载 paste
paste单词意思是粘贴。该命令主要用来将多个文件的内容合并,与cut命令完成的功能刚好相反。粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。paste格式为:paste -d -s -file1 file2选项含义如下
2017-06-12 10:47:32 594
转载 tr
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。 tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串
2017-06-12 10:32:35 364
转载 cut
1 一两句话描述一下cut命令吧!正如其名,cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut是以每一行为一个处理对象的,这种机制和sed是一样的。(关于sed的入门文章将在近期发布)2 cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢?cut命令主要是接受三个定位方法:第一,字节(bytes),用选项-b第二,字符(cha
2017-06-12 10:24:53 377
翻译 kaldi007 -- hmm1
HMM拓扑和转移模型 介绍 在本页中,我们将介绍HMM拓扑在Kaldi中是如何表示的,以及我们如何建模和训练HMM转移。我们简要提到这与决策树如何互动; 决策树的充分介绍在How decision trees are used in Kaldi和Decision tree internals。有关此组中的类和函数的列表,请参阅Classes and functions
2017-06-11 23:14:22 1466
翻译 kaldi006 -- 构图
解码图构建方法(实验部分) 这里我们一步一步地解释图的构建方法,以及与之相关的某些数据准备阶段。这种方法的大部分细节不会硬编码到我们的工具中; 我们正在解释它目前是如何做的。如果这个部分很混乱,那么最好的补救办法可能就是阅读Mohri等人的“Speech Recognition with Weighted Finite-State Transducers”。 要注意:这张纸是相
2017-06-11 14:03:49 2255
翻译 kaldi005 -- 构图
Kaldi中的构图 首先,我们不能希望引入有限状态转换器以及它们如何用于语音识别。为此,参见Mohri,Pereira和Riley的"Speech Recognition with Weighted Finite-State Transducers"(Springer Handbook on SpeechProcessing and Speech Communication,200
2017-06-10 20:26:22 1835
原创 kaldi004 -- 配置文件
配置文件的文件是simple-option.hsimple-option.ccsimple-options-test.ccoptions-itf.h其中optionsItf 是基类,simpleOptions是子类。通过接口Register注册程序可以接受哪些参数,并把相应的变量绑定到相应的参数上;通过SetOption 和GetOption 设置和过去
2017-06-09 20:04:11 351
原创 kaldi003 -- log机制
kaldi中log的输出代码在 kaldi/src/base 中的kaldi-error.h ,kaldi-error.cc, kaldi-error-test.cc其中,kaldi-error-test.cc 是测试demokaldi-error.h log头文件kaldi-errorcc log源码log默认输出到标准错误中,同时也支持向自定义和第三方库来打印l
2017-06-09 19:55:21 703
转载 python017 -- 正则表达式
正则表达式在每种语言中都会有,目的就是匹配符合你预期要求的字符串。Python正则表达式主要由re库提供,拥有了基本所有的表达式。16.1 Python正则表达式符号描述示例.匹配除换行符(\n)之外的任意单个字符字符串123\n456,匹配123:1.3^匹配字符串开头abc\
2017-06-05 12:57:14 428
转载 python016 -- 多进程和多线程
15.1 multiprocessingmultiprocessing是多进程模块,多进程提供了任务并发性,能充分利用多核处理器。避免了GIL(全局解释锁)对资源的影响。有以下常用类:类描述Process(group=None, target=None, name=None, args=(), kwargs={})派生一个进程对象
2017-06-05 10:47:05 399
翻译 kaldi002 -- kaldi是如何使用决策树的
Kaldi 是如何使用决策树的 介绍本页概述了Kaldi中如何构建和使用语音决策树,以及如何与训练和构建图相互作用。有关内部构造的代码描述,请参见决策树内部结构;有关我们构建解码图的方法的更多细节,请参阅解释Kaldi中的解码图的构建。基本算法是自上而下的贪婪拆分来实现,我们可以通过询问左音素,右音素,中间音素,我们所在的状态等方式来分解数据,等等。我们实现的算法类似于标准
2017-06-03 20:07:26 1510
翻译 kaldi001 -- 树的内部结构
决策树内部结构该页面描述了语音决策树聚类代码的内部结构,代码实现为非常通用的结构和算法。有关解释整个实现算法以及工具包如何使用,请参阅“如何在Kaldi中使用决策树”一节。EventMap类构建决策树代码的主要概念是“事件映射”,由EventMap类型表示。不要被“事件”这个术语误导,而错误地认为是特定时间发生的事情。事件只是一组(键,值)对,没有重复键。概念上,它可以由类型std
2017-06-03 13:02:28 1324
转载 python015 -- 文件
12.1 open()open()函数作用是打开文件,返回一个文件对象。用法格式:open(name[, mode[, buffering[,encoding]]]) -> file objectname 文件名mode 模式,比如以只读方式打开buffering 缓冲区encoding 返回数据采用的什么编码,一般utf8或gbk
2017-06-02 18:51:26 448
转载 python014 -- 常用内建函数
内建函数,可以直接使用,而不需要import。在前面章节学过的sorded()、reversed()、range(),filter()、reduce()、map()等内建函数,下面再回顾下及学习一些新的内置函数。函数描述示例sorded(iterable, cmp=None, key=None, reverse=F
2017-06-02 18:08:24 341
转载 python013 -- 常用标准库
本章涉及标准库:1、sys2、os3、glob4、math5、random6、platform7、pikle与cPikle8、subprocess9、Queue10、StringIO11、logging12、ConfigParser13、urllib与urllib214、js
2017-06-02 17:42:30 1062
转载 python012 -- 导入模块
9.1 自定义模块自定义模块你已经会了,平常写的代码放到一个文件里面就是啦!例如,写个简单的函数,作为一个模块:1234567891011121314151617#!/usr/bin/python
2017-06-02 14:21:23 538
转载 python011 -- 迭代器 生成器
8.1 可迭代对象(Iterable)大部分对象都是可迭代,只要实现了__iter__方法的对象就是可迭代的。__iter__方法会返回迭代器(iterator)本身,例如:123>>> lst = [1,2,3]>>> lst.__iter__()object at 0x7f97c549aa50>
2017-06-02 12:54:33 705
转载 python010 -- 异常处理
什么是异常?顾名思义,异常就是程序因为某种原因无法正常工作了,比如缩进错误、缺少软件包、环境错误、连接超时等等都会引发异常。一个健壮的程序应该把所能预知的异常都应做相应的处理,应对一些简单的异常情况,使得更好的保证程序长时间运行。即使出了问题,也可让维护者一眼看出问题所在。因此本章节讲解的就是怎么处理异常,让你的程序更加健壮。7.1 捕捉异常语法12
2017-06-02 11:39:32 422
转载 python009 -- 类
什么是面向对象编程?面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。Python就是这种编程语言。面向对象程序设计中的概念主要包括:对象、类、继承、动态绑定、封装、多态性、消息传递、方法。1)对象:类的实体,比如一个人。2)类:一个共享相同结构和行为的对象的集合。通俗的讲就是分类,比如人是一类,动物是一类。3
2017-06-02 11:13:36 2814
转载 python008 -- 函数及高阶函数
函数作用:把一些复杂的代码封装起来,函数一般都是一个功能,用的时候才调用,提高重复利用率和简化程序结构。5.1 语法123def functionName(parms1, parms2, ...): code block return expression函数以def关键
2017-06-01 18:19:54 428
转载 python007 -- 操作符与流程控制
在第一章的时候讲解了运算操作符和赋值操作符,这章来学习下其他常用操作符。4.1 基本运算符4.1.1 比较操作符操作符描述示例==相等>>> 1 == 1 True!=不相等>>> 1 != 1 False>大于>
2017-06-01 16:00:28 456
转载 python006 -- 数据类型
什么是数据类型?前两章里面包含的字符串、布尔类型、整数、浮点数都是数据类型。数据类型在一个编程语言中必不可少,也是使用最多的。而且数据类型的数据都是存放在内存中的,我们一般操作都是在对内存里对象操作。什么是数组?数组也是一种数据类型,为了方便处理数据,把一些同类数据放到一起就是数组,是一组数据的集合,数组内的数据称为元素,每个元素都有一个下标(索引),从0开始。在Python中
2017-06-01 15:05:52 343
转载 python005 -- from inport 作用
玩蛇网python教程在前面的文章中给大家讲解过一种导入模块的方法import ,今天介绍一种经常会使用到的方法 from import。比如我们导入一个数学计算的模块 math:>>> import math>>> print math>>>>>> print math.pi #导出圆周率的值3.14159265359>>>我们导入math模块,在
2017-06-01 14:27:05 666
转载 python004 -- 字符串处理及编码格式
2.1 字符串2.1.1 字符串转换12345678910>>> a = 123 >>> b = 1.23>>> type(a)type 'int'>>>> type(b)type 'float'>>>> type(s
2017-06-01 13:24:04 917
转载 python003 -- 各种字符编码的前世今生
utf-8和Unicode到底有什么区别?是存储方式不同?编码方式不同?它们看起来似乎很相似,但是实际上他们并不是同一个层次的概念要想先讲清楚他们的区别,首先应该讲讲Unicode的来由。众所周知,在盘古开天辟地之前,sorry ,走错片场了(⊙o⊙)…在计算机发明的时候 ,由于计算机你只能表示二进制的数据,美帝人民为了交流通信方便,约定了一个编码系统,就是ASCII码,把abc..x
2017-06-01 13:07:42 474
转载 python002 -- 字符串内置函数
str='python String function'生成字符串变量str='python String function'字符串长度获取:len(str)例:print '%s length=%d' % (str,len(str))字母处理全部大写:str.upper()全部小写:str.lower()大小写互换:str.swapcase()首字母大写,
2017-06-01 11:37:20 249
转载 python001 -- 简要介绍
之前对python仅是简单的了解,最近因为工作需要,系统学习一下python脚本,发现李振良的技术博客,深入浅出,转载一下,以备重复查看。1.1 介绍1.1.1 特点Python是一种面向对象、解释型计算机程序设计语言。语法简洁清晰,强制用空白符作为语句缩进。Python具有丰富和强大的库,又被称为胶水语言。能把其他语言(主要C/C++)写的模块很轻松的结合在一起。
2017-06-01 10:47:41 814
原创 对卷积的简单理解
从大学就开始接触卷积,对于其物理意义不甚理解,只知道这么个东西,但是并不知道其所以然,今天在知乎上看见有不少同学对此做了自己的理解。摘录下来,供大家参考:参考1:对于初学者,我推荐用复利的例子来理解卷积可能更好理解一些:小明存入100元钱,年利率是5%,按复利计算(即将每一年所获利息加入本金,以计算下一年的利息),那么在五年之后他能拿到的钱数是,如下表所示:&l
2016-10-15 16:13:53 1817
原创 虚拟视点图像生成012
马上要毕业了,比较忙,有半年多没有更新博客了,在毕业之际,对以前写的代码进行整理封装,以备后来者改进,希望长江后浪推前浪,一代更比一点强!整理原有代码,封装为c++类的形式。分为三个类:即配置类、点映射类和图像映射类。一个基础函数库。一个demo。一个配置文件。主函数接口:main_virtual_viewpoint_rendering.cpp基于函数库:base_functi
2016-05-18 19:09:52 1766 1
CTC tensorflow 声学模型训练源代码.zip
2019-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人