自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MOON

Time will tell

  • 博客(72)
  • 资源 (2)
  • 问答 (20)
  • 收藏
  • 关注

原创 Linear Discriminant Analysis(LDA)

好久没有整理最近的一些算法了,今天趁着跑数据的过程整理一下LDA算法。该算法在很多地方都有使用:语音识别,说话人识别等等,那么今天在这里就为大家详细介绍一下,最终把matlab代码放在我的git上,有兴趣的可以去看一下,好了不多说,直接进入主题。首先介绍一下LDA到底是什么?LDA是一种降维的方法,一提到降维,大家应该很熟悉PCA。那么PCA和LDA的区别是什么呢?我们简单的理解可以理解...

2019-03-12 11:16:20 8019 4

原创 EM+GMM

最近在研究HMM底层,想法是能够自己手动实现全部底层部件。包括GMM,Baum-Welch和维特比算法等。刚进入GMM就遇到了很多的坑,这里总算走过一遍,自己也实现了一遍,代码放在我的github地址,感兴趣的可以去看。这里我主要介绍EM和GMM的联合使用,主要是训练阶段,并给出实验结果。在开始之前,我必须要对几个点说清楚。首先,我不会再跟大家讲解EM算法,因为博客上大家都在讲,不过我认为他们...

2018-10-12 13:29:43 1504

原创 Kaldi-MFCC模块源码主流程分析

那么趁着这个机会,研究一下kaldi源码中MFCC部分的内容。不说废话,我们从 compute-mfcc-feats.cc开始讲解,这里是个main函数,需要携带参数,具体使用样例如下:1.compute-mfcc-feats:其实看到这里我是一脸懵逼的,并不知道该如何用,没办法硬着头皮往下看。这句看起来好似定义了一个类,要想知道它到底在干什么,我们找到ParseOptions...

2018-09-05 17:08:40 4396 3

原创 C++读取Wav文件

C++的新手,自从搞了算法和kaldi开始着手C++,所以有很多坑没有趟过。最近需要把手头的matlab程序转化成C++,其中涉及到读取wav音频文件的部分,着实头疼,所以上网搜了一下,并且自己进行了尝试和改写,写了自己的一个版本,在这里主要记录一下其中遇到的教训和经验理解。首先在做这个问题之前,确保你自己知道,你的wav文件的采样率和位数,我这里以最普遍的16k和16bit的wav文件来说明...

2018-08-23 14:47:55 15575 19

原创 基于HMM的语音识别(二)

今天进入特征提取部分,原文的2.1部分,进入正题。特征提取阶段试图提供语音波形的紧凑形式(这里我理解不是很好,往下看)。这种形式最大限度的减少单词间的区分信息的丢失,并且与声学模型的分布假设进行良好的匹配。比如,如果对角协方差高斯分布用于状态输出分布,那么这些特征应该被设计为高斯并且是不相关的。通常使用约25ms的重叠分析窗每10ms计算一次特征向量。其中最简单也是最常用的编码方式是梅尔倒谱系数也...

2018-07-03 22:38:09 9407 1

原创 基于HMM的语音识别(一)

利用业余时间写一下自己看书的感受,就当作随笔把,这样也能帮助自己记忆,同时关于kaldi的章节我选择先停一停,我感觉把这个问题理解透再去查看kaldi可能会事半功倍。我选取的章节来源于"The Application of Hidden Markov Models in Speech Recognition",英文版的,有兴趣的可以去看看。废话不多说,我们直接进入主题。下图显示了大型连续语音词汇识...

2018-06-26 22:55:56 19527 12

原创 Kaldi学习(三)

这一次我们跳过《versions of kaldi》这一节,因为我感觉这一节对于我们初体验来讲,并没有什么实质性的帮助,我们直接到下一节:《Software required to install and run kaldi》,废话不多说,直接进入官网:理想的计算环境首先我们讲解一下理想的计算环境类型,然后我们会讲解一下运行kaldi我们最低所需。理想的环境是运行着SGE的Linux系统集群。通过...

2018-06-12 15:35:37 2397 2

原创 Kaldi学习(二)

