【发布时间】:2014-06-16 23:26:12
【问题描述】:
我正在使用 Unity3D 进行音高检测项目。我对编码、统一和我目前正在做的几乎所有其他事情都很陌生! :-) 我遇到了这个网页,它帮助我开始并在我的项目中使用 FFT 代码:
http://www.kaappine.fi/tutorials/fundamental-frequencies-and-detecting-notes/
它大部分工作得非常好,但是检测到的频率似乎因我使用的计算机而异。我已经在各种台式机和笔记本电脑(pc 和 mac 的混合)上尝试过它,在某些计算机上它可以拾取正确的频率,但在其他计算机上它给了我大约 100 的频率。 1.5个半音平坦。有趣的是,在我尝试过的 6 台计算机中,3 台是正确的,另外 3 台都是相同的 1.5 个半音。
这不能归结为麦克风,因为我在某些计算机上尝试了内置麦克风以及单独的麦克风,结果没有变化。
有谁知道这可能是什么原因以及我该如何解决这个问题?我可以对代码进行任何调整吗?我正在从事的项目最终将作为 iPhone 应用程序分发,因此我需要它能够跨设备普遍工作。
顺便说一句,我目前只能使用 C# 编程语言。
非常感谢您的任何帮助和建议
最好的祝福
菲尔
【问题讨论】:
-
您是否检查过您使用的采样率是否在设备支持的最小/最大速率范围内(请参阅docs.unity3d.com/ScriptReference/Microphone.GetDeviceCaps.html)?
标签: c# unity3d fft pitch-detection