gpt4 book ai didi

audio - 从音频输入捕获原始音频以在 Mac 上进行实时处理的最简单方法

转载 作者:行者123 更新时间:2023-12-03 03:13:42 24 4
gpt4 key购买 nike

从内置音频输入捕获音频并能够在请求时实时读取原始采样值(如 .wav)的最简单方法是什么,就像从套接字读取一样。

希望代码使用 Apple 的框架之一(音频队列)。文档不是很清楚,我需要的是非常基础的。

最佳答案

为此尝试使用 AudioQueue 框架。您主要需要执行3个步骤:

  1. 设置音频格式如何对传入的模拟音频进行采样
  2. 使用 AudioQueueNewInput() 启动新的录音 AudioQueue
  3. 注册一个回调例程来处理传入的音频数据包

在第 3 步中,您有机会使用 AudioQueueGetProperty() 分析传入的音频数据

大致是这样的:

static void HandleAudioCallback (void                               *aqData,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer,
const AudioTimeStamp *inStartTime,
UInt32 inNumPackets,
const AudioStreamPacketDescription *inPacketDesc) {
// Here you examine your audio data
}

static void StartRecording() {
// now let's start the recording
AudioQueueNewInput (&aqData.mDataFormat, // The sampling format how to record
HandleAudioCallback, // Your callback routine
&aqData, // e.g. AudioStreamBasicDescription
NULL,
kCFRunLoopCommonModes,
0,
&aqData.mQueue); // Your fresh created AudioQueue
AudioQueueStart(aqData.mQueue,
NULL);
}

我建议 Apple AudioQueue Services Programming Guide有关如何启动和停止 AudioQueue 以及如何正确设置所有所需对象的详细信息。

您还可以仔细查看 Apple 的演示程序 SpeakHere。但恕我直言,一开始就有点令人困惑。

关于audio - 从音频输入捕获原始音频以在 Mac 上进行实时处理的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6039291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com