gpt4 book ai didi

audio - 将16Bit PCM值转换为-1到1的值

转载 作者:行者123 更新时间:2023-12-02 22:35:35 26 4
gpt4 key购买 nike

这是我的第一篇文章,所以希望有人能提供帮助!

我正在使用AudioFileReadPackets函数读取音频数据(在CoreAudio中),此代码正常工作,并将16位PCM值加载到缓冲区中。

第一个样本值是:'65491'(此音频的开头没有声音)。我知道这是一个无符号整数,所以我的问题是,如何将此值转换为-1到1的范围。

目前,我正在将样本值除以32768.0到一个float变量中,就像这样...

    for (UInt32 i = 0; i < packetCount; i++){ 

sample = *(audioData + i);


//turn it into the range -1.0 - 1.0
monoFloatDataLeft[i] = (float)sample / 32768.0;

}

但是,对于上面给出的示例(例如),这会导致输出“1.998626709”不为零(因为应该保持静音)?

如此说来,当我在文件的后面查看样本时,我知道该样本的值在“0.3”标记附近,算法的结果显示为“0.311584473”,我认为这是正确的吗?

那么,为什么我认为第一个样本不被读取为零?

如果有人可以帮助我,将不胜感激!

山姆

最佳答案

您需要首先从无符号数据中减去32768,因此它以0为中心。

关于audio - 将16Bit PCM值转换为-1到1的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5222056/

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