语音识别系列之基于CTC的VAD

news2025/1/21 7:15:18

语音活动性检测(Voice Activity Dection, VAD)常作为语音识别系统的前端模块过滤非语音段,为后续增强模块提供语音/非语音判据,从而更好的掌握背景噪声特性,进而提升降噪量,保证识别性能,且能降低整个系统的功耗。连接主义时间分类(Connectionist Temporal Classification, CTC)是语音识别领域的经典技术,它解决了标签与语音的自动对齐问题,不需人工费时费力的对音频标注语音基元位置。实际上,采用CTC技术路径的语音识别系统可径直使用声学模型部分做VAD判断[1-3],且能获得极高的帧级准确率,不再需要额外计算传统的VAD特征,甚或为VAD专门训练一个神经网络,省去对应的算量(也即功耗)和内存开销。

传统VAD常以一个或多个特征组合使用,各特征与各自的阈值(常通过预研仿真的方式确定)比较大小,再佐以一组逻辑关系判断,最终确定当前帧是否为语音,更复杂的还可以将固定阈值改为滑动阈值。特征常是手工设计的,具备较为明确的物理或信号意义。比如在时域计算的过零率在一定程度上可反映信号的频率成分,能量可反映信号振幅情况;再比如在频域计算的幅谱差异,可反映信号在时间维度上前后两帧的幅值变化程度,而单帧幅谱或功率谱的谱平坦度可反映信号谱线的平整程度,如果峰峰谷谷数目较多且很尖锐,则此特征值偏低。在频域计算的特征还可灵活地选择特定频段计算或对不同频点加权,以此实现仅考虑某频段或对不同频段分配不同关注程度的目的。

传统VAD方法所用的特征虽然具备一定的可解释性,但并不一定具备对语音的特异性检出能力。例如,语音信号具备波纹特征,会使得频域特征——平坦度较低,但反过来并不一定成立,因为平坦度较低的不一定就是语音信号,鸣笛等信号用Audition观察具备清晰明亮的平行于时间维的横向谱线,也会使得此特征值很小。除此之外,传统方法还有一个普遍存在的问题是抗噪性差,一旦背景噪声过强,特征遭受污染,则极难在摒除非语音段和不伤语音之间谋求平衡。语音识别系统常在低虚警和低漏检之间偏向后者,因为只有当语音无缺损才谈得上降噪和被识别,一旦缺损导致没有进入后续模块,则再怎么补救都无济于事。而一旦VAD的阈值被调节成了低漏检的状态,则会非常灵敏,稍有风吹草动都有可能被激活,其控制系统开启,进而降低系统功耗的目的也就形同虚设了。

为弥补传统VAD的缺陷,增强其语音帧检测能力及抗噪能力,可设计专用于VAD的神经网络。网络可以是CNN的,也可是RNN的。具体实现形式不重要,重点在于此类神经网络的训练也依赖于大量标注数据,而人工标注语音端点本身就是一项费时费力的任务,决定了可供训练的数据量不足,且标注精度堪忧。何况基于神经网络的VAD常需要较大的参量及算量,是否具备足够的性价比也是一个问题。

CTC是输入为音频或图像序列,输出标签的学习任务中实现标签与序列自动对准的方法,使用CTC损失训练的模型不要求输出标签与输入对准,省去了高成本的人工标注,极大地简化了学习任务,也扩大了可学习的数据范围,使得深度网络有充足的数据可供学习。CTC损失被定义为各可能路径的概率和的对数再复数,因此最小化CTC损失等价于最大化所有路径概率和,而能做到输出标签和输入序列严格对准的“最理想”路径自然也在这所有路径之中,因此CTC损失训练处的模型最终具备将标签自动和序列对准的能力。

在语音识别任务中,由CTC损失训练出的神经网络的输出,可视为对所建模语音基元的分类器,也即语音识别系统的声学模型。中文语音识别的建模基元可以是音节(声母+韵母,若考虑音调则建模基元更为丰富),英文语音基元可以是音素或径直是英文字母本身。分类数即有效音节/音素数+1,1即是Blank标签。Blank标签较为特殊,可简单理解为区别于语音基元之外的一切背景。网络输出裸分求softmax后,可使各类别概率和为1。

