Spaces:
Runtime error
Runtime error
pengdaqian
commited on
Commit
·
3f4fdab
1
Parent(s):
f679ac2
fix
Browse files
app.py
CHANGED
@@ -14,6 +14,7 @@ from audio2numpy import open_audio
|
|
14 |
from spleeter.separator import Separator
|
15 |
from spleeter.audio.adapter import AudioAdapter
|
16 |
from pydub import AudioSegment
|
|
|
17 |
|
18 |
import logging
|
19 |
|
@@ -168,19 +169,29 @@ def svc_change(argswave, argsspk):
|
|
168 |
return out_audio
|
169 |
|
170 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
def svc_main(sid, input_audio):
|
172 |
if input_audio is None:
|
173 |
return "You need to upload an audio", None
|
174 |
sampling_rate, audio = input_audio
|
|
|
175 |
#
|
176 |
-
prediction = separator.separate(audio)
|
177 |
-
vocals, accompaniment = prediction["vocals"], prediction["accompaniment"]
|
|
|
|
|
|
|
|
|
|
|
178 |
|
179 |
-
|
180 |
-
# audio_loader.save('vocals_111.wav', vocals, sampling_rate)
|
181 |
-
# audio_loader.save('accompaniment_111.wav', accompaniment, sampling_rate)
|
182 |
-
soundfile.write('vocals_111.wav', vocals, sampling_rate, format="wav")
|
183 |
-
soundfile.write('accompaniment_111.wav', accompaniment, sampling_rate, format="wav")
|
184 |
|
185 |
vocals = (vocals / np.iinfo(vocals.dtype).max).astype(np.float32)
|
186 |
if len(vocals.shape) > 1:
|
@@ -193,21 +204,11 @@ def svc_main(sid, input_audio):
|
|
193 |
soundfile.write(wav_path, vocals, 16000, format="wav")
|
194 |
|
195 |
out_vocals = svc_change(wav_path, f"configs/singers/singer00{sid}.npy")
|
|
|
|
|
196 |
|
197 |
-
|
198 |
-
|
199 |
-
sound1 = AudioSegment.from_file(
|
200 |
-
out_vocals[:, 0].tobytes(),
|
201 |
-
frame_rate=sampling_rate,
|
202 |
-
sample_width=out_vocals[:, 0].dtype.itemsize,
|
203 |
-
channels=1
|
204 |
-
)
|
205 |
-
sound2 = AudioSegment(
|
206 |
-
accompaniment[:, 0].tobytes(),
|
207 |
-
frame_rate=sampling_rate,
|
208 |
-
sample_width=accompaniment[:, 0].dtype.itemsize,
|
209 |
-
channels=1
|
210 |
-
)
|
211 |
|
212 |
played_togther = sound1.overlay(sound2)
|
213 |
|
|
|
14 |
from spleeter.separator import Separator
|
15 |
from spleeter.audio.adapter import AudioAdapter
|
16 |
from pydub import AudioSegment
|
17 |
+
import scipy.io.wavfile
|
18 |
|
19 |
import logging
|
20 |
|
|
|
169 |
return out_audio
|
170 |
|
171 |
|
172 |
+
def np_to_audio_segment(fp_arr):
|
173 |
+
wav_io = io.BytesIO()
|
174 |
+
scipy.io.wavfile.write(wav_io, 16000, fp_arr)
|
175 |
+
wav_io.seek(0)
|
176 |
+
sound = AudioSegment.from_wav(wav_io)
|
177 |
+
return sound
|
178 |
+
|
179 |
+
|
180 |
def svc_main(sid, input_audio):
|
181 |
if input_audio is None:
|
182 |
return "You need to upload an audio", None
|
183 |
sampling_rate, audio = input_audio
|
184 |
+
input_audio_tmp_file = 'origin.wav'
|
185 |
#
|
186 |
+
# prediction = separator.separate(audio)
|
187 |
+
# vocals, accompaniment = prediction["vocals"], prediction["accompaniment"]
|
188 |
+
soundfile.write(input_audio_tmp_file, audio, sampling_rate, format="wav")
|
189 |
+
separator.separate_to_file(input_audio_tmp_file, '')
|
190 |
+
|
191 |
+
vocals_filepath = os.path.join(os.path.splitext(input_audio_tmp_file)[0], 'vocals.wav')
|
192 |
+
accompaniment_filepath = os.path.join(os.path.splitext(input_audio_tmp_file)[0], 'accompaniment.wav')
|
193 |
|
194 |
+
vocals, sampling_rate = soundfile.read(vocals_filepath)
|
|
|
|
|
|
|
|
|
195 |
|
196 |
vocals = (vocals / np.iinfo(vocals.dtype).max).astype(np.float32)
|
197 |
if len(vocals.shape) > 1:
|
|
|
204 |
soundfile.write(wav_path, vocals, 16000, format="wav")
|
205 |
|
206 |
out_vocals = svc_change(wav_path, f"configs/singers/singer00{sid}.npy")
|
207 |
+
out_vocals_filepath = os.path.join(os.path.splitext(input_audio_tmp_file)[0], 'out_vocals.wav')
|
208 |
+
soundfile.write(out_vocals_filepath, out_vocals, 48000, format="wav")
|
209 |
|
210 |
+
sound1 = AudioSegment.from_file(out_vocals_filepath)
|
211 |
+
sound2 = AudioSegment.from_file(accompaniment_filepath)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
|
213 |
played_togther = sound1.overlay(sound2)
|
214 |
|