当前位置: 首页 > news >正文

声场合成新方法:基于声波传播的框架

      声场合成是指在房间内的麦克风阵列上,根据来自房间内其他位置的声源信号,合成每个麦克风的音频信号。它是评估语音/音频通信设备性能指标的关键任务,因为它是一种成本效益高的方法,用于数据生成以替代真实的数据收集,后者通常是缓慢的、昂贵的,并且容易出错的过程。

1 现有声场合成方法的局限性

1.1 基于测量的方法

  • 准确,但成本高,需要大量人力进行测量。
  • 需要对每个源/接收器位置组合和每种不同形状的设备进行重复测量。
  • 需要设备硬件,不适合硬件开发阶段。

1.2 基于模拟的方法

  • 通过计算声学波方程来估计房间脉冲响应 (RIR)。
  • 需要大量的计算资源,尤其是在宽带频谱下。
  • 需要对每种不同形状的设备进行重复模拟。

2 新方法

本文提供一种新方法,它结合了经验方法和模拟方法,为声场合成提供了两种方法之间的平衡。它将声场分解为两个独立的成分:房间成分和设备成分。整体声场是两个成分的复合映射。

2.1 理论基础

声学平面波是齐次亥姆霍兹方程的特征函数,是分析波动方程的强大工具。远场点源产生的声场可以用声学平面波很好地近似。

2.1.1 平面波分解

  • 平面波分解 (PWD) 是一种将声场近似为不同方向和权重的平面波叠加的方法。
  • PWD 可以近似齐次亥姆霍兹方程的局部解,并用于声场重建和声场再现等应用。

2.1.2 平面波分解的稀疏性

  • 平面波分解的系数 αl 通常具有稀疏性,即只有少量平面波对声场有显著贡献。
  • 稀疏性为使用稀疏恢复技术计算平面波分解提供了理论基础。

2.1.3 平面波分解的应用

  • 声场重建:通过测量麦克风阵列上的声场,可以计算平面波分解,并重建声源位置和声源信号。
  • 声场再现:通过控制扬声器的声场,可以再现特定的声场,例如音乐会现场的声音。
  • 声场合成:将平面波分解应用于声场合成,可以生成麦克风阵列上的声场信号。

2.2 设备声学字典

设备声学字典是一组向量,每个向量表示设备麦克风阵列在受到特定方向和频率的声学平面波照射时的总声场。

2.2.1 获取方法

  • 无响室测量:在无响室中,使用单频远场声源照射设备,并测量麦克风阵列上的声场,得到设备声学字典。
  • 数值模拟:使用有限元法 (FEM) 或边界元法 (BEM) 等数值方法,在设备表面上求解亥姆霍兹方程,得到设备声学字典。

2.2.2 作用

  • 设备声学字典是声场合成框架中连接房间分量和设备分量的桥梁。
  • 通过将房间分量的平面波分解结果与设备声学字典相结合,可以合成设备麦克风阵列上的声场信号。
  • 设备声学字典可以用于多种设备,无需针对每种设备重新计算。

2.2.3 数值模拟的细节

  • 使用 FEM 或 BEM 等数值方法,在设备表面上求解亥姆霍兹方程,得到总声场。
  • 设备表面被建模为声硬边界。
  • 为了模拟开放边界,使用完美匹配层 (PML) 技术消除内部域的反射和折射。
  • 使用标准偏微分方程求解软件包进行模拟,并通过与无响室测量结果进行比较验证模拟的准确性。

2.2.4 设备声学字典的应用

  • 声场合成:将房间分量的平面波分解结果与设备声学字典相结合,合成设备麦克风阵列上的声场信号。
  • 麦克风阵列处理:使用设备声学字典设计波束形成器,提高波束形成性能。
  • 声源定位和分离:利用设备声学字典进行声源定位和分离。
  • 去混响:使用设备声学字典进行去混响处理。

2.3 技术框架

2.3.1 框架组成

  • 房间分量:将房间内某点的声场表示为声学平面波的叠加,通过使用大麦克风阵列进行测量和稀疏恢复技术计算得到平面波分解结果。
  • 设备分量:计算设备表面对于声学平面波的响应,得到设备声学字典。
  • 合成分量:将房间分量的平面波分解结果与设备分量的设备声学字典相结合,合成设备麦克风阵列上的声场信号。

2.3.2 框架步骤

2.3.2.1 房间分量计算

  • 使用大麦克风阵列(例如 EigenMike)进行测量,获取房间内某点的声场信号。
  • 使用稀疏恢复技术对测量信号进行平面波分解,得到平面波的方向和权重。
  • 重复以上步骤,为每个房间和每个位置生成房间分量的平面波分解结果,形成房间数据库。

