When we are using python librosa to read an audio, we may get this error: NoBackendError. In this tutorial, we will introduce you how to fix it.
This error looks like:
How to fix this error?
We can read this audio using soundfile or scipy.io.wavfile.read().
Here are two tutorials:
The Difference Between scipy.io.wavfile.read() and librosa.load() in Python – Python Tutorial
Understand librosa.load() is Between -1.0 and 1.0 – Librosa Tutorial
Then, we can save audio data to pcm and read it by librosa again.
Here is an solution.
import librosa import soundfile as sf def save_file(audio_data, wave_file, sr = 8000): sf.write(wave_file, audio_data, sr, 'PCM_16') file = "test.mp3" try: data, sr = librosa.load(file, sr = 8000, mono=True) except Exception as e: audio_data, samplerate = sf.read(file, dtype="float32") save_file(audio_data, file, sr = samplerate )
In this solution, we read test.mp3 file using soundfile, then save it to new format.
Finally, we can use librosa to read test.mp3 successfully.