From 168616517a7a382254164d59c885ba9454cc3cd8 Mon Sep 17 00:00:00 2001 From: tkyaji Date: Wed, 26 Jun 2024 21:59:55 +0900 Subject: [PATCH] chore: bump librosa to version 0.10.2 There is a bug in librosa 0.9.1. https://github.com/librosa/librosa/pull/1594 As a result, an error occurs when executing the "Vocals/Accompaniment Separation & Reverberation Removal" function. To address this issue, librosa has been upgraded to version 0.10.2. Additionally, torchcrepe has been upgraded due to its dependency on librosa. --- infer/lib/uvr5_pack/lib_v5/spec_utils.py | 34 +++++++++++++----------- infer/modules/uvr5/vr.py | 24 ++++++++--------- requirements/amd.txt | 2 +- requirements/dml.txt | 2 +- requirements/ipex.txt | 2 +- requirements/main.txt | 2 +- requirements/py311.txt | 2 +- 7 files changed, 36 insertions(+), 32 deletions(-) diff --git a/infer/lib/uvr5_pack/lib_v5/spec_utils.py b/infer/lib/uvr5_pack/lib_v5/spec_utils.py index 4637635..8f94085 100644 --- a/infer/lib/uvr5_pack/lib_v5/spec_utils.py +++ b/infer/lib/uvr5_pack/lib_v5/spec_utils.py @@ -41,8 +41,8 @@ def wave_to_spectrogram( wave_left = np.asfortranarray(wave[0]) wave_right = np.asfortranarray(wave[1]) - spec_left = librosa.stft(wave_left, n_fft, hop_length=hop_length) - spec_right = librosa.stft(wave_right, n_fft, hop_length=hop_length) + spec_left = librosa.stft(wave_left, n_fft=n_fft, hop_length=hop_length) + spec_right = librosa.stft(wave_right, n_fft=n_fft, hop_length=hop_length) spec = np.asfortranarray([spec_left, spec_right]) @@ -76,7 +76,7 @@ def wave_to_spectrogram_mt( kwargs={"y": wave_left, "n_fft": n_fft, "hop_length": hop_length}, ) thread.start() - spec_right = librosa.stft(wave_right, n_fft, hop_length=hop_length) + spec_right = librosa.stft(wave_right, n_fft=n_fft, hop_length=hop_length) thread.join() spec = np.asfortranarray([spec_left, spec_right]) @@ -228,26 +228,30 @@ def cache_or_load(mix_path, inst_path, mp): if d == len(mp.param["band"]): # high-end band X_wave[d], _ = librosa.load( - mix_path, bp["sr"], False, dtype=np.float32, res_type=bp["res_type"] + mix_path, + sr=bp["sr"], + mono=False, + dtype=np.float32, + res_type=bp["res_type"] ) y_wave[d], _ = librosa.load( inst_path, - bp["sr"], - False, + sr=bp["sr"], + mono=False, dtype=np.float32, res_type=bp["res_type"], ) else: # lower bands X_wave[d] = librosa.resample( X_wave[d + 1], - mp.param["band"][d + 1]["sr"], - bp["sr"], + orig_sr=mp.param["band"][d + 1]["sr"], + target_sr=bp["sr"], res_type=bp["res_type"], ) y_wave[d] = librosa.resample( y_wave[d + 1], - mp.param["band"][d + 1]["sr"], - bp["sr"], + orig_sr=mp.param["band"][d + 1]["sr"], + target_sr=bp["sr"], res_type=bp["res_type"], ) @@ -399,8 +403,8 @@ def cmb_spectrogram_to_wave(spec_m, mp, extra_bins_h=None, extra_bins=None): mp.param["mid_side_b2"], mp.param["reverse"], ), - bp["sr"], - sr, + orig_sr=bp["sr"], + target_sr=sr, res_type="sinc_fastest", ) else: # mid @@ -417,7 +421,7 @@ def cmb_spectrogram_to_wave(spec_m, mp, extra_bins_h=None, extra_bins=None): ), ) # wave = librosa.core.resample(wave2, bp['sr'], sr, res_type="sinc_fastest") - wave = librosa.core.resample(wave2, bp["sr"], sr, res_type="scipy") + wave = librosa.resample(wave2, orig_sr=bp["sr"], target_sr=sr, res_type="scipy") return wave.T @@ -504,8 +508,8 @@ def ensembling(a, specs): def stft(wave, nfft, hl): wave_left = np.asfortranarray(wave[0]) wave_right = np.asfortranarray(wave[1]) - spec_left = librosa.stft(wave_left, nfft, hop_length=hl) - spec_right = librosa.stft(wave_right, nfft, hop_length=hl) + spec_left = librosa.stft(wave_left, n_fft=nfft, hop_length=hl) + spec_right = librosa.stft(wave_right, n_fft=nfft, hop_length=hl) spec = np.asfortranarray([spec_left, spec_right]) return spec diff --git a/infer/modules/uvr5/vr.py b/infer/modules/uvr5/vr.py index 85f192f..cdc6de8 100644 --- a/infer/modules/uvr5/vr.py +++ b/infer/modules/uvr5/vr.py @@ -61,20 +61,20 @@ class AudioPre: ( X_wave[d], _, - ) = librosa.core.load( # 理论上librosa读取可能对某些音频有bug,应该上av读取,但是太麻烦了弃坑 + ) = librosa.load( # 理论上librosa读取可能对某些音频有bug,应该上ffmpeg读取,但是太麻烦了弃坑 music_file, - bp["sr"], - False, + sr=bp["sr"], + mono=False, dtype=np.float32, res_type=bp["res_type"], ) if X_wave[d].ndim == 1: X_wave[d] = np.asfortranarray([X_wave[d], X_wave[d]]) else: # lower bands - X_wave[d] = librosa.core.resample( + X_wave[d] = librosa.resample( X_wave[d + 1], - self.mp.param["band"][d + 1]["sr"], - bp["sr"], + orig_sr=self.mp.param["band"][d + 1]["sr"], + target_sr=bp["sr"], res_type=bp["res_type"], ) # Stft of wave source @@ -231,20 +231,20 @@ class AudioPreDeEcho: ( X_wave[d], _, - ) = librosa.core.load( # 理论上librosa读取可能对某些音频有bug,应该上av读取,但是太麻烦了弃坑 + ) = librosa.load( # 理论上librosa读取可能对某些音频有bug,应该上ffmpeg读取,但是太麻烦了弃坑 music_file, - bp["sr"], - False, + sr=bp["sr"], + mono=False, dtype=np.float32, res_type=bp["res_type"], ) if X_wave[d].ndim == 1: X_wave[d] = np.asfortranarray([X_wave[d], X_wave[d]]) else: # lower bands - X_wave[d] = librosa.core.resample( + X_wave[d] = librosa.resample( X_wave[d + 1], - self.mp.param["band"][d + 1]["sr"], - bp["sr"], + orig_sr=self.mp.param["band"][d + 1]["sr"], + target_sr=bp["sr"], res_type=bp["res_type"], ) # Stft of wave source diff --git a/requirements/amd.txt b/requirements/amd.txt index 20ab253..8835b33 100644 --- a/requirements/amd.txt +++ b/requirements/amd.txt @@ -3,7 +3,7 @@ joblib>=1.1.0 numba==0.56.4 numpy==1.23.5 scipy -librosa==0.9.1 +librosa==0.10.2 llvmlite==0.39.0 fairseq==0.12.2 faiss-cpu==1.7.3 diff --git a/requirements/dml.txt b/requirements/dml.txt index 2862457..e567fcb 100644 --- a/requirements/dml.txt +++ b/requirements/dml.txt @@ -2,7 +2,7 @@ joblib>=1.1.0 numba==0.56.4 numpy==1.23.5 scipy -librosa==0.9.1 +librosa==0.10.2 llvmlite==0.39.0 fairseq==0.12.2 faiss-cpu==1.7.3 diff --git a/requirements/ipex.txt b/requirements/ipex.txt index fd985ce..0ec0174 100644 --- a/requirements/ipex.txt +++ b/requirements/ipex.txt @@ -7,7 +7,7 @@ joblib>=1.1.0 numba==0.56.4 numpy==1.23.5 scipy -librosa==0.9.1 +librosa==0.10.2 llvmlite==0.39.0 fairseq==0.12.2 faiss-cpu==1.7.3 diff --git a/requirements/main.txt b/requirements/main.txt index 0ebfb80..04a7aa8 100644 --- a/requirements/main.txt +++ b/requirements/main.txt @@ -2,7 +2,7 @@ joblib>=1.1.0 numba numpy==1.23.5 scipy -librosa==0.9.1 +librosa==0.10.2 llvmlite fairseq faiss-cpu diff --git a/requirements/py311.txt b/requirements/py311.txt index 2beb3bb..336d108 100644 --- a/requirements/py311.txt +++ b/requirements/py311.txt @@ -2,7 +2,7 @@ joblib>=1.1.0 numba numpy scipy -librosa==0.9.1 +librosa==0.10.2 llvmlite fairseq @ git+https://github.com/One-sixth/fairseq.git faiss-cpu