2.3.2.2 设备分量计算

使用无响室测量或数值模拟,计算设备表面对于声学平面波的响应,得到设备声学字典。

2.3.2.3 声场合成

  • 选择房间数据库中与目标位置对应的房间分量平面波分解结果。
  • 将设备声学字典与房间分量的平面波分解结果相结合,合成设备麦克风阵列上的声场信号。

2.3.3 框架优势

  • 分离房间声学和设备声学:将房间声学和设备声学分离,简化了声场合成的复杂性,并实现了组件的复用。
  • 减少测量/模拟开销:房间分量只需要进行一次测量,设备分量只需要进行一次计算,减少了测量/模拟的开销。
  • 提高计算效率:设备分量的计算可以在无响室中进行,并高度并行化,提高了计算效率。
  • 提高准确性:设备声学字典能够捕捉设备表面对于声学平面波的散射效应,提高了声场合成的准确性。

2.3.4 框架应用

  • 数据生成:生成合成数据,用于评估设备性能指标(例如误识率、词错误率)和训练深度学习声学模型。
  • 麦克风阵列处理:使用设备声学字典设计波束形成器,提高波束形成性能。
  • 声源定位和分离:利用设备声学字典进行声源定位和分离。
  • 去混响:使用设备声学字典进行去混响处理。

  

3 实验验证

本文通过三组实验来验证提出的声场合成框架的有效性

3.1 平面波分解验证

  • 使用 EigenMike 麦克风阵列记录两个不同的源信号,并使用稀疏恢复技术进行平面波分解。
  • 验证不同数量的平面波对声场重建误差的影响。

结果表明,少量平面波(例如 20-30 个)就能够以小于 -20 dB 的误差重建声场,证明了平面波分解的有效性。

3.2 房间脉冲响应(RIR)验证

  • 在三个不同的房间内进行实验,每个房间包含 24 个不同的位置。
  • 将 EigenMike 麦克风阵列与四种不同形状和麦克风阵列大小的设备进行共位。
  • 使用提出的框架计算每个位置的 RIR,并与实测 RIR 进行比较。

结果表明,合成 RIR 与实测 RIR 在所有频率上都高度相似,重建信号噪声比(SNR)为 19-23 dB,证明了 RIR 计算的准确性。

3.3 高级指标评估

  • 使用合成 RIR 和实测 RIR 对关键词误识率(FRR)进行评估。
  • 计算实测 FRR 和合成 FRR 之间的相对误差。

结果表明,实测 FRR 和合成 FRR 之间的相对误差小于 10%,证明了框架在评估高级指标方面的有效性。

相关文章:

声场合成新方法:基于声波传播的框架

声场合成是指在房间内的麦克风阵列上,根据来自房间内其他位置的声源信号,合成每个麦克风的音频信号。它是评估语音/音频通信设备性能指标的关键任务,因为它是一种成本效益高的方法,用于数据生成以替代真实的数据收集,后…...

鸿蒙文件操作事前准备

