团员分享_浅谈声纹识别之数据清洗_@Cony_20190523
2020年8月27日 更新
开启更多功能,提升办公效能

前言:本文是cony关于声纹识别系列分享的第2篇,在第一篇《浅谈声纹识别_Cony_20190503》中,有介绍声纹识别的定义、优缺点、功能、算法、应用和边界等信息;而本文讲具体分享这个领域的数据清洗相关实战干货。



吴军的《人工智能》中提到,在算法改变不大的情况下,有足够多且准确标注的数据,算法的准确率就可以大大提升,由此可见大量且准确的数据的重要性。


与AI相关的工作,难免会与数据接触,不同的AI技术,数据清洗过程也有相似的地方,我将工作接触到的一些数据处理的工作,整理了一下,和大家分享。


图1 数据清洗流程

一、数据的需求与目的

1.1 目的

在To B的公司,算法的优化需求来源于客户,在充分了解客户需求之后,根据算法测试结果分析需要优化的方向,才能确定需要收集什么数据和交付什么样格式的数据给算法同事。


对于声纹识别算法来说,目的一般如下:

  • 提高特定语句的识别准确率
  • 提高活体检测识别率
  • 优化时变鲁棒性
  • 优化信道鲁棒性
  • 优化噪音鲁棒性
  • ...


上述目的,直接关系到采集语音的内容、环境、时长、次数、信道、人群、时间。另外,测试集和训练集所需的数据量级差别较大,比如测试集需要200人,每人2条音频,训练集则需要5万人,每人5条音频。


在开始收集数据前,根据需求与算法工程师确认清楚采集的详细要求,再展开工作。

1.2 收集途径

①购买

训练集所需的数据量比较大,如果靠公司内部采集,耗时耗力,还很难达到要求,所以一般训练集是在网上找供应商购买。但是价格很贵,现阶段,只做数据采集就可以养活一家公司了。

购买来的数据,仍需要经过数据清洗才能达到训练的标准。


②公司内部采集

测试集的要求比较少的时候,可通过内部员工进行采集,比如找亲朋好友帮忙录,那么产品经理就需要组织一下采集活动,整理一份操作步骤,包括下载录音App、操作步骤、导出发送,同时可以准备一些小礼品鼓励大家积极参加采集活动。


③找外包公司采集

采集任务很繁琐,也可以找外包公司来做。如果采集的频率比较高,并且采集采集步骤繁琐,可以设计开发一个专门用于采集语音的小程序,被采集者只需要跟着提示操作即可,大大提高采集效率。


④找公司合作

购买数据价格太贵,内部采集效率太低,可以考虑找一些每天都会产生非常多语音数据的公司合作,比如拥有上千客服坐席的客服公司,只要双方达成互利互惠的合作协议,就可以获取一定规模量的音频数据。

二、数据清洗

2.1 数据命名

规范的命名,就是对音频数据的标注标签,有利于保存批量的数据,也有利于在测试出现问题时,快速分析原因。


图2 音频数据命名规则


数据简写:简单描述采集人身份的更多信息,如年龄、语言、健康状况等

说话人ID:1个唯一编号只能对应1个人,可以是手机号码或者特殊编号

数据来源:从数据来源信息分析环境噪音,便于定位问题

语音ID号:同一文本类型,可能录制多次,比如数字文本录制8次,按编号1-8进行标记

数据时间:仅用于记录,但也是必要信息

数据录制设备:采集多信道数据时,这是重要的标记信息

数据用途:用于声纹识别或活体检测

数据类型:数据分为固定文本、数字文本和自由文本,简写可快速得知数据类型

采样率:数据采样率

2.2 初步筛选

①编码格式:编码格式有wav、pcm、ivd等,格式必须统一用一种,具体按算法的要求进行转换。


②采样率:采样率有8k、16k、44.1k、48k等,采样率仍需统一,具体按算法要求转换,高采样率的音频可以转低采样率,低采样率不可转高采样率。


③VAD不达标:VAD包括音量、信噪比、有效时长,算法同事提供VAD检测工具即可筛选掉不达标的音频。

2.3 数据清洗

①数据的剪切和存储结构:

经过初步筛选的数据,若为长段的数据,需先切分为多段,具体按算法要求进行切分,短语音长度为5-10秒,长语音为15-20秒。


剪切后,同一人的数据分为2个文件夹,一个是“注册”,一个是“验证”。


②声纹算法复测:

用“注册”文件夹的音频进行注册,“验证”音频的文件夹去进行1:N验证,将得到一个分数比对表格。

图3 算法比对得分表


③人工清洗:

借助上面声纹算法验证得出的分数比对表格,开始人工清洗。


表格的数据可分为“同一人不同音频的比对分数”“不同人不同音频的的比对分数”同一人不同音频的比对分数越低,说明音频越有可能非同一人声音;不同人不同音频的比对分数越高,音频越有可能是同一人声音。(算法计算的得分,在这里只供参考,而不能完全依赖)


筛选出这部分音频,人工听后判断是否为同一人,或不同人,再对音频进行删除与合并,使数据更干净。


人工听音频时,部分音频夹杂了其它杂音,比如电话彩铃声、其他人声等,可以用audacity工具剪切掉。

图4 Audacity数据处理界面


人工听音频时,容易受主观影响,声音不像图像可以看,而要靠听,听的音频多了,容易混淆,所以听到不确定的音频时,可以找其他人帮忙鉴定,以免判断有误。

2.4 汇总数据并交付

音频清洗小组将各自分配的音频任务清洗完毕后,统一在组长处汇总,组长抽查部分音频,作最终输出前的检查,完成后,即可将数据交付给算法进行训练和测试了。

三、总结

数据清洗是一件非常繁琐,但也非常重要的事。产品经理除了要明确需求,输出需求文档之外,还需要尽早制定和完善流程(有专门的数据清洗团队的公司就不需要产品经理过度干涉),确保整个繁琐的清洗过程处于可控状态,保证交付数据的质量。


交付数据后,剩下的事情就交给算法攻城狮了,但产品经理还要持续关注算法的优化和测试结果,达到预期的优化效果,才是最终目的。



附:cony的第1篇分享在


-END-


以上内容,来自饭团“AI产品经理大本营”,点击这里可关注:http://fantuan.guokr.net/groups/219/ (如果遇到支付问题,请先关注饭团的官方微信服务号“fantuan-app”)


---------------------

作者:黄钊hanniman,图灵机器人-人才战略官,前腾讯产品经理,6年AI实战经验,9年互联网背景,微信公众号/知乎/在行ID“hanniman”,饭团“AI产品经理大本营”,分享人工智能相关原创干货,200页PPT《人工智能产品经理的新起点》被业内广泛好评,下载量1万+。