librosa 和 tensorflow 之间相同 wav 文件的不同采样率 SR
Different sample rate SR for same wav file between librosa and tensorflow
我有一个 wav 文件,我用 Audacity 将其重新采样到 16.000 kHz。
现在我正在尝试使用 python 以 2 种不同的方式加载文件。
import tensorflow as tf
import librosa
f = "path/to/wav/file/xxxx.wav"
raw = tf.io.read_file(f)
audio, sr = tf.audio.decode_wav(raw, desired_channels=1)
print("Sample Rate TF: ",sr.numpy())
y, sr2 = librosa.load(f)
print("Sample Rate librosa: ",sr2)
#Sample Rate TF: 16000
#Sample Ratelibrosa: 22050
为什么同一个文件的采样率如此不同?
我更信任哪个图书馆?
这不是“信任”的问题。这两个功能都在做它们应该做的事情。 TF 版本显然不会对音频进行重新采样。默认情况下,Librosa 会重新采样到 22,050 Hz(无论出于何种原因)。请read the docs。您可以通过调用
来避免这种情况
y, sr2 = librosa.load(f, sr=None)
一般来说,sr
参数提供了重采样的采样率;通过传递 None
,您可以防止重新采样。
我有一个 wav 文件,我用 Audacity 将其重新采样到 16.000 kHz。 现在我正在尝试使用 python 以 2 种不同的方式加载文件。
import tensorflow as tf
import librosa
f = "path/to/wav/file/xxxx.wav"
raw = tf.io.read_file(f)
audio, sr = tf.audio.decode_wav(raw, desired_channels=1)
print("Sample Rate TF: ",sr.numpy())
y, sr2 = librosa.load(f)
print("Sample Rate librosa: ",sr2)
#Sample Rate TF: 16000
#Sample Ratelibrosa: 22050
为什么同一个文件的采样率如此不同? 我更信任哪个图书馆?
这不是“信任”的问题。这两个功能都在做它们应该做的事情。 TF 版本显然不会对音频进行重新采样。默认情况下,Librosa 会重新采样到 22,050 Hz(无论出于何种原因)。请read the docs。您可以通过调用
来避免这种情况y, sr2 = librosa.load(f, sr=None)
一般来说,sr
参数提供了重采样的采样率;通过传递 None
,您可以防止重新采样。