2

我将SoundAnalysis 框架与使用 CreateML 创建的 CoreML 模型结合使用。

我能够使用SNAudioFileAnalyzer对嵌入在应用程序包中的音频文件执行分析,但在对来自麦克风的实时音频使用SNAudioStreamAnalyzer时不能。

使用以下代码时:

    // Create a new audio engine.
    audioEngine = AVAudioEngine()

    //https://forums.developer.apple.com/thread/44833
    audioEngine.mainMixerNode

    do {
        // Start the stream of audio data.
        try audioEngine.start()
    } catch {
        print("Unable to start AVAudioEngine: \(error.localizedDescription)")
    }

    // Get the native audio format of the engine's input bus.
    let inputFormat = audioEngine.inputNode.inputFormat(forBus: 0)

    // Create a new stream analyzer.
    var streamAnalyzer = SNAudioStreamAnalyzer(format: inputFormat)

我在最后一行收到错误:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error updating tree format'

有人知道吗?现在没有太多关于 SoundAnalysis 框架的文章,所以在这个框架上感觉有些不自在。

4

4 回答 4

2

我刚刚通过设置解决了错误AVAudioSession.sharedInstance().setCategory(.playAndRecord)

于 2019-11-04T11:51:12.343 回答
1

我遇到了同样的错误,它在附近let inputFormat = audioEngine.inputNode.inputFormat(forBus: 0),但现在没有更多信息。

于 2019-10-22T15:56:22.627 回答
0

我在模拟器上运行非常相似的初始化代码时遇到了同样的异常。对我来说,我只是重新启动模拟器(设备>重新启动)后问题就消失了。

于 2021-02-24T16:22:10.400 回答
0

我有完全相同的错误,对于我的情况来说非常明显,这是因为我在没有内置麦克风输入的模拟器上进行测试。一旦我切换到真实设备,我就摆脱了这个。

于 2020-06-10T00:45:29.170 回答