gpt4 book ai didi

python - 有没有办法使用 librosa 以字节为单位设置音频文件的样本大小?

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

AudioSegment来自 from pydub import AudioSegment ,有一个函数set_sample_width .从文档:

Creates an equivalent version of this AudioSegment with the specified sample width (in bytes). Increasing this value does not generally cause a reduction in quality. Reducing it definitely does cause a loss in quality. Higher Sample width means more dynamic range.


librosa 中是否有类似的功能?如果可能,我想使用 librosa(而不是 pydub)将其设置为某个值。

最佳答案

最简洁的答案是不。
这是更长的答案:
librosa 总是使用浮点数来表示音频,无论原始位深度是多少或您将如何保存它。
来自 docs :

Load an audio file as a floating point time series.


但是,您可以通过 dtype 指定数据类型。范围。然后 librosa(通常将加载委托(delegate)给 SoundFile )也可以将音频表示为某种 int。
加载音频后,您当然可以手动将其转换为不同的位深度,方法是缩放到与您所需的位深度相对应的不同范围。
更改位深度的最后机会是在将音频数据保存到文件时。 librosa 文档建议使用 SoundFile write()为了这。它还允许您指定数据类型(在一定程度上):

The data type of data does not select the data type of the written file. Audio data will be converted to the given subtype. Writing int values to a float file will not scale the values to [-1.0, 1.0). If you write the value np.array([42], dtype='int32'), to a subtype='FLOAT' file, the file will then contain np.array([42.], dtype='float32').


希望这可以帮助。

关于python - 有没有办法使用 librosa 以字节为单位设置音频文件的样本大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62685066/

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