问题标签 [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.
iphone - 使用 wav 文件和 openal 在 iPhone 上进行节拍检测
使用这个网站,我试图制作一个节拍检测引擎。http://www.gamedev.net/reference/articles/article1952.asp
alDatal 和 alDatar 是 (short*) 类型;
myDat 是 NSdata,它保存格式为 22050 khz 和 16 位立体声的 wav 文件的实际音频数据。
这似乎无法正常工作。如果有人能帮助我,那就太棒了。我已经坚持了3天。
所需的结果是在处理完 10 秒的数据后,我应该能够将其乘以 6 并估算出每分钟的节拍数。
我目前的结果是每 10 秒 389 次节拍,2334 BPM 我知道的歌曲大约是 120 BPM。
java - 音频编程、声音处理和 DSP
我在 iPhone 上玩了一个卡拉 OK 应用程序,并提出了以下问题:
该应用程序允许其用户控制艺术家的音量;甚至静音。这怎么可能?调整艺术家声音/设置均衡器等是否意味着对所需频率进行一些转换?这里需要什么样的数学(频域变换)?
该应用程序通过麦克风记录用户的语音输入。假设声音是以某种格式录制的,应用程序能够将录音与卡拉 OK 轨道混合(艺术家的声音静音)。如何才能做到这一点?他们是否同时播放曲目和录音?或者他们可能在原始轨道中插入了额外的频率(频道?),或者替换它?
这里涉及什么样的DSP?这在Java,Objective C中可能吗?
我很好奇,如果你有可以帮助我理解这里机制的文档或书籍的链接,请分享。
谢谢。
algorithm - 确定音频样本键的算法
我有兴趣确定音频样本的音调。算法将如何(或可能)尝试逼近音乐音频样本的键?
Antares Autotune 和 Melodyne 是两个做这种事情的软件。
任何人都可以就这将如何工作给出一些外行的解释吗?通过分析和弦进行的频谱等来数学推断歌曲的键。
这个话题让我很感兴趣!
编辑——从为这个问题做出贡献的每个人那里可以找到出色的资源和丰富的信息。
特别是来自:the_mandrill 和 Daniel Brückner。
algorithm - 两个音频序列之间的感知相似度
我想在两段音频之间进行某种距离测量。例如,我想将动物的声音与模仿该动物的人类声音进行比较,然后返回声音相似程度的分数。
这似乎是一个难题。处理它的最佳方法是什么?我正在考虑从音频信号中提取几个特征,然后对这些特征进行欧几里得距离或余弦相似度(或类似的东西)。什么样的特征易于提取并有助于确定声音之间的感知差异?
(我在某处看到 Shazam 使用散列,但这是一个不同的问题,因为被比较的两段音频基本相同,但一个有更多噪音。这里,两段音频不一样,它们只是感知上的相似的。)
audio - 开源 FSK 解码器库?
我正在寻找一个库或工具来解码 wav 文件中的 FSK,例如来电显示。
目前使用与 vpb-driver 捆绑的工具,用于通过 debian/ubuntu 提供的 Voicetronix 硬件。但这似乎有一个我正在尝试调试的错误——第二个验证音频文件的工具会很有用。
我不是在寻找从调制解调器或其他硬件设备读取来电显示数据的无数工具——我需要纯软件。
c# - 将音频转换为文本
我只想知道在 Java 或 C# 中是否有任何内置库或外部库允许我获取音频文件并解析它并从中提取文本。
我需要申请这样做,但我不知道从哪里开始。
python - 在 python 中播放歌曲时更改歌曲的 bpm
我正在寻找一种使歌曲与某人的心率相协调的方法。我有一首 mp3 或 wav 格式的歌曲,我想在播放时加快它的速度。或者循环播放它,在每个循环之间加速或减慢它。理想情况下,它将在 python 中。你知道这样做的方法吗?
问候和感谢。
比西埃
iphone - 使用核心音频实现后处理低通滤波器
我已经使用基于时间的值实现了一个基本的低通滤波器。这没关系,但试图找到正确的时间片是猜测工作,并根据不同的输入音频文件给出不同的结果。这是我现在拥有的:
我该怎么做才能将此代码转换为允许我将某个 hz 上的频率降低某个 db 级别的代码?
c++ - 修改音频样本缓冲区的音量增益
我想用语音数据增加缓冲区的音量。关键是我正在使用 DirectSound,并且我有一个主缓冲区和一个辅助缓冲区 - 所有流混合都是手动完成的。在语音聊天中,所有参与者都可以有独立的音量级别。我将每个流数据乘以一个值(增益)并将其相加到一个缓冲区。一切正常,但是当我尝试将数据乘以大于 1.0f 的值时 - 我听到一些剪辑或什么。
我试过使用 Audacity 效果压缩器,但这无助于减少奇怪的噪音。
也许我应该以其他方式修改增益?或者只是使用另一种后处理算法?
更新:哇,我刚刚发现了有趣的事情!我在增加音量之前和之后都转储了音频。
这是图片
对不起质量 - 我认为这就是声音应该出现的方式(我自己画了红线)。确实看起来值超出了示例数据类型。但我不明白为什么?我的样本缓冲区是 BYTE,但我只能通过短指针访问它。它已签名,但即使 *ptr 约为 15-20 千,也会发生剪裁。
ruby - Ruby 吉他调音器
我从未使用过实时音频功能。我想知道是否有 ruby 库可以让我创建类似吉他调音器的东西。