写点什么

谷歌开源监督式说话人分类算法,准确率高达 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:443091
用户头像

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

关注

评论

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

Compose 编程思想

Changing Lin

8月日更

Python代码阅读(第7篇):列表分组计数

Felix

Python 编程 Code Programing 阅读代码

Java测试框架九大法宝

FunTester

自动化测试 JUnit 测试框架 selenium testNG

2021 斩获 90K 月薪的 Spring 全家桶:文档 + 面试题 + 学习笔记 + 思维导图

编程 架构 微服务 IT 计算机

从技术到文案,还回技术么?

escray

学习 极客时间 朱赟的技术管理课 8月日更

C++ Vector

若尘

c++ vector 8月日更

接口返回值一定不允许使用枚举类型吗?

skow

Java 面试 后端 开发规范

Tensor:Pytorch神经网络界的Numpy

华为云开发者联盟

神经网络 数组 PyTorch Numpy Tenso

面试进阶齐飞!霸榜GitHub的 Java 全栈笔记太香了!

Java 编程 程序员 IT 计算机

Apache之道在腾讯的探索与实践

腾源会

Apache 开源 腾源会 腾讯开源

孩子排斥写作业 VS 员工不接活儿——项目管理来帮忙

Ian哥

台达AS228T_CanOpen_VFD_X

林建

台达 AS228T Canopen 功能块 E变址

MySQL中的DEFINER(定义者)是什么

Simon

MySQL

惠及百万用户 医保“上云”有了新思路

云计算

spring cloud 在国内中小型公司能用起微服务来吗?

Java 程序员 架构 面试 IT

“助力金九银十”25 大Java后端面试指南,3000道面试题解析

Java 编程 程序员 面试 IT

我看 JAVA 之 并发编程【三】java.util.concurrent.atomic

awen

Java 并发编程 Atomic 原子操作

使用Micronaut框架构建一个微服务网络.

Java 编程 架构 面试 程序人生

xposed 入门之修改手机 IMEI

Qunar技术沙龙

android 程序员 App 经验分享 安卓

算法有救了!GitHub 上神仙项目手把手带你刷算法,Star 数已破500k

Java 编程 程序员 面试 算法

Java 程序性能优化“学习日记”

Java 编程 面试 IT 计算机

经验分享:我是如何拿下微软、滴滴、百度等 20家大厂的 Offer?

Java 程序员 架构 面试 IT

Spring Boot 实战派,让开发像喝水一样简单!

Java 程序员 架构 面试 IT

你真的懂语音特征吗?

华为云开发者联盟

语音 音频 声学 时域图 时域

这波性能优化,太炸裂了!

why技术

Java 性能优化 JVM

渣本全力以赴33天,四面阿里妈妈(淘宝联盟),拿下实习岗offer

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

收获颇丰!这份阿里架构师纯手敲JDK源码全彩小册可以打满分

Java架构追梦

Java 阿里巴巴 架构 面试 jdk源码

为什么安全性在托管中变得越来越重要

九河云安全

高频面试题-请把Java垃圾回收器说清楚

Java 编程 架构 面试 JVM

毕业六年本科,去年疫情期间备战二个月,阿里巴巴四面成功!定级 P7

Java 程序员 架构 面试 IT

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