【问题标题】:AudioKit 4.2.3 Crash Microphone Frequency Analysis Swift 4.1AudioKit 4.2.3 崩溃麦克风频率分析 Swift 4.1
【发布时间】:2018-04-15 18:35:31
【问题描述】:

我刚刚更新到最新的 AudioKit 版本 4.2.3 和 Swift 4.1 我在 audiokit.start() 处发生了崩溃,我无法破译。如果您需要更多错误代码,请lmk。

AURemoteIO::IOThread (21): EXC_BAD_ACCESS(代码=1,地址=0x100900000)

仅供参考,我还使用 AVAudioRecorder 将麦克风输入记录到文件中,并稍后在 ViewController 中使用 AVKit AVAudioPlayer 播放它。但是,由于我在更新之前没有遇到此崩溃,我不认为这些因素是负责任的 - 但与跟踪器输入有关。

import UIKit
import Speech
import AudioKit

class RecordVoiceViewController: UIViewController {

    var tracker: AKFrequencyTracker!
    var silence: AKBooster!
    var mic: AKMicrophone!

    let noteFrequencies = [16.35, 17.32, 18.35, 19.45, 20.6, 21.83, 23.12, 24.5, 25.96, 27.5, 29.14, 30.87]
    let noteNamesWithSharps = ["C", "C♯","D","D♯","E","F","F♯","G","G♯","A","A♯","B"]
    let noteNamesWithFlats = ["C", "D♭","D","E♭","E","F","G♭","G","A♭","A","B♭","B"]

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        AKSettings.audioInputEnabled = true
        mic = AKMicrophone()
        tracker = AKFrequencyTracker.init(mic, hopSize: 200, peakCount: 2000)
        silence = AKBooster(tracker, gain: 0)
    }

    func startAudioKit(){
        AudioKit.output = self.silence
        do {
            try AudioKit.start()
        } catch {
            AKLog("Something went wrong.")
        }
    }
}

有趣的是,当我在没有 hopSize 和 peakCount 的情况下初始化跟踪器时,例如:

  tracker = AKFrequencyTracker.init(mic)

它不会崩溃,但它也不会返回正确的频率。我非常感谢任何帮助。谢谢!!!

【问题讨论】:

  • 经过这里测试,我没有发现任何问题,如果你想分享你的项目,甚至私下分享,我会仔细看看。
  • 感谢@AureliusProchazka!给你发了一封电子邮件。我很感激。

标签: swift audiokit frequency-analysis


【解决方案1】:

我遇到了完全相同的问题,但最终找到了临时解决方案。 您需要做的就是 AKMicrophone AKFrequencyTracker之间添加一个额外的层,在我的例子中是AKHighPassFilter

这是正常工作的代码:

let microphone = AKMicrophone()
let filter = AKHighPassFilter(microphone, cutoffFrequency: 200, resonance: 0)
let tracker = AKFrequencyTracker(filter)
let silence = AKBooster(tracker, gain: 0)

AKSettings.audioInputEnabled = true
AudioKit.output = silence
try! AudioKit.start()

希望这会有所帮助,祝你好运!

【讨论】:

  • 谢谢。但这就是我已经拥有的。最新版本的 Audiokit 修复了它。
猜你喜欢
  • 2019-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 2019-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多