gpt4 book ai didi

ios - 将 AVAudioRecorder 输入转换为浮点缓冲区

转载 作者:可可西里 更新时间:2023-11-01 03:59:45 26 4
gpt4 key购买 nike

提前为这个问题道歉,这是我第一次探索 iOS 编程的音频方面。

我正在使用 AVAudioRecorder 类通过麦克风记录输入,使用以下设置字典。

NSMutableDictionary *settings = [[NSMutableDictionary alloc] init];
[settings setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];
[settings setValue:[NSNumber numberWithFloat:11025.0] forKey:AVSampleRateKey];
[settings setValue:[NSNumber numberWithInt: 1] forKey:AVNumberOfChannelsKey];
[settings setValue:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
[settings setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey];
[settings setValue:[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey];

它工作得很好,但是当我尝试使用 echonest-codegen 库生成指纹来识别播放的音乐时,问题就来了。

不用担心,如果你以前从未使用过它,基本上我必须运行这个功能:

Codegen * pCodegen = new Codegen(const float* pcm[], int number_of_samples, int samples_offset);

其中 const float* pcm[] 是样本缓冲区。我需要将我的输入转换为“ float 缓冲区”。有人向我指出了 ExtAudioFile 文档,但它们并没有多大意义。有人能指出我正确的方向吗?我完全迷路了!

非常感谢!

最佳答案

您可以使用 Audio Queue Services 轻松获取音频样本我在这里看到的最大问题是音频缓冲区(我相信)是 char*(字节)类型,我不知道你为什么需要 float*

关于ios - 将 AVAudioRecorder 输入转换为浮点缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8008121/

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