Kaldi中 声纹识别的流程图
总结了一波Kaldi中声纹识别的流程和所用的可执行文件,.
把可执行文件当作一个库来用,自己来仿照这sre08,sre10,或者aishell的run.sh用自己的数据来完成自己的声纹识别系统就好.
自己还在研究,但是说几个我认为比较关键的地方:
1.
gmm-gselect : 对每帧选择能取得最高likelihood的前n个分量, 其他的分量忽略. 返回的是这些分量的索引,后面计算的时候对于每帧只用这些索引的高斯分量进行统计量计算.减少计算过程和时间.
详细理论参考 :GMM-UBM论文
2.
计算ivector 时,因为ivector的计算公式为:
首先需要两个统计量,分别式零阶的统计量和一阶的统计量
如最下的流程图所示:
1. 零階統計量相關的操作 : fgmm-global-gselect-to-post 和scale post
fgmm-global-gselect-to-post 输入是协方差全矩阵的features 以及 所选择的高斯分量,输出是对所选择的高斯分量的后验概率,这样的话,原本后言概率的矩阵是 frames 长度*高斯总分量,现在变成了 长度*select过的高斯分量的个数
scale-post 乘上一個系數0 ~ 1的系數 控制連續的,繼承的特徵高度相關,因爲這兩步是維了去計算0階統計量,對角線都是後驗概率的協方差矩陣. 所以這裏可能可能是跟T矩陣的原因有關? 因爲我們知道T矩陣lowrank,這裏是否來控制冗餘??? (这里我猜测)
上面是爲了計算零階統計量的操作,即N(u)就是對每個分量,每個frame計算gamma和
2. Ivector 的計算,T矩陣的計算:
ivector-extractor.h中一些變量的解析和理解
首先確定kaldi與輪中中對一些參數的變量的名字是不一樣的,這裏的D,I,S分別代表着mfcc特徵的維度,高斯的分量數以及ivector的維度,公式中分别式 F,C, I
// D is the feature dim (e.g. D = 60)
// I is the number of Gaussians (e.g. I = 2048)
// S is the ivector dim (e.g. S = 400)
首先是 weight projection vector,因爲default 訓練ivector的extractor時:use_weights=false # set to true to turn on the regression of log-weights on the ivector
所以先不管它,表示是權重投影矩陣 那麼
Vector<double> w_vec_ 表示UBM的高斯分量的權重
std::vector<Matrix<double> > M_; 是ivector中最關鍵的元素,公式M=m+Tw中,M_就是T, 它是一個映射矩陣,能把高斯統計量映射到低緯度說話人表徵 i-vector,起到降維的作用. 它只用於表徵說話人變化,不帶有信道與噪聲變化.
它的維度是[ID,S]維矩陣, S要遠遠小於ID,V<<ID.
ivector=(Identity_matrix+T^(transpose)*sigma^(-1)*零階統計量*T)^(-1)*(T^(transpose)*sigma^(-1)*一階統計量)
std::vector<SpMatrix<double> > Sigma_inv_; 經過MAP的GMM-UBM說話人模型的協方差矩陣的^-1
上面ivector中的sigma^(-1)就是該值,通過公式,其實他的維度應該是 [ID,ID]維度,但kaldi中的[ID,D]維度有點怪
Matrix<double> U_;通過 上面公式所得的一個推到出來的變量 =T^transpose * sigama^-1 * T
自己把这些维度照着公式带入就好,N(u)是[ID,ID]维度,F(u)是[ID,1]
3.
因爲在论文中ivector假設一個人的所有語音都是由不同的人產生的,
ivector-extract是去extract每一個utterance的ivector
所以在kaldi中,它對每個音頻都有一個ivector,
所以在最後提取ivector中
會有
ivector-normalize-length scp:$dir/ivector.scp ark:- \| \
ivector-mean ark:$data/spk2utt ark:- ark:- ark,t:$dir/num_utts.ark \| \
ivector-normalize-length ark:- ark,scp:$dir/spk_ivector.ark,$dir/spk_ivector.scp || exit 1;
目的是
首先先對每個音頻的ivector進行標準化處理,然後根據spk2utt文件,對所有來自與同一個人的音頻的ivector進行平均處理
然後再標準化 得到最終的屬於每一個人的ivector.
参考论文: Ivector定义
后续还会整理和更新
有问题的地方请各位大大们提出
Kaldi中 声纹识别的流程图相关推荐
- kaldi中的声纹识别
kaldi中的声纹识别 文章目录 kaldi中的声纹识别 kaldi的安装 运行aishell例程 使用TIMIT数据库进行声纹识别 kaldi中声纹识别的流程 我的博客:https://yutouw ...
- 深度学习声纹识别_kaldi/语音识别ASR/声纹识别SRE/资源汇总
化 按时间顺序降序排列,最新内容在最上面 最下方有一些我通过各方渠道偶然得知的技术交流qq群,感兴趣可以加入 刘斌总结的学习资源,中科院自动化所博士生,研究方向为鲁棒性声学建模. [语音识别]从入门到 ...
- 探秘身份认证利器——声纹识别!
在这个移动互联网大行其道的年代,人们不用互相见面就可以完成很多事情,比如社交.购物.网上开店.金融交易等等,但是如何验证身份变成了人和人在不见面的情况下最难的事情.传统的解决方案就是密码或者秘钥,它需 ...
- 说话人识别(声纹识别)综述
目录 声纹识别背景介绍 声纹识别组成 数据 特征 模型 评价指标 声纹识别目前的挑战 参考文献 声纹识别背景介绍 声纹识别,也称作说话人识别,是一种通过声音判别说话人身份的技术.在现实生活中声纹识别的 ...
- python声纹识别_【kaldi学习.4】Aishell V1(说话人识别、声纹识别)中的run.sh详解...
下面打算用aishell来做声纹识别,在做声纹识别之前,肯定是要对run.sh这个文件做个深入的了解,才可以继续往下走,接下来会记录如何修改run.sh去运行自己的数据,而不是手动输入自己的数据... ...
- 从《人民的名义》看声纹识别技术在案件侦查中的应用
被号称为"史上最大尺度反腐剧"的<人民的名义>即将收官,播出期间,该剧一直备受好评.除了曲折的故事情节之外,该剧最大的看点就是公安机关曲折的案件侦查过程,只不过因为剧中 ...
- 详解声纹识别:如何正确评价小度在最强大脑中战平人类?|独家解析
雷锋网按:作者陈孝良,博士,声智科技创始人,曾任中科院声学所副研究员和信息化办公室主任,中科院上海高等研究院客座,北京市公安局首届网络应急专家,主要从事声学信号处理和 GPU 深度学习算法研究工作.本 ...
- 声纹识别(说话人识别)技术
说话人识别(Speaker Recognition,SR),又称声纹识别(Voiceprint Recognition,VPR),顾名思义,即通过声音来识别出来"谁在说话",是根据 ...
- [深度学习概念]·声纹识别技术简介
声纹识别技术简介 声纹识别,也称作说话人识别,是一种通过声音判别说话人身份的技术.从直觉上来说,声纹虽然不像人脸.指纹的个体差异那样直观可见,但由于每个人的声道.口腔和鼻腔也具有个体的差异性,因此反映 ...
最新文章
- 明日开播 | 7 场不可错过的 AI 技术专题
- 程序员老司机“随意开车”,恶搞代码让你分分钟玩死程序员!
- 『求助』请求服务器超时或失败问题
- matlab路面,赛道道路路况分析问题 matlab高手进下
- ECMA-335(CLI)标准 读书笔记(第一部:概念和架构 第7章)
- SAP 电商云 Spartacus UI product 明细页面的路由配置
- correct ways to define variables in python
- 不选择互联网行业,学弟学妹可以选择这些新兴科技行业发展!
- python实现将文件夹下文件随机移动指定数量到另一个文件夹下
- reids的持久化 RDB和AOF
- 软件测试测试 python_Python测试简介
- 【1024】我的CSDN博客之路,感谢CSDN,我们一路同行!深度学习系列专栏回顾
- 下载并还原AdventureWorksDW2012数据库
- Ubuntu赋予root权限
- 阿里巴巴商品详情API接口(item_get-获得商品详情接口),阿里巴巴API接口
- 微服务轮子项目(45) -Jenkins自动化部署
- BCM ESW芯片和Marvell CAT芯片的比较
- TensorFlow学习笔记02:使用tf.data读取和保存数据文件
- 电子商务(电销)平台中订单模块(Order)数据库设计明细
- android es file下载,es文件浏览器下载安装
热门文章
- ribbonmq超时配置_使用RabbitMQ实现订单超时取消(延迟队列)
- 基于springboot的ShardingSphere5.2.1的分库分表的解决方案之数据加密之RSA的解决方案(九)
- 【超快捷】Windows系统自带的快捷键合集
- ThingWorx中的Date操作
- vue项目 - 封装loding组件
- unity简单技能系统
- Python+OpenGL绘制任意长度和次数的B样条曲线
- kivy部署移动端预测模型网页计算器记录
- ubuntu16.04 安装显卡驱动
- window.print() 表格打印 完美实现分页