问题标签 [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 投票
1 回答
2301 浏览

python - 用python将视频分成帧

我正在尝试编写一个程序来删除其中没有特定符号的视频帧。我的总体计划:

  1. 从视频中分割音频
  2. 将视频分割成帧
  3. 通过一个查找符号的子程序运行帧,检查应该是正确颜色的像素,并记录那些不正确的像素。
  4. 删除那些帧和相应的音频秒
  5. 将它们重新拼接在一起。

我需要一些帮助来寻找可以做到这一点的库。我想知道是否wxpython可以检测像素颜色。我不知道哪个库可以分割音频和视频,哪个库可以编辑音频。我知道 ffmpeg 可以将视频分割成帧,但经过两天的工作,我仍然无法为 python 2.7 安装它,所以我需要一种安装方法或不同的库来安装它。有任何想法吗?

0 投票
1 回答
2140 浏览

c# - FFT 算法 - 如何将样本转换为复杂结构?

我的问题的简短版本:

如何从音频样本数组(如 Int16)到常见 FFT 库(如 AForge)使用的复杂结构?

我的问题的长版本:

我是音频处理的新手,正在寻找分析音乐中的音频(定位节拍、速度等)。经过几天的阅读,快速傅里叶变换 (FFT) 算法似乎是朝着正确方向迈出的一步。

为了不必从头开始实现算法,我下载了几个开源库,Exocortex 和 AForge.net。

我正在将音频解码到内存缓冲区。在我的 16 位 48kHz 音频立体声轨道的每个周期中,我得到 48000 字节或 24000 个样本。这些当前被复制到一个短数组(Int16)中。我现在需要将我的数组转换为复杂结构(在 AForge 的情况下)。这又用“实数”和“虚数”双精度值初始化。但是这些到底是什么,我如何从我的数组转到这两个双精度值?另外,我需要在传递之前拆分左/右通道吗?

不幸的是,只要不是以代码形式呈现,我在阅读数学公式方面就很糟糕。到目前为止,在我访问过的几乎所有网站上,很快就会出现希腊符号和复杂的数学公式来帮助解释算法。结果,我马上就迷失在翻译中。相信我,我努力寻找“傻瓜的 FFT 算法”。;)

版主注意:这不是将音频样本从字节转换为复数的副本吗?即使问题相似。

0 投票
1 回答
629 浏览

matlab - 在 MATLAB 中使用两个通道生成声音

我正在尝试使用两个通道创建声音。我发送两个不同频率的信号。

我试图在没有Data Acquisition Toolbox的情况下做到这一点。有可能做到吗?

0 投票
2 回答
4474 浏览

audio - 将音频样本从时域转换为频域

作为一名软件工程师,我在处理信号处理问题时遇到了一些困难。我在这方面没有太多经验。

我尝试做的是以 44100 采样率和固定大小的窗口对环境声音进行采样,以测试是否存在特定频率(20KHz)并高于阈值。

这是我根据如何使用 C 中的 FFTW 从 PortAudio 的样本中提取频率信息中的完美答案所做的

从音频端口以 44100 采样率收集 102400 个样本(2320 毫秒)。样本值介于 0.0 和 1.0 之间

窗口大小或 FFT 大小为 1024 个样本(23.2 毫秒)

窗口数量为 100

将样本拆分为 noOfWindows (100) 个窗口,每个窗口的大小为 N (1024) 个样本

在每个窗口上应用汉宁窗函数

在每个窗口上应用 FFT(在 FFT 函数内完成实数到复数的转换)

在最后一步,我使用了这个链接中实现的 FFT 函数:http: //www.codeproject.com/Articles/9388/How-to-implement-the-FFT-algorithm;因为我无法从头开始实现 FFT 函数。

我不能确定的是,在将 N (1024) 个样本作为输入提供给 FFT 函数时,samplingRate/2 (22050) 分贝值作为输出返回。它是 FFT 函数的作用吗?

我知道由于奈奎斯特频率,我最多可以检测到一半的采样率频率。但是是否可以获得每个频率高达 samplingRate/2 (22050) Hz 的分贝值?

谢谢, 瓦希特

0 投票
3 回答
9391 浏览

python - 以同步方式检测节拍和播放 (wav) 文件

我正在尝试使用这种节拍检测算法在 python 中进行音频处理。我已经实现了上述文章中的第一个(非优化版本)。虽然它会打印一些结果,但我无法检测它是否能以某种准确度工作,因为我不知道如何用它播放声音。

目前,我Popen在进入计算循环之前使用歌曲异步启动我的媒体播放器,但我不确定这种策略是否有效并给出同步结果。

为了以时间同步的方式获得音频输出和算法(控制台)输出,我可以对脚本进行哪些修改/添加?即当控制台输出特定帧的结果时,该帧必须在扬声器上播放。

0 投票
1 回答
1104 浏览

matlab - 如何使用 MATLAB 将声音文件转换为 .mif?

我想从例如 mp3 文件的声音信号中获得一个 mif 文件。我怎样才能使用 MATLAB 来做到这一点?

谢谢,BooMZ!

0 投票
2 回答
492 浏览

android - 在 Android 中通过音频信号传输和提取消息

我对音频处理进行了研究,并且有一个大问题要解决。是否可以通过将文本消息或二进制流(10101010)嵌入到音频信号中来传输它,广播它以便其他安卓设备可以记录该声音并提取嵌入的文本消息或二进制流?

0 投票
6 回答
15209 浏览

c++ - 用于读取音频文件的库

我想在线/现场处理音频,我不断地从音频文件中读取音频样本,处理这些(例如应用一些效果),并将处理后的样本转发到像声卡这样的音频输出设备。输入文件具有常见的格式,例如 wav、mp3,甚至可能是 ogg。

是否有类似于 libav/ffmpeg 的用于音频文件的库,可以简化读取各种音频格式并为我提供源源不断的原始音频样本流?还是为每种格式使用单独的库的最佳解决方案?这些库应该是 c/c++ 和跨平台兼容(Mac、Win、Linux、ARM)。

编辑感谢所有答案。我评估了所有库并得出结论,最好还是坚持使用 libav/ffmpeg,因为大多数库都需要 ffmpeg 作为后端。

0 投票
1 回答
304 浏览

audio - 构建软件 DAW 需要哪些开发人员角色或头衔?

到目前为止,我已经在 Mac 和 Windows 平台上使用了许多不同的音频制作软件。很多时候,我会思考创建自己的 DAW 的想法,但我意识到这对于一个人来说将是一项极其艰巨的挑战(尤其是如果只了解一种特定领域/编程语言的情况下)。

只要想到我使用过的其他一些 DAW,我就会想到大量的想法/功能。从实现MIDI输入/输出、音频路由混音总线VST支持、钢琴卷帘乐曲视图用户界面等......

所以我的问题是...

开发人员团队需要哪些角色来创建完整的数字音频工作站(DAW) 软件?

0 投票
1 回答
352 浏览

windows-phone-7 - 对波形文件进行下采样

我需要将 16000 赫兹 PCM 16 位波形文件下采样到 8000 赫兹。我对音频处理知之甚少(几乎没有),我只了解所有程序员都了解的位、字节、移位等。

它是一个 Windows Phone 应用程序。

你有什么建议?此外,据我了解,XNA 框架中 Microphone 类的 SampleRate 是不可定制的,因此它只能为您提供 16000 赫兹的数据。有没有办法在 Windows Phone 中获取 8000 赫兹的原始音频数据?那将是一个更容易的解决方案:)

谢谢你。