#python #tensorflow #nlp #wav #librosa
Вопрос:
У меня есть один wav-файл, который я пересчитал до 16.000 кГц с помощью Audacity. Теперь я пытаюсь загрузить файл с помощью 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
Почему частота дискретизации так сильно отличается для одного и того же файла?
Какой библиотеке я могу доверять больше?
Ответ №1:
Это не вопрос «доверия». Обе функции делают то, что они должны делать. Версия TF, по-видимому, не выполняет повторную выборку звука. Librosa по умолчанию изменяет частоту на 22 050 Гц (по какой-либо причине). Пожалуйста, прочтите документы. Вы можете избежать этого, позвонив по телефону
y, sr2 = librosa.load(f, sr=None)
В общем случае sr
аргумент обеспечивает частоту дискретизации для повторной выборки; передавая None
, вы предотвращаете повторную выборку.
Комментарии:
1. О, это был отличный намек. Спасибо!