问题标签 [audio-processing]

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 投票
2 回答
2291 浏览

android - Android中有没有像图像处理中的OpenCV这样的音频处理库?

我了解 OpenCV 是一个事实上的图像处理编程库。我想知道在音频处理中是否有一个像这样的 C 或 C++ 库。我基本上想过滤来自麦克风的那些原始波并用一些机器学习算法分析它们。我找到了这个问答,但这并没有真正回答我的问题。任何建议将不胜感激。

编辑:我从 Signal Processing 得到了一个很好的答案,但我不确定我是否可以将它们中的任何一个用于 Android,主要是因为它臭名昭著的高音频延迟问题。

0 投票
1 回答
2151 浏览

c++ - 在 FMOD 中更改 MIDI 或 WAV/MP3 文件的速度

是否可以使用 FMOD 更改 MIDI 或 WAV/MP3 文件的速度?我在 FMOD 旁边使用 C++,但似乎找不到一个函数可以让我从应用程序的 C 部分中收到的变量控制音频文件的速度。我正在使用我自己编写的音频,所以我要让所有曲目的节奏相同,这样我就不必担心使用/编写函数来计算任何东西的 bpm。

0 投票
4 回答
9890 浏览

python - Python:改变音频文件的音高

这是我在堆栈上的第一篇文章。到目前为止,这个站点非常有帮助,但我是一个新手,需要对我的问题进行清晰的解释,这与 Python 中的音高转换音频有关。我安装了当前模块:numpy、scipy、pygame 和 scikits “samplerate” api。

我的目标是获取一个立体声文件,并以尽可能少的步骤以不同的音高播放它。目前,我使用 pygame.sndarray 将文件加载到数组中,然后使用 scikits.samplerate.resample 应用采样率转换,然后使用 pygame 将输出转换回声音对象以进行播放。问题是我的扬声器发出垃圾音频。当然,我错过了几个步骤(除了对数学和音频一无所知)。

谢谢。

0 投票
1 回答
669 浏览

audio - 使用 AFSK 将数字数据调制成音频

我想将数字数据调制成音频。然后通过任何音频通道进行通信,并在目的地再次从音频解调为数据。为此,我希望在不使用任何硬件实现的情况下使用计算机声卡和软件调制解调器。在互联网上,我发现这可以通过称为音频频移键控(AFSK)的技术。我想知道我能否从 AFSK 获得超过 1200bps 的比特率,如果不是,那么这个限制背后的原因是什么。为此目的,有没有比 AFSK 有效的技术?

0 投票
2 回答
2517 浏览

android - 如何最好地确定信号的音量?

我想确定音频信号的音量。

我找到了两个选择:

  1. 计算幅度的均方根
  2. 找到最大幅度

使用#1 或#2 有优势吗?

这是我想要做的:我希望我的 Android 分析来自麦克风的音频。我希望设备检测到很大的噪音。输入是一个短 []。

0 投票
1 回答
1756 浏览

java - java如何在没有音序器的情况下改变midi文件的速度?

我需要在播放之前获取 midi 文件的信息,我可以这样做,但我需要使用文件 bpm 的替代 bpm 来做到这一点。

那么有没有办法设置midi文件的bpm并因此影响它的相应时间事件?

0 投票
1 回答
2482 浏览

php - 加速 PHP-CLI 脚本的可能性?

我编写了一个 PHP-CLI 脚本,它混合了两个音频 (.WAV PCM) 文件(涉及一些数学运算),因此 PHP 需要unpack()pack().

现在,我不需要关于如何进行混音或其他任何事情的实际信息,正如标题所说,我正在寻找加快这个过程的可能性,因为脚本需要 30 秒的处理时间来产生 10 秒的音频输出。

我尝试过的事情:

  • 将音频文件缓存到内存并使用substr()而不是fseek()/来处理fread()。性能提升:3 秒。
  • 以 5000 个样本块的形式写入输出文件。性能提升:10 秒。

在这些优化之后,我最终以大约 17 秒的处理时间来处理 10 秒的音频输出。令我烦恼的是,其他工具可以进行简单的音频操作,例如实时混合两个文件,甚至更快。

我的另一个想法是并行化,但由于会发生额外的问题(例如计算叉/线程和其他相关事物的正确查找位置),我没有这样做。

那么我是否遗漏了一些东西,或者这对于 PHP-CLI 脚本来说实际上是一个很好的性能?

0 投票
1 回答
488 浏览

actionscript-3 - AS3 客户端 + grails 服务器 - 在客户端处理音频并将其发送回服务器

我们正在编写一个 Flash 应用程序,它可以下载 MP3 文件、将其转换为 Sound 对象、获取原始数据并进行一些处理(如添加声音、更改八度音阶)。处理完成后,我们希望将数据分块发送回服务器,以便服务器能够将数据粘合在一起并恢复新生成的文件。问题是:如果我们向服务器发送“wav”声音片段,我们可以在生成的文件中毫无问题地将它们粘合在一起。但是,如果我们将每个 wav 片段转换为 mp3 文件(这样我们可以将较小的文件发送到服务器)并在服务器上加入 mp3 文件,结果是在合并点出现一些问题的声音。

这是我们从服务器加载 mp3 文件的方式:

这就是我们如何将每一段 mp3 转换为 bytearray 和 wav:

如果我们将每个 mini-wav 文件发送回服务器(例如,使用套接字),我们就可以毫无问题地将它们粘合在一起。但是,如果我们使用以下代码转换每个 wav 字节数组:

加入文件后,创建的 mp3 文件在“合并”点有很多声音问题。

我们怎样才能避免这样的声音问题?

客户端技术:AS3 服务器端技术:grails

0 投票
13 回答
416653 浏览

ffmpeg - 如何使用 ffmpeg 从视频中提取音频?

我尝试了以下命令从视频中提取音频:

但我得到以下输出

有人可以帮忙吗?

0 投票
4 回答
12916 浏览

python - Python NumPy - FFT 和逆 FFT?

我一直在使用 FFT,目前正在尝试使用 FFT 从文件中获取声音波形(最终修改它),然后将修改后的波形输出回文件。我得到了声波的 FFT,然后在上面使用了逆 FFT 函数,但输出文件听起来根本不对。我没有对波形进行任何过滤——我只是在测试获取频率数据,然后将其放回文件中——听起来应该是一样的,但听起来却大不相同。

从那以后,我一直在研究这个项目,但还没有得到想要的结果。输出的声音文件很嘈杂(更大声,以及原始文件中不存在的额外噪音),并且来自一个通道的声音泄漏到另一个通道(之前是静音的)。输入声音文件是一个立体声、2 声道文件,声音仅来自一个声道。这是我的代码:

我不太明白为什么这不起作用。

我已经压缩了问题 .py 文件和音频文件,如果这可以帮助解决这里的问题。