13900001,沙箱13900002 首选授权 module授权配置 "requestPermissions": [{ "name": "ohos.permission.CAMERA",}, { "name": "ohos.permission.READ_MEDIA",}, { "name": "ohos.permission.WR…...

AI智能时代:ChatGPT如何在金融市场发挥策略分析与预测能力?

文章目录 一、ChatGPT在金融策略制定中的深度应用客户需求分析与定制化策略市场动态跟踪与策略调整策略分析与优化 二、ChatGPT在算法交易中的深度应用自动交易策略制定交易执行与监控风险管理 三、未来展望《智能量化:ChatGPT在金融策略与算法交易中的实践》亮点内…...

C#面:C#属性能在接口中声明吗?

在C#中,接口是一种定义了一组方法、属性和事件的类型。在接口中,只能声明方法、属性和事件的签名,而不能包含字段、构造函数或实现代码。因此,C#属性不能直接在接口中声明。 然而,你可以在接口中定义属性的签名&#…...

区块链的历史和发展:从比特币到以太坊

想象一下,你住在一个小镇上,每个人都有一个大账本,记录着所有的交易。这个账本很神奇,每当有人买卖东西,大家都会在自己的账本上记一笔,确保每个人的账本都是一致的。这就是区块链的基本思想。而区块链的故…...

input()函数——输入

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 input()函数可以提示并接收用户的输入,将所有的输入按照字符串进行处理,并返回一个字符串,input()函数的…...

CST 时间格式减去八小时

问题: 查看服务器时间是正确的,但输出出来的时间,比此时多出来八个小时。这里直接把时间减去八个小时。 public static void main(String[] args) throws ParseException {// 设定原始时间格式try {SimpleDateFormat dateFormat new SimpleDateFormat(&…...

植物大战僵尸杂交版技巧大全(附下载攻略)

《植物大战僵尸杂交版》为策略游戏爱好者带来了全新的挑战和乐趣。如果你是新手玩家,可能会对游戏中的植物和僵尸感到困惑。以下是一些实用的技巧,帮助你快速掌握游戏并享受其中的乐趣。 技巧一:熟悉基本玩法 游戏的基本玩法与原版相似&…...

HTTPS 代理的优点和缺点是什么?

HTTPS代理的优点包括提供更好的安全性、支持验证、速度、匿名性、节省带宽。 安全性:HTTPS代理通过使用SSL/TLS协议对传输的数据进行加密,保护用户的数据传输安全,防止中间人攻击和窃听,确保数据的安全性。 速度:HTTPS…...

Mac安装多版本node

Mac下使用n模块去安装多个指定版本的Node.js,并使用命令随时切换。 node中的n模块是,node专门用来管理node版本的模块,可以进行node版本的切换,下载,安装。 1.安装n npm install -g n 2.查看版本 n --version 3.展…...

HTML静态网页成品作业(HTML+CSS)——动漫猪猪侠网页(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…...

【机器学习300问】125、什么是双向循环神经网络(BRNN)?什么是深度循环神经网络(DRNN)?

一、双向循环神经网络 (1)诞生背景 双向循环神经网络(Bidirectional Recurrenct Neural Network, BRNN)是在深度学习领域发展起来的一种特殊类型的循环神经网络(RNN),它诞生的背景是为了解决传…...

办公软件汇总

1、OCR 1.1 pearOCR pearOCR 是一个免费的免费在线文字提取OCR工具网站。PearOCR界面简洁,所有过程均在网页端完成,无需下载任何软件,点开即用。官方地址:https://pearocr.com/ 参考:9款文字识别(OCR)工具…...

Docker 搭建 MinIO 对象存储

Docker 搭建 MinIO 对象存储 一、MinIO MinIO 是一个高性能的对象存储服务器,用于构建云存储解决方案。MinIO 允许你存储非结构化数据(如图片、视频、日志文件等)以对象的形式。MinIO 提供简单的部署选项和易于使用的界面,允许你…...

主干网络篇 | YOLOv5/v7 更换骨干网络之 PP-LCNet | 轻量级CPU卷积神经网络

主干网络篇 | YOLOv5/v7 更换骨干网络之 PP-LCNet | 轻量级CPU卷积神经网络:中文详解 1. 简介 YOLOv5 和 YOLOv7 是目前主流的目标检测算法之一,具有速度快、精度高的特点。但 YOLOv5 和 YOLOv7 的原始模型结构中使用的是 MobileNetV3 作为骨干网络&am…...

CubeFS - 新一代云原生存储系统

CubeFS 是一种新一代云原生存储系统,支持 S3、HDFS 和 POSIX 等访问协议,支持多副本与纠删码两种存储引擎,为用户提供多租户、 多 AZ 部署以及跨区域复制等多种特性。 官方文档 CubeFS 作为一个云原生的分布式存储平台,提供了多种访问协议,因此其应用场景也非常广泛,下面…...

推动多模态智能模型发展:大型视觉语言模型综合多模态评测基准

随着人工智能技术的飞速发展,大型视觉语言模型(LVLMs)在多模态应用领域取得了显著进展。然而,现有的多模态评估基准测试在跟踪LVLMs发展方面存在不足。为了填补这一空白,本文介绍了MMT-Bench,这是一个全面的…...

深度学习31-33

1.负采样方案 (1)为0是负样本,负样本是认为构造出来的。正样本是有上下文关系 负采样的target是1,说明output word 在input word之后。 2.简介与安装 (1)caffe:比较经常用于图像识别,有卷积网…...

Docker多种场景下设置代理

20240623 - 公司内网环境下需要对Docker进行代理设置;此时需要对拉取镜像的时候的命令设置代理;例如平时经常使用的wget设置代理一样。但对docker进行设置,并不能简单的直接export。 文章[1]指出,拉取镜像的时候实际执行的是doc…...

node 实现导出, 在导出excel中包含图片(附件)

如果想查看 node mySql 实现数据的导入导出,以及导入批量插入的sql语句,连接如下 node mySql 实现数据的导入导出,以及导入批量插入的sql语句-CSDN博客https://blog.csdn.net/snows_l/article/details/139998373 一、效果如图: 二…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

【Oracle APEX开发小技巧12】

有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...