CorentinJ / Real-Time-Voice-Cloning

Clone a voice in 5 seconds to generate arbitrary speech in real-time
Other
51.54k stars 8.64k forks source link

FFMPEG error, works most of the time but random error #1223

Open hobolyra opened 1 year ago

hobolyra commented 1 year ago

Some voice files give me an error when I attempt to use my training over them. I have changed the format of the files, edited and saved them in Audition, so on, but I still occasionally get this output and it won't work:

`Traceback (most recent call last): File "L:\RCV_voiceclone\my_utils.py", line 14, in load_audio ffmpeg.input(file, threads=0) File "L:\RCV_voiceclone\runtime\lib\site-packages\ffmpeg_run.py", line 325, in run raise Error('ffmpeg', out, err) ffmpeg._run.Error: ffmpeg error (see stderr output for detail)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "L:\RCV_voiceclone\infer-web.py", line 161, in vc_single audio = load_audio(input_audio_path, 16000) File "L:\RCV_voiceclone\my_utils.py", line 19, in load_audio raise RuntimeError(f"Failed to load audio: {e}") RuntimeError: Failed to load audio: ffmpeg error (see stderr output for detail)

Traceback (most recent call last): File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\routes.py", line 321, in run_predict output = await app.blocks.process_api( File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\blocks.py", line 1007, in process_api data = self.postprocess_data(fn_index, result["prediction"], state) File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\blocks.py", line 953, in postprocess_data prediction_value = block.postprocess(prediction_value) File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\components.py", line 2076, in postprocess processing_utils.audio_to_file(sample_rate, data, file.name) File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\processing_utils.py", line 206, in audio_to_file data = convert_to_16_bit_wav(data) File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\processing_utils.py", line 219, in convert_to_16_bit_wav if data.dtype in [np.float64, np.float32, np.float16]: AttributeError: 'NoneType' object has no attribute 'dtype' Traceback (most recent call last): File "L:\RCV_voiceclone\my_utils.py", line 14, in load_audio ffmpeg.input(file, threads=0) File "L:\RCV_voiceclone\runtime\lib\site-packages\ffmpeg_run.py", line 325, in run raise Error('ffmpeg', out, err) ffmpeg._run.Error: ffmpeg error (see stderr output for detail)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "L:\RCV_voiceclone\infer-web.py", line 161, in vc_single audio = load_audio(input_audio_path, 16000) File "L:\RCV_voiceclone\my_utils.py", line 19, in load_audio raise RuntimeError(f"Failed to load audio: {e}") RuntimeError: Failed to load audio: ffmpeg error (see stderr output for detail)

Traceback (most recent call last): File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\routes.py", line 321, in run_predict output = await app.blocks.process_api( File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\blocks.py", line 1007, in process_api data = self.postprocess_data(fn_index, result["prediction"], state) File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\blocks.py", line 953, in postprocess_data prediction_value = block.postprocess(prediction_value) File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\components.py", line 2076, in postprocess processing_utils.audio_to_file(sample_rate, data, file.name) File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\processing_utils.py", line 206, in audio_to_file data = convert_to_16_bit_wav(data) File "L:\RCV_voiceclone\runtime\lib\site-packages\gradio\processing_utils.py", line 219, in convert_to_16_bit_wav if data.dtype in [np.float64, np.float32, np.float16]: AttributeError: 'NoneType' object has no attribute 'dtype'`

This is not a constant thing, as I have had many times where files DO work. I'm not sure if you have an stderr capture in the code for the ffmeg errors, if so I can put those logs in as well if told where they save.