以高于 16kHz 的采样率从 AirPod Pro 录制音频

Posted

技术标签:

【中文标题】以高于 16kHz 的采样率从 AirPod Pro 录制音频【英文标题】:Record audio from AirPod Pros at higher sample rate than 16kHz 【发布时间】:2020-12-24 21:29:40 【问题描述】:

是否可以通过 AirPod Pro 的麦克风以高于 16kHz 的采样率录制音频?

我正在使用audioEngine 接入麦克风总线:

let node = audioEngine.inputNode
let recordingFormat = node.outputFormat(forBus: 0)

node.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat)  [unowned self] (buffer, _) in
    self.request!.append(buffer)


audioEngine.prepare()
do 
    try audioEngine.start()
 catch 
    fatalError("\t[Error] There was a problem starting speech recognition")


似乎默认采样率(在 recordingFormat 中找到)是 16000Hz,我很难指定更高的采样率。

与来自 iPhone 麦克风的录音(其采样率为 44100Hz)相比,此特定采样率返回的录音质量相当低。

【问题讨论】:

您好!我知道这是不被接受的。但是很长一段时间我无法解决这个问题。你可以帮帮我吗?我会很感激。我在我所在的地区找不到 AirPods Pro。你能打开我的小xcode项目并测试一下吗? ***.com/questions/69851479/… 我认为这是硬件问题——AirPod Pro 无法以高于 16kHz 的采样率进行录制,因此软件不允许这样做。如果你对相反的问题感兴趣——下采样——我发现这个很棒post 【参考方案1】:

在启动 AVAudioEngine 实例之前尝试调用以下命令

AVAudiosession.sharedInstance().setCategory(.playAndRecord)
try AVAudioSession.sharedInstance().setPreferredSampleRate(44_100)

【讨论】:

不幸的是,它没有解决问题。我的预感是 AirPods 硬件的采样率是 16kHz,所以我们的速率是有限的。在AVAudioSession.sharedInstance().setPreferredSampleRate() 的文档中,他们提到“要使用的硬件采样率。可用范围取决于设备,通常为 8000 到 48000 赫兹。”

以上是关于以高于 16kHz 的采样率从 AirPod Pro 录制音频的主要内容,如果未能解决你的问题,请参考以下文章

听说高通平台处理器有先天的音频采样率缺陷,是啥

如何在 linux/android 平台上设置高于 44.1kHz 的音频采样率?

如何将 8 kHz 音频采样率提高到 16 kHz STM32

如何将采样率从 AV_SAMPLE_FMT_FLTP 转换为 AV_SAMPLE_FMT_S16?

切比雪夫 LPF 引入噪声

安卓开发音频mic口怎么接收20khz的波形