
sre
jinmingz
ASR SRE DeepLearning
展开
-
GMM(高斯混合模型)以及简单实现
本文主要是学习比较,主要参考这两篇博文,写的非常通俗易懂: http://blog.pluskid.org/?p=39 http://freemind.pluskid.org/machine-learning/regularized-gaussian-covariance-estimation/ http://blog.youkuaiyun.com/gugugujiawei/article/detail原创 2016-09-04 22:34:20 · 13587 阅读 · 1 评论 -
MFCC 过程理解
---最近看信号处理相关的知识,会随时补充或者更正之前写的不对的地方,或者是补充一些自己的理解----ref: https://www.zhihu.com/question/27268668 等。 语音识别中常用的特征提取方法: 声学特征有线性预测编码(Linear Predictive Coding,LPC),梅尔频率倒谱系数(Mel-frequency Cepstru原创 2016-06-16 14:39:01 · 18846 阅读 · 0 评论 -
wav 与 pcm 互转
语音wav转pcm可以用ffmpeg工具,也可以自己写,主要是要了解pcm和wav的格式以及头信息的: pcm 是没有头信息的,wav有44字节的头文件,所以去掉44字节的头文件就okay了import osimport numpy as npf = open("sw02725-A_018202-018583#sw02141-B_013798-014064.wav")f.seek(0)f.r原创 2017-05-11 21:11:45 · 25710 阅读 · 3 评论 -
Kaldi中的plda的训练以及computer-socre
最近一直有个疑惑,plda是怎么训练的?就是plda是怎么计算得分的? 又是怎么根据得分进行判断说话人的? EER跟准确率之间又是什么关系? 时间很紧,论文还没写,需要静一静,好好弄明白这个来清醒一下。 提取完i-vector之后,计算出每一句话的ivector特征,然后计算了sreivector-mean scp:exp/ivectors_sre/ivector.scp exp/ivector原创 2016-10-16 23:37:32 · 9729 阅读 · 1 评论 -
MLE,EM,MAP 三种算法对比和理解
reference link: http://blog.youkuaiyun.com/upon_the_yun/article/details/8915283 最大似然估计(MLP): (1) 写出似然函数 (2) 对似然函数取对数,并整理 (3) 求导数 (4) 解似然方程 假设x为独立同分布的采样,θ为模型参数, f为我们所使用的模型, 那么最大似然估计可以表示为: Sit原创 2016-09-29 01:51:23 · 19625 阅读 · 0 评论 -
mac下安装pyaudio
小小搬运工: https://stackoverflow.com/questions/33851379/pyaudio-installation-on-mac-python-3主要步骤是:xcode-select --install #安装xcode, 已经装好的的话,执行的时候会提示brew remove portaudio #先卸载brew install portaudio #重新安转载 2017-06-09 17:28:35 · 7341 阅读 · 0 评论 -
条件概率和后验概率(Baum-Welch statistics)
来自知乎:https://www.zhihu.com/question/22905989 后验概率是一种条件概率,它限定了事件为隐变量取值,而条件为观测结果。 一般的条件概率,条件和事件可以是任意的。 比如: \begin{equation}\label{eq4}\gamma_{t}(c) = P(c | Y_{t}, \Omega)\end{equation}\begin{equation原创 2016-11-17 17:18:04 · 7149 阅读 · 0 评论 -
DTW(一)
reference: http://blog.youkuaiyun.com/zouxy09/article/details/9140207 http://www.cnblogs.com/tornadomeet/archive/2012/03/23/2413363.html http://www.fon.hum.uva.nl/david/ba原创 2016-10-05 15:58:20 · 1404 阅读 · 0 评论 -
说话人识别中的VAD
本文根据kaldi中的vad的算法 kaldi/src/ivector/voice-activity-detection.cc以及网上的一些资源来总结一下这个知识点。首先VAD的全称是:Voice Activity Detection (语音激活检测), 能够区分传输语音信号中的语音信号和背景噪音, 当然还能在通信中区分语音和静默段能够区分传输语音信号中的语音信号和背景噪音,避免带原创 2016-08-27 22:22:17 · 15294 阅读 · 3 评论 -
sidekit(一)安装
本文完全参考自: http://www.aichengxu.com/view/24309确定系统有python,numpy,libhdf5-dev,和HDF5.前三者一般都有。这里要安装HDF5;去HDF5官方网站 ( http://www.hdfgroup.org/HDF5/ ) 下载编译好的bin(是的,尽管教程让编译,这里给用户的就是编译好的bin,搞得我这小白编译了半天);解压,重命名转载 2016-11-21 20:09:50 · 4536 阅读 · 0 评论 -
kaldi中改写sre10/v1用timit dataset做说话人识别总结
经过一个周的调试修改,终于在timit数据集上跑通了sre10中的v1 demo, 特来总结一下,重新理顺一下思路,把其中的各个步骤的算法大体的捋一遍。 最重要的还是数据准备阶段,由于没有原始的数据,整个过程进行的比较困难,花了差不多一个周的时间来各种改,之前第一次跑wsj那个demo的时候才花了不到一个周,现在对kaldi还算比较熟悉,对数据处理的脚本也都写出来了,只需要稍微改一下就好,总之还是原创 2016-09-03 20:28:50 · 12348 阅读 · 14 评论 -
EER(等概率错误)
Equal Error Rate , 这个在说话人识别,说话人确认中最常用的评价标准,之前不是很理解,为什么不用直接的错误率,不管是识别还是确认,错了就错了,对了就对了,然后统计一下,计算错误率不是更直接嘛,为什么要制造nontarget target , 然后去计算EER? 还记得trials文件嘛,还记得没有cvs文件自己伪造trials文件嘛, 还记得不明白为什么要制造50%或者80%原创 2016-09-16 23:22:39 · 18913 阅读 · 1 评论 -
画EER曲线,声纹确认
画EER曲线首先需要知道每个阈值点对应的错误接受率和错误拒绝率(跟计算准确率召回率,画准确率召回率曲线差不多): scores文件的格式: score target/nontarget#!coding=utf-8def read_file(filename): with open(filename, 'r') as f: lines = f.readlines()原创 2017-03-06 00:23:31 · 7487 阅读 · 0 评论 -
kaldi直接使用FFT频谱
#!/bin/bashif [ -f path.sh ]; then . ./path.sh; fi . parse_options.sh || exit 1;cmd=run.plnj=10logdir=make_fftname=testscp=data/test/wav.scpfftdir=fftmkdir -p fftmkdir -p make_fftfor n in $(原创 2016-09-21 21:07:41 · 1992 阅读 · 0 评论 -
Tandem Features or Bottleneck Features
这两个词刚看到的时候没反应过来是什么意思,在 Deep Neural Network based Text-Dependent Speaker Recognition:Preliminary Results 这篇文章中,原文如下: Another approach that makes use of a phonetic discriminant DNN for speaker verifica原创 2016-09-13 17:08:32 · 2698 阅读 · 0 评论 -
带宽和采样频率
今天被虐了,没有学过信号处理,在平时的学习中也没有注重这些基础知识. 带宽:带宽是反映信号频率通过能力,带宽越大,对信号中的各种频率成分(特别是高频成分)能准确有效地放大与显示,也就较为准确,如果带宽不够,那就会损失很多高频成分,信号自然就显示不准确了,出现较大误差。 在一秒的时间内最大最多能通过的信号,所以带宽要大于等于最高频率fmax. 采样率: 而采样率是将模拟量转换为数字量时对信号转原创 2016-09-28 15:19:49 · 57269 阅读 · 2 评论 -
Error: utils/validate_data_dir.sh: file data/sre/utt2spk is not in sorted order or has duplicates
之前也遇到过,就是没有排序或者是有重复的,加一个 sort -u 就好了。但是今天这个错误和另一个错误交替出现,调了两个多小时,差点砸笔记本了,还有一个错误是: Error : ” utt2spk is not in sorted order when sorted first on speaker-id fix this by making speaker-ids prefixes of原创 2016-10-25 00:32:31 · 6360 阅读 · 3 评论 -
音频信号中采样率和比特率以及采样编码的问题
采样率和比特率:cmd: soxi aa.mp3Input File : 'aa.mp3'Channels : 1 Sample Rate : 44100 Precision : 16-bitDuration : 00:01:11.95 = 3172951 samples = 5396.18 CDDA sectorsFile Size原创 2016-10-23 15:40:18 · 5079 阅读 · 0 评论 -
sidekit中GMM-UBM中speaker-adaptation部分
sidekit还是挺不错的,很简单,文档更是直接把源码给你,如果能顺利搭好环境,如果有基础的话,一天之内跑通应该是没有问题的。 下面开始对GMM-UBM中说话人自适应调整以及计算得分进行详细的分析,其中也会有代码改写的部分,因为那么多h5文件,看着挺烦的, 在看下面之前首先保证已经熟悉了sidekit, 并且对里边的h5文件的格式都很清楚,否则没有必要继续往下看。下面这是自适应部分的源码,uti原创 2016-12-16 19:23:14 · 5533 阅读 · 3 评论 -
kaldi工具:est-pca 和 paste-feats
感觉kaldi的一些工具的说明不是很详细,经常会用错,这就需要看看相近的几个命令都尝试一下。 我现在有一个需求: 需要把128维的bottleneck features 用PCA降到26维,然后再把这26维与之前的fbank的特征做一个拼接,生成每一帧都是26+26=52维的特征,yeah, 这就是tandem-feature. 现在bottleneck feature已经okay了(这一步其实原创 2016-10-06 18:22:23 · 2262 阅读 · 1 评论 -
kaldi基于GMM做分类问题
对于每个类别的GMM有几种思路: 第一是将所有训练数据按类别分开,每类的数据训练一个GMM模型 第二是将所有的数据训练一个UBM模型,然后将训练数据按类别分开,用MAP去训练每个类别的GMM(对角UBM的MAP貌似kaldi 没有) 第三就是将所有的数据训练一个UBM模型,然后不做MAP,直接用训好的UBM所GMM的初始值,然后将所有训练数据按类别分开,训练三个GMM模型(在第一种方法的GMM原创 2017-02-15 16:56:47 · 5346 阅读 · 3 评论 -
sidekit(二)两个小bug
之前发过的一封邮件,是1.2.2版本的,但是1.2.3版本还存在这个issue2问题。My machine environments is: python=2.7 sidekit=1.2.2Issue1: # 这个问题在3.5中没有,在2.x存在这个问题 in the anaconda2/lib/python2.7/site-packages/sidekit/frontend/io.py li原创 2017-12-12 23:15:45 · 1177 阅读 · 0 评论