AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

Facebook 新成果:用于语音识别、生成和压缩的自监督表征学习的 HuBERT

  • 2021-06-17
  • 本文字数:2053 字

    阅读完需:约 7 分钟

Facebook 新成果:用于语音识别、生成和压缩的自监督表征学习的 HuBERT

关于本研究

许多人工智能研究项目的北极星一直在不断学习,通过简单的聆听和与他人互动来更好地识别和理解语言,就像婴儿学习他们的第一语言一样。这样做不但要分析别人所说的话,而且要从它们的表达上,比如说话者的身份、情绪、优柔寡断等,都有很多其他的线索。而且,要像人类一样全面理解一个场景,人工智能系统就必须能够区分和解释与语音信号重叠的噪声,如笑声、咳嗽声、咂嘴声、背景车辆或鸟鸣。


为了在音频中对这些类型的丰富词汇和非词汇信息建模打开大门,我们推出了 HuBERT,这是一种学习自监督语音表征的新方法。HuBERT 与 SOTA 方法在语音识别、语音生成、语音压缩的语音表征学习方面相匹配,甚至超过了 SOTA。


为了做到这一点,我们的模型采用了一种离线 k- 均值聚类方法,通过预测掩蔽的音频片段的正确聚类,学习了口语输入的结构。HuBERT 通过在聚类和预测步骤之间交替进行,逐步提高其学习的离散表征。


HuBERT 的简单性和稳定性将有助于自然语言处理和演讲研究人员,在其工作中更广泛地采用学到的离散表征。另外,HuBERT 的学习报告质量可以帮助轻松地部署到多种下游语音应用程序中。

工作原理

HuBERT 的灵感来自于 Facebook AI 的DeepCluster方法,它是一种自监督的视觉表征方法。谷歌的Bidirectional Encoder Representations from Transformers(BERT,即双向 Transformer 的 Encoder)方法等序列掩蔽预测损失的方法被用来表示语音的顺序结构。HuBERT 采用离线聚类的方法,为掩蔽语言模型的预训练产生噪声标签。具体地说,HuBERT 使用掩蔽的连续语音特征来预测预定的聚类分配。预测损失只应用于掩蔽区域,强迫模型学习未掩蔽的输入的良好的高层表征,以便正确地推断掩蔽目标。


HuBERT 可以从连续输入中学习声学和语言模型。首先,该模型需要将未掩蔽的音频输入编码为有意义的连续潜在表征,这就相当于经典的声学建模问题。其次,为了减少预测误差,该模型需要捕捉所学表征之间的长程时间关系(long-range temporal relations)。激励这项工作的一个关键见解是,从音频输入到离散目标的 k- 均值映射的一致性的重要性,而不仅仅是它们的正确性,这使得模型能够专注于对输入数据的顺序结构进行建模。举例来说,如果早期的聚类迭代不能区分 /k/ 和 /g/ 的声音,那么就会产生一种包含这两种声音的超聚类,预测损失将学习模型其他辅音和元音如何与这个超簇一起构成单词。因此,接下来的聚类迭代会使用新学习的表征来创建更好的聚类。实验表明,通过交替进行聚类和预测步骤,可使表征得到逐步改善。



HuBERT 在标准的 LibriSpeech 960 小时或 Libri-Light 60000 小时的预训练中,所有 10 分钟、1 小时、10 小时、100 小时和 960 小时的微调子集均达到或超过最先进的 wav2vec 2.0 性能。



图中展示了 HuBERT 使用 LARGE(300M) 和 X-LARGE(1B) 两种规模的模型进行预训练的结果。X-LARGE 模型在预训练 60000 小时的 Libri-Light 数据时,显示了对 dev-other 和 test-other 评估子集的 19% 和 13% 的相对 WER 改进。


语音表征学习的显著成功实现了语音信号的直接语言建模,而无需依赖于任何词汇资源(无监督标签、文本语料库或词典)。这反过来又开启了非词汇信息建模的大门,例如戏剧性的停顿或紧急中断,以及背景噪声。


生成式口语建模(Generative Spoken Language Modeling,GSLM)中,我们迈出了第一步,利用从 CPC、Wav2Vec2.0 和 HuBERT 中学到的语音表征来合成语音。单元语言模型通过训练离散的潜在表征,可以有条件、无条件地产生语音。在自动评估和人工评估中,HuBERT 生成的样本在质量上与基于字符的顶线监督的 LM 和生成相竞争。你可以在这里聆听由所有系统生成的有条件和无条件的样本:https://speechbot.github.io/



上面的图表展示了 HuBERT 的语言生成性能。