因此,举个例子,若手上已有一个使用CTC损失训练出的中文语音识别的声学模型,可产生帧级别的blank+中文音节的分类得分,则提取出blank标签的概率得分即可做VAD,当其概率小于某阈值(比如0.99)时,则可认为模型对当前帧的判断倾向于当前帧是非语音帧,当然具体是别的什么音节需要看在哪个音节上得分最高。

基于CTC的VAD判断精度是帧级别的,这意味着:

  1. 甚至可检出字与字之间的停顿;

  2. 针对具有快时变特性的背景噪声,后续降噪模块能“见缝插针”地识别非语音帧,及时追踪更新背景噪声的变化,从而保证降噪量;

  3. CTC-VAD打出的语音端点,可为其他NN-VAD提供大量精确标注的高质量语音数据,为NN-VAD的高性能、小型化提供强力支持。

为增强此声学模型的抗噪性能,在生成训练数据时就需要对语音加噪,加噪信噪比及背景噪声的选择都随机,同时也可将纯背景噪声或纯音乐数据加入,辅以全blank标签作为训练目标。

然而,CTC-VAD也并非没有局限性,CTC的训练所选定的语音基元与语言是绑定的,因此基于此的VAD也必然受限于此特定语言,仅针对此语言下的语音具备VAD能力,并不具备对其他语言的外推性,为此只能训练跨语种的声学模型,增强通用语音基元对人类语言语音的检出能力。

参考文献:

[1] Lengerich, Chris, and Awni Hannun. “An end-to-end architecture for keyword spotting and voice activity dectection.” arXiv preprint arXiv:1611.09405 (2016).

[2] Yoshimura, Takenori, et al. “End-to-end automatic speech recognition integrated with CTC-based voice activity detection.” ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2020.

[3] Jung, Myunghun, et al. “Multi-task network for noise-robust keyword spotting and speaker verification using CTC-based soft VAD and global query attention.” arXiv preprint arXiv:2005.03867 (2020).

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/161169.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GitHub进阶使用指南

GitHub进阶使用指南1.个性化 Github 首页2.自定义项目徽章3.自动为项目添加贡献情况图标4.高效阅读 Github 项目的源代码5.扩展 Github 的功能1.个性化 Github 首页 Github 目前支持在个人主页自定义展示一些内容: 想要做到这样非常简单,你只需要创建一…

创建切实可行的项目管理计划会带来什么好处?

项目管理计划是深入了解项目来龙去脉的地方,可以说是指导你从头到尾完成项目的地图。 项目章程是项目的高层次愿景,而项目管理计划将这一愿景分解为项目的实际日常执行,涵盖为实现项目目标所需要做的一切。 一个详细的项目计划将规划出从…

Java自动拆装箱与缓存——Java中的128陷阱

在讲解128陷阱之前,需要了解一些概念。 包装器类型 Java是面向对象的语言,但基本类型并不是面向对象的,从而出现了包装器类型,并且包装器添加了更多的属性和方法。如我们在使用集合类型Collection的时候就一定要使用包装类型而非…

高等学校学生公寓消防安全设计及管理设计要点

摘要:高等学校学生公寓是学生生活起居和日常活动的重要场所,具有人员同时聚集的特征,属于人员密集场所。特别是晚间休息时,此时宿舍内人员达到满员状态。学生的生活及学习物品,如被褥、衣服、书籍等,都属于…

Prometheus标签的使用说明

prometheus在处理数据指标的过程中,包括【抓取的生命周期】和【标签的生命周期】 默认情况下,当prometheus加载target实例完成后,这些target时候会包含一些默认的标签,这些标签将会告诉prometheus如何从target实例中获取监控数据…

【3】Linux多节点部署KubeSphere|最简单的安装方法

目录 步骤1:准备三台服务器 步骤2:下载KubeKey 步骤3:创建集群 1. 创建示例配置文件 2. 编辑配置文件 3. 使用配置文件创建集群 4. 验证安装 步骤1:准备三台服务器 4c8g (master)8c16g * 2 (worker)centos7.9内网互通每个机…

Tiktok的发展趋势以及政策支持,你了解多少?

武汉瑞卡迪电子商务有限公司:为了方便大家的阅读,这篇文章将分为以下几个板块: 1、Tiktok的基本介绍 2、Tiktok的发展趋势以及政策支持 3、新手运营Tiktok的方法 4、Tiktok引流的方法 一、Tiktok的基本介绍 TikTok TikTok国际版&#xf…

