网站首页 > 技术文章 正文
2017-06-26 量子位
安妮 编译自 Github
量子位出品 | 公众号 QbitAI
说话人确认(Speaker Verification)是一种以语言特性确认说话人身份的技术。
近日,西弗吉尼亚大学的博士生Amirsina Torfi在Github上发布了用3D卷积神经网络(后简称3D-CNN)确认说话人身份的代码,并公布了研究论文。
Paper链接:
https://arxiv.org/abs/1705.09422
Code链接:
https://github.com/astorfi/3D-convolutional-speaker-recognition
概览
我们先利用3D卷积结构创造出说话人模型(Speaker model),它可以从说话人的表达中同时捕捉相关语音和时态信息。
说话人确认协议(SVP)
3D-CNN架构已经被利用在文本无关(Text-Independent)语句确认说话人的三个阶段:
1.在开发阶段,经过训练的CNN可以在表达层面将说话人分类。
2.在注册阶段,训练过的网络可以基于提取特征构建每个说话人的模型。
3.评估阶段中,从表达文本中提取的特征将会与存储的说话人模型做对比,最后验证说话人身份。
我们通常将上述提及的三个阶段视为SVP(Speaker Verification Protocol),构建说话人模型是目前的技术难点。之前的方法大多基于说话人的表达平均提取特征,也就是我们熟知的d-vector系统。
如何利用3D卷积神经网络
在本篇论文中,我们建议用3D-CNN直接创建开发和注册阶段的说话人模型,这两个阶段输入的是相同语句。这样网络就能够同时捕捉相关说话人信息,建立更强大的系统处理语音变化。这种方法明显优于d-vector验证系统。
代码实现
这个模型是在TensorFlow上实现的,输入管道(Input pipeline)需要由用户提供。其余部分的实现需要考虑包含了表达提取特征的数据集,它一般存储在HDF5的文件夹中。但这点也不是必须的,通过下面的代码,任何适应TensorFlow的文件格式都能实现。
△ 输入管道
MFCC(Mel频率倒谱系数)特征可以作为框架级语音表达的数据表示,但最后生成MFCC的DCT 1运算会导致这些特征成为非局部特征。这一操作扰乱了局部性,也与卷积操作中的局部特征形成了鲜明的对比。
在这里我们就用到了对数能量,我们也称它为MFEC。MFEC中提取的特征与丢弃DCT运算得到的特征相似,它们的时间特征是重叠的20ms窗口,跨度为10ms,这是为了生成频谱特征。
在一个0.8秒的声音样本中,可以从输入语音特征图中获得80个时间特征集合(每个都组成40个MFEC特征)。每张输入特征图的维度是ζ×80×40,它们由80个输入帧和相似的图谱特征组成,ζ代表在开发和注册阶段用到的语句数量。
3D卷积运算的实现
下面这段代码已经可以实现三维卷积运算,这些高级的slim API使我们实现起来非常简单。
我们可以看到这里用到了slim.conv2d代码块,[k_x, k_y, k_z] 和stride=[a, b, c]这样的3D内核可以将它转化为3D-conv操作。 tf.contrib.layers.conv2d是slim.conv2d的基础。
灵感来源
代码结构部分的灵感来源自Slim和Slim的图像分类库。
相关Code:
https://github.com/tensorflow/models/tree/master/slim
【完】
一则通知
量子位正在组建自动驾驶技术群,面向研究自动驾驶相关领域的在校学生或一线工程师。李开复、王咏刚、王乃岩等大牛都在群里。欢迎大家加量子位微信(qbitbot),备注“自动驾驶”申请加入哈~
招聘
量子位正在招募编辑记者、运营、产品等岗位,工作地点在北京中关村。相关细节,请在公众号对话界面,回复:“招聘”。
猜你喜欢
- 2024-10-13 将 TF1.x 代码迁移到TensorFlow 2.0的解决方案(官方教程翻译)
- 2024-10-13 python人工智能:完整的图片识别(非图片验证码),以及模型的使用
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)