gpt4 book ai didi

java - 我可以获取数组形式的声音数据吗?

转载 作者:行者123 更新时间:2023-11-30 03:41:39 24 4
gpt4 key购买 nike

我正在为主动噪声控制制作程序(也使用自适应而不是主动/使用取消而不是控制)

系统非常简单。

  1. 通过麦克风获取声音
  2. 将声音转换为我可以读取的数据(类似于整数数组)
  3. 使声音反相。
  4. 将数据转为声音文件

以下是我的问题

  1. 我可以将声音读取为整数数组吗?
  2. 如果我可以使用整数数组,我该如何制作反相?只需将每个数据乘以 -1 即可?
  3. 对我的项目有任何有用的想法
  4. 除了java之外还有其他推荐的语言吗?

我听说 stackoverflow 有很多顶级程序员。所以,我期待关键的答案:D

最佳答案

回答您的问题:

(1) 当您读取声音时,会返回一个字节数组。这些字节可以很容易地解码为整数、短整型、 float 等。 Java 支持许多常见格式,并且可能有一种与您的麦克风输入和扬声器输出相匹配的格式。例如,Java 支持 16 位编码、立体声、44100 fps,这被认为是 CD 质量的标准。 StackOverflow 上已经有几个问题显示了解码和重新编码回字节的编码。

(2) 是的,只需将 PCM 数组的每个元素乘以 -1 即可。当您将负数添加到正确排列的对应项上时,将得到 0。

(3 & 4) 我不知道延迟时间的容差是多少!我认为,如果您只是简单地进行输入、解码、乘以 -1、重新编码和输出,则可能会获得非常的处理时间。我不知道 Java 在这里能做什么,但我打赌它的规模将是十几毫秒,或多或少。取消预订需要多少钱?声音从麦克风传播到扬声器位置有多远?这允许多少时间? (或者我是否遗漏了它是如何工作的?我以前没有做过此类事情。)

Java 的速度非常快,并且通过读写和简单的数字转换,您将相对接近 native 代码级别。使用以下教程示例作为模板,核心代码(用于测试)可能可以在一个下午编写完成:Reading/Writing sound files, see code snippets 。我会特别注意注释“这里对字节数组中的音频数据做一些有用的事情......”的地方。您可以输入代码将字节转换为 DSP,乘以 -1,然后转换回字节。

如果 Java 不够快,我想接下来要尝试的是 C 语言。

关于java - 我可以获取数组形式的声音数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26729926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com