【问题标题】:AVAudio detect note/pitch/etc. iPhone xcode objective-cAVAudio 检测音符/音高/等。 iPhone xcode 目标-c
【发布时间】:2011-11-29 04:55:54
【问题描述】:

我正在 iphone 上制作应用程序,我需要一种方法来检测通过麦克风传入的声音的曲调。 (即 A#、G、C♭ 等) 我以为我会使用 AVAudio,但我真的不知道,我在文档中找不到任何东西..

有什么帮助吗?

【问题讨论】:

    标签: iphone objective-c audio avaudiorecorder


    【解决方案1】:

    音符只不过是特定频率的声音。您将需要一种方法来分析输入信号中的所有频率,然后找到一种方法来隔离各个音符。

    使用Fast Fourier Transform (FFT) 查找音频信号中的频率。网上有大量源代码可用于根据音频信号计算 FFT。特别是,oScope 为 iPhone 提供了一个开源解决方案。

    编辑: Pitch detection 似乎是您正在尝试做的事情的技术名称。在 SO 上similar question 的答案可能有用。

    【讨论】:

    【解决方案2】:

    就像@e.James 所说,您正在寻找一个音符的音高,它称为音高检测。斯坦福大学 CCRMA 有大量资源可满足您的需求。只需google 用于音高检测,您就会看到一系列精彩的算法。至于想要找到音频样本块的 FFT,您可以使用 Accelerate Framework 的内置 FFT 功能(请参阅thisthis)或使用MoMu toolkit。使用 MoMu 的好处是它的功能可以为您将音频流分解为样本,并使用它自己的功能轻松应用 FFT。

    【讨论】:

      【解决方案3】:

      iOS API 没有内置任何用于音高估计的功能。您必须编写自己的 DSP 函数。 Accelerate 框架中的 FFT 将为您提供来自 PCM 采样波形的频谱频率信息,但频率与心理感知音高不同。

      估计频率和音高有很多好方法和坏方法。我的DSP resources web page 上有很长的部分估算方法列表。

      您可以查看 Apple 的 aurioTouch 示例应用,了解获取 iOS 设备音频输入并显示其频谱的示例。

      【讨论】:

      • 嘿,你有 audioTouch 应用程序的网络链接吗?
      • 查看开发资源:developer.apple.com 上的示例代码
      • 其实叫aurioTouch
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 2017-05-01
      • 2021-01-21
      • 1970-01-01
      • 2010-11-24
      相关资源
      最近更新 更多