以低于44100 Hz的采样率录制:Audiokit,swift,iOS

时间:2018-04-19 20:42:21

标签: ios swift audiokit

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

Apple doc表示采样率通常为8000到48000 Hz(取决于设备)。我正在使用iPhone 5S。

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

当我尝试设置

    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. 进行信号处理
  6. 谢谢!

1 个答案:

答案 0 :(得分:0)

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

相关问题