今天直接进入第二个主题,如何安装kaldi。由于我的是mac,所以我这里使用虚拟机,用ubuntu 16进行操作,其他的系统我不做讲解。首先进入我要安装的目录,如下图:然后我们开始git拉取项目:git clone https://github.com/kaldi-asr/kaldi.git kaldi --origin upstream我们的查看工作空间如下,多了我们想要的文件(如果提示没安装g...

2018-06-11 14:22:06 4155 18

原创 Kaldi学习(一)

最近准备开始进行语音识别算法的学习,所以决定拿kaldi进行解读,这样一方面更加增加自己C++的基本功,另一方面也可以让自己慢慢走入语音识别的大门,自己的路,决定了就走下去,不管有多难。首先我决定从kaldi的官网入手,不多说进入主题。kaldi是什么kaldi是使用c++写的语音识别的工具,apache 授予了v2.0的证书(果真应验,apache旗下无弱将)。kaldi旨在供语音识别研究员使用...

2018-06-09 17:03:30 22029 1

原创 频域GSC

之前我讲过LCMV,那么接下来我讲一下GSC算法,他是从LCMV过渡而来。Griffiths和Jim同样认为每个ATF都是一个简单的时延。他们获得了一个不加约束的自适应算法,同样利用了Frost的约束(意思就是在满足原有约束的条件下设计出了一个不加约束的自适应算法)。相较于约束部分的算法,无约束的算法追踪性能更好,更加稳健。下面我们进入算法部分。考虑一下我们之前LCMV算法的A的零空间(A是约束条...

2018-05-22 15:02:37 4264 16

原创 频域LCMV

今天准备总结一下LCMV算法的知识点,同时明后两天我会把算法转化为matlab代码如果时间来的及我会同时把效果测试的代码一同放入到我的github,至于地址见我的个人资料下面。不多说,进入LCMV算法。在正是开始之前我要简要说一下LCMV算法,也可以称之为:constrained least mean square,约束最小均差。我之前写了两章有关于维纳滤波器的,那么这里有朋友可能会问:到底什么是...

2018-05-17 16:08:12 7995 43

原创 维纳滤波器(二)

昨天讲了关于信号模型的,其作为维纳滤波器的铺垫。今天正式开始维纳滤波器的讲解,今天的讲解我会按照《Springer-handbook-of-speech-processing》中的来进行。这本书是我目前见到的市面上对于语音处理方面讲解最全面的,我推荐大家去看一看。直奔主题:1 维纳滤波器为了方便起见,这里我们使用SISO模型,同时我们给出一个重要的假设:观测信号x(k)和随机噪声b(k)(与源信号...

2018-05-06 12:41:36 17015 9

原创 维纳滤波器(一)

很久没有静下心来整理一下了,我很早之前就想做一个从Wiener 滤波器了开始讲的博客了,现在终于有了安静坐下来总结一下的理由。从这里开始入手我感觉是对这一年多时间的尊敬,我会从模型开始讲起,会把我从论文和书中的理解呈现出来,如果有时间,我会把我的代码放到我的git上,有兴趣的可以去看一下,不多说,进入主题。1 信号模型在很多的应用中,我们很多的工作都是对系统进行辨识(system iditific...

2018-05-04 16:46:16 46333 8

原创 Matlab ULA 仿真

    一直以来太忙,终于到了年前,有了时间把这段时间的收获记录和分享一下。在正式开始之前,我想说一下我这段时间做语音增强最大的感悟:矩阵论和随机过程两门必须要狠抓,不然看的不是算法,看的是看不懂的公式,matlab实现的时候更是维度都分不清,这也算是给后来者的忠告把,放弃国产论文吧,看看英文的原文,那才是精华。    那么我么进入主题,在学习麦克风阵列增强的过程中,最糟心的无过于找不到对应的板子...

2018-02-10 09:29:12 6596 26

原创 麦克风阵列入门(一)

由于太忙,实在没时间整理,今天抽出空整理一点,日后会继续跟上,学会总结是进步的关键。下面几乎是干货,不会太详细,还望见谅。什么是麦克风阵列:所谓麦克风阵列其实就是一个声音采集的系统,该系统使用多个麦克风采集来自于不同空间方向的声音。为什么使用麦克风阵列:麦克风按照指定要求排列后,加上相应的算法(排列+算法)就可以解决很多房间声学问题,比如声源定位、去混响、语音增

2017-12-01 17:48:55 32861 6

转载 奇异值分解(SVD)原理详解及推导

转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/43053513    【注】:本博客是本人在CSDN上看到了,讲SVD的很多,讲明白的很少,这篇很精髓,所以转载,注明了出处,感谢博主。    在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系。前段时间

2017-11-02 09:53:22 519

原创 波达方向估计DOA

最近一直致力于语音增强方面的工作,主要是增强目标位置发出的语音信号,削弱环境噪音。这里面最有效的方法就是波达方向估计和波束增强了。本篇主要介绍波达方向估计,其包含很多种算法:capon music  RSS GCC等。我这里主要是使用GCC算法,我的麦克阵列使用的是双麦克,8cm距离。以下是我写的C语言版本,由于是第一版,所以比较粗糙,不过性能还是稳定的,角度误差在20°左右,希望能帮到大家:

2017-07-28 15:24:20 11150 8

原创 C语言free报错

长话段说:最近写算法,matlab转C,然后在C中申请了一个空间,用来存放数据如下:double *J1 = (double*)calloc(180 / step, sizeof(double));然后接下来开始对J1进行赋值:int k=0;for(int m=1;m<=180;m+=step){ k+=1; J1[k]=......}但是当我free的时候,开始报错

2017-07-20 10:47:15 7100 2

原创 VS C语言xml文件读取

最近需要把算法转成C语言,C语言没怎么用过,就大学公共课学过,好久了,忘得差不多了。感觉自己高级语言用的很熟,所以C语言看了点基础就开始转,然后遇到了一个坑,摔死我了。不说废话,进入主题。(以下是思想过程)我调用别人的第三方库,生成xml类型字符串,我需要进行解析。其实挺简单的,对于linux系统来说,使用libxml就可以轻松搞定。问题是,我是win10,然后就上网查呀,又得下载libxml

2017-06-29 17:49:48 4470

原创 Netty所需注意细节

昨天和前天初步过了一下官网,可能后面有点费解,所以今天在这里说说其中存在的个人认为的难理解的点。首先还是先看一下我的项目整体包含的文件:先简单介绍一下每个文件的用处:DiscardServer:我们的服务器入口,定义了管道端口等内容。TimeClient:我们的客户端入口,同样定义了客户端管道和连接的服务器等。TimeClientHandler:客户端管道处理逻辑。Ti

2017-04-07 09:57:04 1471

原创 Netty从零开始(二)

我们继续昨天的点,学习Netty。写一个时间客户端与DISCARD和ECHO服务器不同,我们需要TIME协议的客户端,因为人类无法将32位二进制数据转换为日历上的日期。在本节中,我们将讨论如何确保服务器正常工作,并学习如何使用Netty编写客户端。Netty中服务器和客户端之间最大和唯一的区别是使用了不同的Bootstrap和Channel实现。请看下面的代码:

2017-04-06 11:01:15 3151

原创 Netty从零开始(一)

需要用到netty,之前就当年实习的时候用过Mina,netty没用过,所以加急学习了一下,感觉还不错,不多说,从官网入手,官网地址:http://netty.io/wiki/user-guide-for-4.x.html有兴趣的朋友可以自己去查看。前言:问题现在我们使用通用应用程序或包进行通信。例如,我们经常使用HTTP客户端库从Web服务器检索信息,并通过Web服务调用

2017-04-05 18:01:51 37478 11

原创 CDH在Centos 7离线安装

由于本人原来都是采用在线安装方式,使用公司港台服务器代理,速度还是很可观的。不过最近要求在Centos 7上离线安装,有点坑,网上的很多都是抄来抄去,安装到一半可能就走不下去,这里是本人亲测,遇到的问题都一一说明并且解决掉。这里趟了一遍,希望对读者有帮助。不说废话,进入主题:Cloudera官网给出三种安装方式,我们采用PathC,使用下载好的包进行安装。我这里只使用本地虚拟机来进行安装说明:

2017-03-08 14:15:33 13149 2

原创 Beam从零开始(一)

网上看了别人都在谈Beam,你说咱们作为技术人员技术也得紧跟着时代不是,所以也开始利用业余时间研究Beam。咱不是大神,不能啥都一看就会,所以一天一天来,这个也就作为笔记吧。废话不多说,进入主题,按照老规矩,从官网入手。其实Beam官网目前做的不是很丰满,不过好在按照步骤进行,可以接受。Beam是什么呢?英文中Beam是光束的意思,官方对Beam的解释是:Apache Beam是一个开源的

2017-01-19 15:20:10 36710 5

原创 Dropwizard框架入门

最近项目用到了Dropwizard框架,个人感觉还不错,那么这里就从他们官网入手,然后加上自己的实现步骤让大家初步了解这个框架。官网对DW(Dropwizard)的定义是跨越了一个库和框架之间的界限。他的目标是提供一个生产就绪的web应用程序所需的一切性能可靠的实现。那么这句话可能有些绕,我个人理解就是他能免去我们部署web应用的很多步骤。由于这个功能被提取到可以重复使用的库中,我们的应用程序

2017-01-13 13:26:35 22368 5

原创 Storm-declareOutputFields-declare

最近项目需要开始接触storm,感觉跟spark差距还是不小的,不过每个平台都有各自的优势,不做过多评价。有个地方,一直困扰了我好久,就是不管是spout实现类还是bolt实现类里面都有个declareOutputFields的方法,后面declare出去的东西我是真看不明白有啥用,然后按照官网看了一下,结合自身理解在此梳理一下,如果有同学有同样的问题希望能给你解惑。如图,这是我的

2016-12-29 16:53:52 4179

原创 SparkStreaming updateStateByKey 使用

updateStateByKey算子经常在实时计算时使用,最常见的就是wordCount类型的统计需求,那么这里使用官网并结合自己一些网上看的一些例子写的demo,如下:官方:updateStateByKey允许你在持续更新信息的过程中随意获取状态。想要使用这个输入流,你需要以下两步:1 定义状态--状态可以是任意的数据类型2 定义状态更新函数--指定一个如何更新状态的函数,该

2016-12-22 17:14:57 1629

翻译 Apache Flume(二)

继续上文的flume进行学习,不多说, 直接进入主题。Flume支持根据zookeeper的agent的配置。这是个实验性的特征(我估计这么说可能说明目前还不是很稳定,猜的),配置文件需要上传到zookeeper上面,有着配置文件的后缀。配置文件被保存在zookeeper的节点数据中,以下是节点树查看agent的a1和a2:- /flume |- /a1 [Agent config

2016-08-15 12:11:41 576

翻译 Apache Flume(一)

今天详细学习一下flume,原来都是琐琐碎碎,仅限于使用。不多说,还是从官方网站开始。Apache Flume是一个分布式、可靠的、可用的系统,该系统用来高效的收集、聚合、移动那些存储在不同数据源的大量日志数据到中心数据存储点。Apache Flume不仅仅限于日志的数据聚合,因为数据源是自定义的。Flume可以传输大量的日志数据事件数据,不仅仅包含网络交易日志、社交媒体日志、邮件信息,还

2016-08-10 15:08:31 667

原创 JAVA_Kafka_producer_consumer

消费者代码:import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.concurrent.ExecutorService;import kafka.consumer.Consumer;import kafka

2016-08-10 09:37:07 548

翻译 Apache Kafka(三)

我们继续之前的所述,继续kafka的学习。第八部(使用kafka流来处理数据):kafka stream是kafka的一个客户端包,这个包用来实时处理和分析保存在kafka brokers中的数据。以下这个简短的例子将会讲解如何在使用这个包运行实时处理的应用。下面是WordCountDemo的核心代码:它实现了wordcount算法,也就是统计从输入源读取的内容中单词出现的次数。但

2016-08-09 10:37:19 628

原创 Apache Kafka 实战从零开始(一)

不多说,咱们直接进入主题,那么我这里介绍一下我的环境。我用的是mac本,没有往本机装虚拟机,所以我用的是我的阿里云主机,穷滴很,就单节点吧咳咳。那么首先说一下,由于我们的Kafka需要zookeeper的支持,所以在安装kafka之前我强烈建议先安装一下zookeeper,虽然kafka有个内带的很low的zookeeper方便调试,但是建议不要用,为啥?因为low,不用!那么又因为zooke

2016-08-08 16:46:51 4250

翻译 Apache Kafka(二)

那么这次我们进行kafka的简单应用。第一步(下载代码):下载0.10.0.0版本并且解压,可以使用命令:tar -xvf kafka-2.11-0.10.0.0.tgz接着我们进入解压后的目录:cd kafka-2.11-0.10.0.0第二步(启动服务):kafka需要使用zookeeper,所以我们需要提前安装zookeeper并且启动。如果没有安装的话,你可以使用kaf

2016-08-08 14:52:47 450

翻译 Apache Kafka(一)

Kafka讲解介绍kafka是一个分布式的,分区的,可备份的日志提交服务。它提供了消息系统的功能,但是设计确实独一无二。这些意味着什么呢?首先我们介绍一些术语:1. Kafka获取的消息在类型上叫做topics2. 我们把生产消息到kafka的进程叫做producer(生产者)3. 我们称订阅topic并且处理kafka获得的消息的进程叫做consumer(消费者)

2016-08-05 14:02:57 668

原创 Scala协变逆变上界下界

这里介绍一下关于scala中的协变逆变的有关知识,因为真的每次碰见都懵逼的感觉很难受。此处我不会对比Java中的相关协变逆变,只针对scala的进行讲解。首先我说一下协变,所谓协变,白话文就是说让你的能够使用比原始定义类型的子类。不要懵逼,光看字我本人也看不懂,那么我们来通过实际的例子来讲解一下,首先上代码:/** * Created by mahuichao on 16/8/4.

2016-08-04 10:33:12 819

原创 spark提交

这次主要讲一下spark的提交具体操作和流程。原来一直用,也没怎么深入查看,那么这次就来仔细看一下提交的学问。跟我们以前一样,我们以官网下手。这里我不在把英文贴上,直接进行。在spark的bin文件夹下的spark-submit脚本是用来提交应用的。它能够通过一个统一的接口来使用所有spark支持的集群管理器,所以我们不必单独配置每一个应用。如果你的代码依赖其他的项目,那么你需要与应用程序

2016-08-03 10:24:38 1068

原创 Spark源码解析(二)

这次继续上次的地方,我这里只挑我个人感觉不有意义的方法来讲,有些是内部的private方法,有些是展现给我们的外部方法。这里主要讲的方法是他的内部方法withScope,方法如下:/** * Execute a block of code in a scope such that all new RDDs created in this body will * be part of t

2016-07-22 10:05:23 1191

原创 Spark源码解析(一)

RDD之getNarrowAncestors内部方法分析最近开始spark的源码攻关,其实看源码一直是我最怕的东西,因为太多、太杂、太深导致不能够很好的把我脉络导致每次最后都放弃。有人跟我说看源码可以阶段性一个方法一个方法的去学习,去看,每天积累一点总会成功,那么今天开始我的第一天spark源码分析。我这里从spark最基本的RDD中的方法说起,我感觉这样会更容易一些。同时我只对其中感觉比

2016-07-14 14:43:30 794

原创 spark-streaming入门(三)

Spark Streaming + Flume Integration GuideApache Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. Here we expla

2016-05-28 14:42:06 865

原创 spark-streaming入门(二)

Input DStreams and ReceiversInput DStreams are DStreams representing the stream of input data received from streaming sources. In the quick example, lines was an input DStream as it represented th

2016-05-26 22:45:54 10057

python scrapy 所需所有

windows 下安装python 的scrapy所需的所有都在这里,不要分,尽分享,挨个找累死了.

2016-01-06

plsql developer

用于链接各种数据库 很方便 节省很多写SQL的过程 手动操作

2014-12-13

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

TA关注的人

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