如何三步搭建一套声纹系统

背景引见

声纹检索,望文生义就是谈话人识别,经过声响来验证或许识别谈话人的声响。声纹识别的关键步骤就是声响向量化,将谈话人的声响将其转化成结构化的向量。阿里云AnalyticDB向量版,提供了一套声纹验证检索的处置方案。用户只要要经常使用繁难的几条SQL命令,三步之内就可以搭建一套高精度的声纹检索验证服务。

声纹识别技术

1)声纹检索演示

图1展现了AnalyticDB向量数据库的声纹检索系统的演示界面。为了繁难用户体验,咱们将380团体的声响消息,转化成向量存储在系统中。演示系统分红两局部,第一局部是检索局部,用户输入录制好的声响文件或许用户现场启动录音上行声响文件,提交到声纹库启动声响的婚配检索。第二局部是注册局部,用户可以注册上行自己的声响到的声纹库外面,繁难前期的查问验证。在接上去的章节中,咱们区分引见各个配置。

图1. 声纹演示系统

图2上行一段S0004的测试音频“BAC009S0004W0486.wav”到声纹库外面启动检索,可以看到TOP1的结果S0004就会在最下面启动展现。

图2. 查问声响

图3展现了声纹注册系统,用户可以注册自己的声响到后盾声纹库外面,繁难检索。比如说,用户Hanchao注册自己的声响(只要7s长度),到的系统外面来。系统允许无文本注册,用户可以说任何话来启动注册。

图3. 注册声响

图4演示用户现场录制声响,上行到系统中,启动检索。比如说,“Hanchao”录制了一段5秒的语音到声纹系统中启动检索。之前注册过“Hanchao”的声响,系统可以看到排名第一的声响就是“Hanchao”的声响。

图4. 录制并检索声响

关于声纹演示,咱们驳回的是1:N的演示结果,可以用在会议室中的识别,经过声响可以找到关系的会议谈话人。,关于身份验证,这种1:1的演示,咱们只用限度距离小于550,就可以繁难的启出发份验证。

2)运行结构总体设计

阿里云声纹库检索的系统框架的总体架构如图5所示,AnalyticDB(声纹库)担任整个声纹检索运行的所有结构化消息(用户注册标识,用户姓名,以及其余的用户消息)和非结构化消息(声响发生的向量)的存储和查问。在查问的环节中,用户经过声纹抽取模型,将声响转成向量,在AnalyticDB中启动查问。系统返还回来关系的用户消息,以及l2向量距离[5]。其中声响抽取模型的训练和测试,咱们在下一章启动解说。

图5. 声纹检索库

3)系统精度

演示声纹系统,驳回的是GMM-UMB模型抽取的i-vector作为检索向量[3]。另外,咱们还训练了精度更高的深度学习声纹识别模型(x-vector[4])。并且,可以针对特定的场景,比如说电话通话场景,手机APP场景,喧闹噪声场景等关系的场景启动声纹模型训练,详细消息可以加咱们的群启动了解。

声纹识别在学术界罕用的数据集(Aishall.v1 [1]数据集和TIMIT [2]数据集)下面的(1:N)的准确率(>99.5%,见表1)。

表1. Top 1 精度测试结果

三步搭建一个声纹系统

第一步,初始化。

系统成功了声响转向量的函数,用户将前端获取的声响经过POST恳求,发给阿里云服务系统,选用对应的声纹模型,就可以将声响转成对应的向量。

import requestsimport jsonimport numpy as np# sound: 声响二进制文件。# model_id:模型id。def get_vector(sound, model_id='i-vector'): url = 'http://47.111.21.183:18089/demo/vdb/v1/retrieve' d = {'resource': sound, 'model_id': model_id} r = requests.post(url,>

您可能还会对下面的文章感兴趣: