gpt4 book ai didi

iphone - AudioQueue 样本值错误

转载 作者:行者123 更新时间:2023-11-29 11:14:55 26 4
gpt4 key购买 nike

我需要读取音频样本值。我正在使用该 audioQueue 回调(来自 Apple SpeakHere 示例):

     UInt32 samplesCount = inCompleteAQBuffer->mAudioDataBytesCapacity / 2;

UInt16 *samples = (UInt16 *)inCompleteAQBuffer->mAudioData;

for (int i=0; i < samplesCount; i++)
{
printf("%i\n", samples[i]);
}

返回值,但当我将它们与 audacity 的图表进行比较时,它们似乎是错误的:

screen

Audacity 值从 1 (65535) 到 -1 (0)。所以逻辑上第一个样本值应该是 32767,第二个应该是 ~50 000 ...

但我收到其他结果:

    value - position

65535 - 0
29501 - 1
26086 - 2
63656 - 3
28477 - 4
65407 - 5
36802 - 6
36546 - 7
18244 - 8
17220 - 9

player settings:

(Float64) mSampleRate = 44100
(UInt32) mBytesPerPacket = 2
(UInt32) mFramesPerPacket = 1
(UInt32) mBytesPerFrame = 2
(UInt32) mChannelsPerFrame = 1
(UInt32) mBitsPerChannel = 16
(UInt32) mReserved = 0

问题 - 为什么从 mAudioData 返回的样本值是错误的?

最佳答案

该文件的字节顺序与您的系统不同。您必须交换每个样本的字节顺序。此外,样本是带符号的 16 位整数 (SInt16),而不是 UInt16。因此最大值为 32767(不是 65535),最小值为 -32767。

查看 ExtendedAudioFile.h 和 AudioConverter.h 以获得转换帮助。

关于iphone - AudioQueue 样本值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9926944/

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