问题标签 [pitch-tracking]
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.
audio - 您如何分析 PCM 或 WAV 样本的基频?
我有一个样本保存在 DirectX 的缓冲区中。它是从乐器演奏和捕捉的音符样本。如何分析样本的频率(就像吉他调音器一样)?我相信涉及 FFT,但我没有指向 HOWTO。
linux - Linux 中的音高识别
是否有任何免费软件工具或组合可以让我识别录制的演唱会的音高?
这个想法是在时间线上显示某种带有当前音高的图表以及标准音符(C3、C#3、D 等)的标记。我不需要音高校正,也不需要实时完成。
我知道曾经有一个 Rosegarden 插件可以做到这一点,但它已经丢失了。
signal-processing - 检测基频
印度 IIT-Bombay 有一个科技节,他们在那里举办了一个名为“Artbots”的活动,我们应该设计具有艺术能力的艺术机器人。我有一个关于音乐机器人的想法,它以歌曲为输入,检测歌曲中的音符并在钢琴上播放。我需要一些方法来帮助我计算歌曲音符的音高。关于如何去做的任何想法/建议?
iphone - iPhone 上的实时音高转换
我有一个正在编写的儿童 iPhone 应用程序,我需要能够使用 Core Audio 改变声音样本的音高。有没有人有任何示例代码,我可以看看这是在哪里完成的。应用商店中有很多音乐和游戏应用可以做到这一点,所以我知道我不是第一个。但是,我找不到任何这样做的例子。
wav - 显示 WAV 文件音高
我是音频世界的新手,我被分配了一个我不知道如何处理的任务。我需要显示一个表示 WAV 文件音高的图表。WAV文件可以是和弦的,然后我需要显示主导(阅读:音量最大)乐器(或人声唱歌)的音高图。我对 .NET 非常熟悉,对 C、C++、Java 几乎一无所知。
我在网上开始了一项研究,据我了解,复音 WAV 文件的音高检测是一个未解决的问题,但我不需要确切的音高,只是想知道它是否比下一个更高,它是什么长度。
我的问题是:
我应该从哪里开始学习这项任务背后的理论?有什么推荐的书吗?
是否有任何 API/工具可以做到这一点?
谢谢,
机器学习
c++ - 自相关返回带有麦克风输入的随机结果(使用高通滤波器)
很抱歉问了一个与我之前问过的问题类似的问题(FFT 问题(返回随机结果)),但我已经查找了音高检测和自相关,并找到了一些使用自相关进行音高检测的代码。
我正在尝试对用户唱歌进行音高检测。问题是,它不断返回随机结果。我从http://code.google.com/p/yaalp/获得了一些代码,我已将其转换为 C++ 并进行了修改(如下)。我的采样率为 2048,数据大小为 1024。我正在检测正弦波和麦克风输入的音高。正弦波的频率是 726.0,它检测到它是 722.950820(我可以接受),但它检测到麦克风的音高是从大约 100 到大约 1050 的随机数。
我现在正在使用高通滤波器来消除直流偏移,但它不起作用。我做对了吗,如果是这样,我还能做些什么来解决它?任何帮助将不胜感激!
(固定的)
谢谢,
尼尔。
编辑:更改代码以实现截止频率为 30hz 的高通滤波器(来自What Are High-Pass and Low-Pass Filters?,谁能告诉我如何使用卷积将低通滤波器转换为高通滤波器?) 但它仍然返回随机结果。不幸的是,将它插入 VST 主机并使用 VST 插件来比较频谱对我来说不是一个选择。
编辑:已修复,感谢大家的帮助,但我从来没有让它工作,现在使用新代码。
audio - 实时音高检测
我正在尝试对用户唱歌进行实时音高检测,但遇到了很多问题。我尝试了很多方法,包括 FFT(FFT 问题(返回随机结果))和自相关(自相关音高检测返回带有麦克风输入的随机结果),但我似乎无法获得任何方法来给出好的结果。谁能建议一种实时音高跟踪的方法或如何改进我已有的方法?我似乎找不到任何用于实时音高检测的好的 C/C++ 方法。
谢谢,
尼尔。
编辑:请注意,我检查了麦克风输入数据是否正确,并且当使用正弦波时,结果或多或少是正确的音高。
编辑:对不起,这已经晚了,但目前,我通过从结果数组和每个索引中取出值来可视化自动收集,并在 X 轴上绘制索引和 Y 轴上的值(两者都除以100000 或其他东西,我使用 OpenGL),将数据插入 VST 主机并使用 VST 插件对我来说不是一个选项。目前,它看起来就像一些随机的点。我做得对吗,或者你能不能指点我一些代码来做这件事,或者帮助我理解如何可视化原始音频数据和自相关数据。
audio - 智能手机上音符的音高识别
由于资源有限,例如较慢的 CPU、代码大小和 RAM,如何最好地检测音符的音高,类似于电子或软件调音器所做的事情?
我应该使用:
- 亲吻 FFT
- FFTW
- 离散小波变换
- 自相关
- 过零分析
- 倍频程滤波器
其他?
简而言之,我要做的是识别一个音符,在中音 C 以下两个八度到两个八度以上,在任何(合理的)乐器上演奏。我希望在半音的 20% 以内 - 换句话说,如果用户弹奏太平或太尖锐,我需要区分这一点。但是,我不需要调整所需的精度。
c++ - 使用 FFT 进行实时音高检测
我正在尝试使用 C++ 进行实时音高检测。我正在测试一些来自高性能(http://performous.org/)的代码,因为其他一切都对我不起作用。我肯定知道这行得通,但我就是不能让它工作。我已经尝试了几个星期,但我无法让任何音高检测代码正常工作。
visualization - 以编程方式“聆听”声音(信号处理?)
我熟悉计算机视觉(嗯,知道它),其中一个应用程序可以是图像识别,例如光学字符识别,我相信。但是,我更感兴趣的是“计算机聆听”,我刚刚学过的被认为是数字信号处理。
信号处理最让我感兴趣的是在音乐中的潜在应用。我记得不久前我看到了一个应用程序的预览(对不起,忘记了名字),它可以收听某人弹吉他的录音,并在时间线上自动将其与实际演奏的音符/和弦绘制成图表. 使用该程序,用户可以移动它们甚至编辑它们。现在,显然这要复杂得多,但它涉及同样的事情吗?信号处理?我还对音乐可视化器和智能照明系统中的可能应用感兴趣。
我的理解是,对 MP3 等压缩音频格式进行此处理不会产生与包含单独音轨的 MIDI 相同的结果(也许我误解了)。PCM 等未压缩格式会比 MP3 做得更好吗?我对声音处理一无所知,这正是我从目前所读到的内容中推断出来的。
我已经看过这个问题,它有很好的答案和链接,涵盖了我的很多问题。但是,我发现的大多数链接都是理论性的,我敢肯定它们都很有趣,并且鉴于我对该主题的兴趣,绝对值得一读,但我想知道是否有任何现有的库可以促进这一点,或与该主题相关的面向计算机科学/编程的文章,可能带有示例代码。即使是开源声音/音乐可视化器或任何其他开源声音处理代码也会很棒。
对不起,如果我没有任何意义。就像我说的,我不知道我在说什么。