10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

谷歌开源监督式说话人分类算法,准确率高达 92.4%

  • 2018-11-13
  • 本文字数:1458 字

    阅读完需:约 5 分钟

谷歌开源监督式说话人分类算法,准确率高达92.4%

AI 前线导读: 说话人分类,即从包含多个说话人声音的音频流中,单独将每个人的音频划分到同一类别下的过程,是语音识别系统的重要部分。通过解决“谁在何时说话”的问题,说话人分类可以应用于许多重要场景,例如理解医疗对话、视频字幕等。


然而,使用监督学习方法训练这些系统具有很大的挑战性。与标准监督分类任务不同,一个强大的分类模型需要能够让新加入的,训练中没有的语音片段产生相关性。重要的是,这限制了线上和离线分类系统的质量。在线系统通常受到的影响更大,因为它们需要实时地分类结果。


更多干货内容请关注微信公众号“AI 前线”(ID:ai-front)



(线上流式音频输入说话人分类。底部轴的不同颜色表示不同的说话人。)


《完全监督说话人分类》一文中,我们描述了一种新模型,能以更有效的方式使用监督式说话人标签。这里的“完全”意味着说话人分类系统中的所有组成部分,包括说话人数量预估,都进行了监督式训练,以便它们可以从可用的标记数据增加中受益。在 NIST SRE 2000 CALLHOME 基准测试中,我们的分类错误率(DER)低至 7.6%,而之前基于聚类的方法错误率为 8.8%,深度神经网络嵌入方法的错误率为 9.9%。


此外,我们的方法基于在线解码实现了较低的错误率,特别适用于实时应用场景。我们开源了本文提到的核心算法,以加速此方向的更多研究。

聚类算法 VS 交织状 RNN

现代说话人分类系统通常基于聚类算法,例如 k 均值或谱聚类。由于这些聚类方法是无监督的,因此无法充分利用数据中可用的监督式说话者标签。此外,在线聚类算法通常在具有流式音频输入的实时说话人分类应用中效果欠佳。我们的模型和常见聚类算法的关键区别在于,我们使用地方法,所有说话人嵌入都是通过参数共享递归神经网络(RNN)建模的,并使用交织在时间域的不同的 RNN 状态区分不同的说话者。


为了解其工作原理,请参见以下示例,其中有四种可能的说话人:蓝色、黄色、粉红色和绿色。这是一个任意的数字,实际上可能还有更多,我们使用了中国餐馆流程(一个典型的 Dirichlet 过程混合模型 )来处理未知数量的说话人。每个说话人以其自己的 RNN 实例(在所有说话人之间共享的公共初始状态)开始,并且在给定来自该说话人的新嵌入的情况下保持更新 RNN 状态。在下面的示例中,蓝色说话人不断更新其 RNN 状态,直到另一个说话人黄色进入。如果蓝色稍后再次说话,它将继续更新其 RNN 状态。(这只是下图中语音段 y7 的可能性之一。如果新的说话人绿色进入,它将以新的 RNN 实例开始。)



(模型的生成过程。颜色表示说话人片段的标签。)


将说话人表示为 RNN 状态使我们能够学习使用 RNN 参数在不同说话人和话语之间共享的高水平知识,这保证了更多标记数据能发挥更大的作用。相比之下,常见的聚类算法几乎总是独立地处理单个发音,因此很难从大量标记数据中受益。


如此,通过时间标记的说话人标签(即知道谁在何时说话),我们可以用标准的随机梯度下降算法训练模型。经过训练的模型可以对系统未听到过的说话人进行分类。此外,在线解码也使其更适用于对延迟敏感的应用程序。

未来计划

尽管该系统使得分类性能大大提高,但我们目前仍在探索许多令人兴奋的方向。首先,我们正在改进此模型,让它可以轻松地集成上下文信息进行离线解码。这可能会进一步降低 DER,并且对延迟不敏感的应用程序更有用。其次,我们计划直接模拟声学特征而不是使用 d 向量。通过这种方法,我们能够以端到端的方式训练整个说话人分类系统。


论文链接:https://arxiv.org/abs/1810.04719


开源算法地址:https://github.com/google/uis-rnn


原文链接:https://ai.googleblog.com/


2018-11-13 19:442900
用户头像

发布了 42 篇内容, 共 16.3 次阅读, 收获喜欢 53 次。

关注

评论

发布
暂无评论
发现更多内容

Containerd ctr、crictl、nerdctl 实战

CTO技术共享

真的破防了!在华为主题熄屏显示找到我的第一台Mate

最新动态

致敬经典!这款华为主题能让你的手机秒变“历代Mate”

最新动态

LeetCode-28. 实现strStr()(java)

bug菌

9月日更 Leet Code 9月月更

产品需求文档必须消亡

ShineScrum

Scrum 敏捷 产品开发 PRD

计算机网络的组成

StackOverflow

编程 计算机网络 9月月更

1分钟了解什么是数据湖?标准的数据湖什么样?

雨果

数据湖

阿里云林小平:如何实现资源高效运维及成本分析

阿里云弹性计算

运维 资源管理

生产环境中使用 Linkerd

CTO技术共享

YAML管理Kubernetes应用

CTO技术共享

云原生(三十六) | Kubernetes篇之Harbor入门和安装

Lansonli

云原生 9月月更

Java进阶(五)Junit测试

No Silver Bullet

JUnit 测试 单元测试 9月月更

P8大佬私藏的:微服务与分布式系统实践详解,YYDS!

程序知音

Java 分布式 SpringCloud 后端技术 微服务架构师

【CSS】 position : static | absolute | relative | fixed | sticky

翼同学

CSS 前端 9月月更

查看k8s的etcd数据

程序员欣宸

Kubernetes 9月月更

LeetCode-27. 移除元素(java)

bug菌

9月日更 Leet Code 9月月更

Linux系统安装配置jdk

Centos 7 jdk8 9月月更

自动化测试如何管理测试数据

老张

自动化测试

《小米创业思考》之一:小米历程

郭明

读书笔记

云原生的学习心得

Geek_e8bfe4

[教你做小游戏] 滑动选中!PC端+移动端适配!完美用户体验!斗地主手牌交互示范

HullQin

CSS JavaScript html 前端 9月月更

库调多了,都忘了最基础的概念-《方法篇》

知识浅谈

9月月更

NFT数字藏品介绍:NFT数字藏品(交易平台)系统开发

开源直播系统源码

区块链 NFT 数字藏品 数字馆藏

【iOS逆向】某营业厅算法分析

小陈

C语言_1 背景,和Hello world

泾箐

c 9月月更

深入学习SAP UI5框架代码系列之二:UI5 Module的懒加载机制

汪子熙

JavaScript 前端框架 SAP ui5 9月月更

数字化转型和信息化的区别是什么?

雨果

数字化转型 企业信息化

Java网络编程之InetAddress类详解,URL和URI的区别,URLDecoder和URLEncoder,IPv6和IPv4区别,IPv6的三种表示方法

共饮一杯无

Java 9月月更 URL和URI

如何使用Postman调试HMS Core推送接口?

HarmonyOS SDK

移动推送

随机生成也是需要有效控制的

zxhtom

9月月更

谷歌开源监督式说话人分类算法,准确率高达92.4%_AI&大模型_Google AI_InfoQ精选文章