【问题标题】:Record at sample rate lower than 44100 Hz : Audiokit, swift, iOS以低于 44100 Hz 的采样率录制:Audiokit、swift、iOS
【发布时间】:2018-09-30 11:28:59
【问题描述】:

我想以低于 44100 Hz(理想情况下为 8000 Hz)的采样率录制音频文件。 Audiokit 可以吗?我怎么能这样做?

Apple doc 表示采样率通常在 8000 到 48000 Hz 之间(取决于设备)。我用的是 iPhone 5S。

我想降低采样率,因为我正在使用 vDSP 进行一些信号处理。 44100Hz的计算时间太长了。

当我尝试设置时

    AKSettings.sampleRate = Double(22050) // I also tried with 16000, 8000

在设置会话之前:

    do {
        try AKSettings.setSession(category: .playAndRecord, with: .defaultToSpeaker)
    } catch {
        AKLog("Could not set session category.")
    }

我可以在日志中看到 AKNodeRecorder 文件的持续时间是 5 秒,但它似乎记录得更快(从 0 秒到 5 秒的实际时间是 2.5 秒):

   AKNodeRecorder: recording
   AKNodeRecorder writing (file duration: 0.1 seconds)
   AKNodeRecorder writing (file duration: 0.2 seconds)
   ...
   ...
   AKNodeRecorder writing (file duration: 5.0 seconds)
   updatePCMBuffer() read 110250 frames into buffer

此外,输出文件具有指定的采样率和持续时间(22050 Hz 和 5 秒),但值都等于 0。

我阅读了this post 关于这个问题的信息。我想知道是否有更新以及解决方案是否仍在继续,正如 ryanfrancesconi 所写:

  1. 录制音频文件
  2. 另存为.wav
  3. 使用 AKConverter 以新的采样率对其进行转换
  4. 打开文件
  5. 进行信号处理

谢谢!

【问题讨论】:

  • 我相信 Ryan 的解决方案仍然是最相关的。 Dave O'Neill,也是核心团队的成员,我认为他有一些策略来处理采样率问题,当他有时间解决这些问题时。

标签: ios swift audiokit


【解决方案1】:

这可能已经晚了,但我几个月来一直在寻找类似的解决方案,今天偶然发现了this。看@dengST30提供的答案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-10
    • 2013-11-18
    • 2015-10-05
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 2014-12-14
    • 2016-01-12
    相关资源
    最近更新 更多