问题标签 [acoustics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2528 浏览

java - 是否有基于 Java 的光线追踪模型可以适用于水下声学?

我正在寻找一种基于 Java 的开源光线追踪系统,适用于对基于水下光线的声学进行建模。这样的软件包可能类似于带有高斯射线束 (GRAB) 的综合声学系统仿真 (CASS),但我更喜欢可以在演示文稿中使用的开源、免费使用或免费修改模型到一个开放的论坛(例如,JavaOne)。

满足我需求的最佳模型将提供基于环境模型、水深测量(也称为海底地形)和发射器频谱的射线路径建模。注意:多路径效果(包括反射和折射)是我的主要兴趣点,所以最好的包会提供开箱即用的效果。

稍微不太理想的是标准的基于 Java 的光线跟踪包(光学或声学),它可以处理通过介质的变化速度。另一种说法是折射率在整个介质中以连续的方式变化(尽管它的一阶导数可能不是连续的)。

0 投票
3 回答
168 浏览

signal-processing - 从另一个来源提供时钟的流驱动 DAC?

我的 DAC 内部时钟为 48khz,我需要从一个同样为 48khz 但时钟来自不同来源的流中提供它。

这两个源会随着时间的推移而漂移,并且两者之间的任何缓冲都将不可避免地上溢或下溢。

不幸的是,没有可用于源的速率控制机制。

如何最好地处理这个问题?

复制或扔掉偶尔的样品来补偿是否可以接受?我估计每约 70k 个样本 1 个样本,差异为 30ppm。

0 投票
2 回答
13679 浏览

matlab - 从文件加载 Simulink 查找表的数据

我已经构建了一个 Matlab/Simulink 模型,我用它来模拟水下机器人车辆的性能,该机器人使用声学来实现各种关键导航和定位功能。

由于海洋的特征随着季节性和地理位置而变化,我希望这些数据能够从 ASCII 数据文件(按行和列组织的空间分隔数据)动态加载到模型中。

Simulink 有许多查找表模块集,但它们似乎都没有直接提供“从文件读取”选项。不得不使用表格编辑器会使模型走错方向。

是否有另一种方法,可能使用 Matlab,将数据从文件加载到 Blockset 中?

对于一维表,我正在寻找类似于 Matlab 命令的东西

AKE

0 投票
3 回答
3523 浏览

iphone - iOS的声学指纹代码?

我已经开始为我的 iOS 宠物项目寻找声学指纹 (http://en.wikipedia.org/wiki/Acoustic_fingerprint) 的主题,我想知道是否有:

  1. 任何处理此问题的 iOS 开源库或源代码?
  2. 假设我是所有行业的资深程序员,如果没有开源版本,我自己实现这个会不会很成问题?
  3. iOS 中的 Accelerate DSP 库能否处理这样的任务?

谢谢

0 投票
1 回答
1180 浏览

sphinx4 - 使用带有 sphinx-4 的 HTK 声学模型

我一直在使用 sphinx-4 作为语音识别工具,我仍在尝试学习该工具。我有一个使用 HTK 开发的阿拉伯语声学模型。我想知道如何在 Sphinx-4 中使用这个声学模型。

0 投票
2 回答
6166 浏览

embedded - 嵌入式软件中的回声消除 (AEC)

我正在嵌入式设备上做一个 VoIP 项目。我使用带有低级音频编解码器的 32 位 MCU 构建了一个示例。现在我发现我的设备上存在回声问题,即我可以从扬声器中听到我说的话。我做了一些研究,发现大多数应用程序使用具有声学回声消除功能的 DSP 编解码器。但是,是否可以使用我的 32 位 MCU 在软件中进行声学回声消除?

您能否介绍用于声学回声消除的算法,甚至源代码:P?我知道在 MCU 上不可能使用复杂的方法,但也欢迎使用简单的算法。

谢谢

[跟进] : 我尝试了一些AEC代码,但它们在我的MCU中无法正常工作,可能是MCU功率的限制。我发现我的设备在实施这些代码时变得非实时(但 VoIP 需要实时响应)。最后我通过添加一个 AEC 芯片实现了一个模拟硬件解决方案,因为我不想在另一个 DSP 芯片中再次编写代码。

0 投票
2 回答
1195 浏览

speech-recognition - 在 sphinx4 语音识别的字典文件中使用新词时出错

我曾尝试从所有 sphinx4 论坛和 source.after 实现 sphinx4 语音识别

/*
线程“main”中的异常属性异常组件:'dictionary' property:'dictionaryPath'

*/ 请任何人都可以建议我如何解决这个问题

0 投票
1 回答
901 浏览

iphone - 具有可变振荡模式的 iOS 音调发生器

我有一个音调发生器应用程序,它根据频率的滑块值生成音调。应用程序的这一部分工作正常。我正在使用

现在我需要修改应用程序中的模式,例如 Dog Whistler Application。谁能告诉我我需要做什么来修改这个源代码之后的波形?

提前致谢

0 投票
2 回答
1665 浏览

android - 将 ReplayGain 值转换为音量调整

我正在尝试在股票 Android/AOSP 音乐播放器应用程序中实现重播增益(即响应音乐文件中的重播增益标签)。这只是一个个人项目,但我可以将其作为补丁提供,或者制作我自己的库或播放器。我只在第一个实例中查看 Track Gain。我的问题的性质可能归结于我数学不及格的事实;)

任务是做两件事:A)在播放开始之前,将音量钳制到设备最大-14dB(或者更多,一些消息来源建议-23dB)。B) 在每首曲目开始播放之前,阅读其标签并按该数 dB 进行调整。

我看到在 Android 中调整播放音量也涉及对数缩放,但由于我是对数的新手,我不确定这是否会使事情变得更容易或两倍(10 倍?)。

谁能给我关于如何将分贝值转换为 MediaPlayer.setVolume() 的可用参数的线索?感谢您的任何提示。

编辑:我有一些(可能是不稳定的)断言可能需要建立联系,但如果其中任何一个是轻率的,我非常需要被告知。

  1. ReplayGain 假设目标电平为 -14 dBFS == 89dB SPL。因此,我假装这些比例上下都是等价的(我知道这是不准确的,但有多不准确?)
  2. 我将 MediaPlayer.setVolume(1.0f,1.0f) (最大音量)视为 0dBFS。
  3. 基于 (1),我将其等同于 89+14 = 103dBSPL。
  4. 我将 MediaPlayer.setVolume(0.0f,0.0f) (mute) 视为 0dBSPL,因此我有一个 0-103 的抽象线性音量刻度。

如果这些保持不变,我会将 -1.3 的 Track Gain 值转换为 MediaPlayer.setVolume() 的适当参数,如下所示:

  1. 目标响度 = 89 - 1.3 = 87.7
  2. 浮动 newVol = 1.0f - (Math.log(103 - 87.7 / Math.log(103)) = 0.41143207395167

这是在正确的轨道上吗?

0 投票
1 回答
647 浏览

audio - 检测声音文件或设备中的回声或侧音

我需要从未静音的电话听筒中检测回声/侧音。

基本上,我在我的麦克风静音电脑上拨打电话听筒。然后我从电脑向手机播放声音,并记录听筒传入的音频。

我需要检测我拨打的电话是否静音。如果它没有静音,我应该在音频文件中看到一些侧音/回声。

目前,我在看到原始音频中的任何回声时遇到问题。

是否有任何软件或算法可以运行音频文件来检测回声/侧音?

我应该播放任何特定的音调或频率来产生最大的回声吗?