就语音压缩而言,我们最近的论文《来自离散解缠自监督表征的语音重合成》(Speech Resynthesis from Discrete Disentangled Self-Supervised Representations)是通过 HuBERT 实现 365bps 的比特率,而不是降低质量。你可以听一下 HuBERT 压缩音频的样本:https://resynthesis-ssl.github.io/



HuBERT 在多激励隐藏参考基准测试(Multi-Stimulus Test with Hidden Reference and Anchor,MUSHRA)中,仅次于未压缩的音频(256kbps)。

为什么重要

HuBERT 可以帮助人工智能研究界开发完全基于音频训练的自然语言处理系统,而非依靠文本样本。这样,我们就能以一种自发的口头语言充分表达出来,丰富现有的自然语言处理应用,从而使人工智能语音助理能说出与真人相同的细微差异和效果。学习语音表征而不依赖于大量的标记数据,对于工业应用和产品也是至关重要的,因为它们在新的语言和领域中的范围越来越广。这将有助于人工智能社区开发更加包容的应用程序,涵盖只用口语表达的方言和语言。


作者介绍:


Abdelrahman Mohamed、Wei-Ning Hsu,Facebook 研究科学家。Kushal Lakhotia,Facebook 软件工程师。


原文链接:


https://ai.facebook.com/blog/HuBERT-self-supervised-representation-learning-for-speech-recognition-generation-and-compression

2021-06-17 16:454440
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 538.4 次阅读, 收获喜欢 1977 次。

关注

评论

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

Spring中使用的设计模式,mybatis自动映射原理

Java 程序员 后端

最佳实践|Apache Pulsar 在华为云物联网之旅

Apache Pulsar

云原生 消息中间件 Apache Pulsar 消息系统 用户案例 华为云物联网

云图说|玩转华为HiLens之端云协同AI开发

华为云开发者联盟

华为云 云图说 华为HiLens 端云协同

Spring全家桶+高并发编程+Netty(1),Java者升职加薪的8项技能

Java 程序员 后端

Spring常用API:Spring类及相关面试点,rabbitmq分布式事务实现原理

Java 程序员 后端

springcloud(三)网关zuul,2021Java进阶学习资料

Java 程序员 后端

谈谈对Dapr的一些感想

LLLLimbo

架构 分布式 微服务 云原生 dapr

从挣扎突破到英雄联盟!中国SaaS头部企业阵营渐显

海比研究院

SaaS平台

springcloud 高可用的服务注册中心及更高可用,java面试设计题

Java 程序员 后端

SpringDataJPA的Audit功能,审计数据库的变更,springmvc源码分析pdf百度云

Java 程序员 后端

Spring之防止连接泄露的处理办法,Java开发必会技术

Java 程序员 后端

Spring学习--面向抽象编程(模拟Spring的简单实现),java架构师教学视频全百度云

Java 程序员 后端

Spring的XML解析原理,这一次全搞懂再走!,springmybatis整合原理

Java 程序员 后端

SpringIOC中复杂属性如何“巧妙”赋值,java五年工作经验面试题

Java 程序员 后端

Spring常用注解(绝对经典),非科班面试之旅

Java 程序员 后端

Spring源码学习~循环依赖(面试必问系列,java最新框架技术

Java 程序员 后端

Spring源码解析(二)AOP,java基础课程百度云

Java 程序员 后端

SpringDataJPA之快速入门,arm架构v8和V9区别

Java 程序员 后端

Spring事务传播属性(面试),分布式中间件技术实战钟林森

Java 程序员 后端

低代码开发平台是什么意思?低代码开发平台优势!

低代码小观

低代码 开发 开发工具 开发平台 企业开发系统

SpringCloudRPC调用核心原理:RxJava响应式编程框架,聚合操作符

Java 程序员 后端

OpenHarmony LiteOS C-SKY指令集移植指南

华为云开发者联盟

LiteOS 指令集 OpenHarmony C-SKY 移植

SpringSecurity安全控件使用指南,建议细读

Java 程序员 后端

Spring事务与事务抽象,java多线程面试总结

Java 程序员 后端

使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数

汪子熙

云平台 SAP abap 11月日更

Spring核心——Bean的定义与控制,linuxshell脚本教程

Java 程序员 后端

Spring框架底层原理-IoC,java架构师指南pdf下载

Java 程序员 后端

SpringCloudRPC远程调用核心原理:Feign远程调用的执行流程

Java 程序员 后端

Spring全家桶+高并发编程+Netty,mybatis面试题大全

Java 程序员 后端

Spring框架(四)SpringMVC基础,2021最新大厂Java面经

Java 程序员 后端

Spring注解驱动,java面试项目中遇到的问题

Java 程序员 后端

Facebook 新成果:用于语音识别、生成和压缩的自监督表征学习的 HuBERT_AI&大模型_Facebook AI_InfoQ精选文章