express 1.1安装express And 1.2创建项目

目录 1.1安装express 1.2.1 创建项目 (1)使用vscode,可以快速创建项目,vscode把终端聚合在了一起,打开vscode终端 (2)进入工作目录 (3)执行创建命令 (4&…

MySQL必知必会_SELECT部分

最近在读MySQL必知必会,关于这本书打算写点读后感,大概是两篇博客的体量。 其实对于测试岗来说,不管是面试还是实际工作中,最重要的自然当属SELECT。 下面我把书里关于SELECT的知识点简单记一下吧。 首先在MySQL中其实是不区分…

【MySQL】第二部分 MySQL的启动和登录

【MySQL】第二部分 MySQL的启动和登录 文章目录【MySQL】第二部分 MySQL的启动和登录2. MySQL的启动和登录2.1 服务的启动与停止2.2 客户端登录查看版本信息退出登录2.3 演示命令行的使用总结2. MySQL的启动和登录 2.1 服务的启动与停止 MySQL的安装就不过多介绍了,大家可以去…

OpenSceneGraph纹理API开发指南【OSG】

前面的教程中,我们用彩虹的所有颜色画了一个正方形。然而,还有另一种成为纹理映射的技术,将光栅二维图像应用于三维几何。在这种情况下,效果不是针对几何体的顶点,而是通过栅格化场景更改获得的所有像素的数据。这种技…

好雨科技加入龙蜥 完成与 Anolis OS 兼容适配

近日,北京好雨科技有限公司(以下简称“好雨科技”)签署了 CLA(Contributor License Agreement,贡献者许可协议) ,正式加入龙蜥社区(OpenAnolis)。好雨科技成立于 2015 年…

bug总是多不如看一看,前端写完代码进行的自测流程减少bug重复反工,提高开发效率。

提测标准:修改bug前要熟知之前的操作逻辑以及涉及其代码的周边逻辑,修改bug后的操作逻辑和测试确认,检测其它周边逻辑。至少需要另外1个开发进行交叉测试必要时进行代码Code Review(代码规范,主要逻辑,复杂…

服务器SMTP邮件设置

服务器SMTP邮件设置 在服务器设置登录验证时需要绑定一个自动收发邮件的服务器进行验证 这时候就要对STMP进行配置,如下 填写的主机为邮件对应的主机 腾讯QQ邮箱 POP3:pop.qq.com SMTP:smtp.qq.com IMAP:imap.qq.com 端口&…

1.13

周报 完善案例 ​ this.$nextTick(function () {this.$refs.input.focus()})}​ //点击编辑直接获取焦点 this.$refs.input.focus() //但是这种写法 由于input是用v-show控制的 所以执行了上面代码 改变了isEdit值 但是不会立马去重新解析模板 input框还没有出来 //将handleed…

算法第十期——DFS(深度优先搜索)的剪枝优化

目录 DFS:剪枝 DFS:有哪些剪枝方法 DFS例题一:剪格子 【思路】 DFS例题二:路径之谜 【样例分析】 DFS例题三:四阶幻方 【思路】 【做法一】 【做法二】 DFS例题三:分考场 【样例分析】 【思路】 DFS习题 DFS:剪…

TPM零知识学习十一 —— tpm全安装流程复盘(下)

接前一篇文章《TPM零知识学习十 —— tpm全安装流程复盘(中)》,链接为: TPM零知识学习十 —— tpm全安装流程复盘(中)_蓝天居士的博客-CSDN博客 五、TPM模拟器做成服务 本步骤前导步骤参见 《TPM零知识学…

Docker——网络配置

目录 本次目标: 一、Docker网络配置 1.bridge模式(默认模式) 2.host模式 二、bridge模式 三、host模式 网络模式与数据卷容器挂载的操作 四、如何创建自定义网络 本次目标: Docker网络配置Docker部署SpringCloud项目 一、Docker网络配置 Dock…

蓝牙耳机啥牌子音质好?听音乐最好的蓝牙耳机分享

现如今,蓝牙耳机越来越成为外出携带设备使用频率最高的数码产品之一。随着技术的进步,蓝牙耳机在音质上的表现也受到了很多人的关注。在这,我来给大家介绍四款音质很不错的蓝牙耳机,一起来看看吧。 一、南卡小音舱蓝牙耳机 售价…

SpringBoot+Vue项目医护人员排班系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…