将原始24位签名的PCM转换为32位PCM RAW



我在这里是新手。我希望知道任何工具/快速的方法来转换一个24位PCM RAW(无头(文件,其中3个字节PCM示例,将每个样本具有4个字节的32位PCM RAW文件中,其中4个字节数据的MSBYTE作为3byte样本的符号/零扩展。

除了24位原始文件之外,如果有帮助,我也有相应的波文件。

在Audacity尝试使用24位转换为32位时,它没有签名/零扩展,但它剩下的24位样本却偏移了8个。因此,实际上,24位样品坐在左侧的32位24位,这不是所需的。

谢谢。

我要假设您的意思是向左移8而不是向右移动8。

在这种情况下,符号扩展的概念是不必要的。想象一下您的24位值0x800000。然后,左移动版本为0x80000000。没有符号扩展名,但它仍然具有正确的负符号。

总而言之,我认为Audacity的工作正是应有的,那就是简单地将碎屑移动。除非由于某些原因,您的数据未签名,这将是异常不寻常的。

在更多搜索时,指出了一种方法是使用Sox -linux。

sox -t s24 - endian Little Input.pcm -T S32 output.pcm vol 0.00390625

它工作正常。Vol 0.00390625是为了减少48dB的音量,因为RAW PCM样品从24位转换为32位,默认情况下,左Shifts的转换为8位,但我希望它会被8位减速,这将体积减少48db <</p>

最新更新