Traceback (most recent call last):
File "/home_1/gaoyiyao/MockingBird-main/pre.py", line 74, in
[babysor/MockingBird]预处理pre.py报错
回答
pre.py运行报错 Using data from: data/aishell3/train/wav aishell3: 0%| | 0/174 [00:00<?, ?speakers/s]/home_1/gaoyiyao/MockingBird-main/models/synthesizer/preprocessaudio.py:88: UserWarning: PySoundFile failed. Trying audioread instead. wav, = librosa.load(wav_fpath, sr= hparams.sample_rate) /home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/librosa/core/audio.py:183: FutureWarning: librosa.core.audio.audioread_load Deprecated as of librosa version 0.10.0. It will be removed in librosa version 1.0. y, sr_native = audioread_load(path, offset, duration, dtype) aishell3: 0%| | 0/174 [01:26<?, ?speakers/s] multiprocessing.pool.RemoteTraceback: """ Traceback (most recent call last): File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/librosa/core/audio.py", line 175, in load y, sr_native = soundfile_load(path, offset, duration, dtype) File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/librosa/core/audio.py", line 208, in soundfile_load context = sf.SoundFile(path) File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/soundfile.py", line 658, in init self._file = self._open(file, mode_int, closefd) File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/soundfile.py", line 1216, in _open raise LibsndfileError(err, prefix="Error opening {0!r}: ".format(self.name)) soundfile.LibsndfileError: Error opening 'data/SV2TTS/synthesizer/audio/audio-SSB03850064.wav_00.npy': System error.
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/multiprocessing/pool.py", line 125, in worker result = (True, func(*args, kwds)) File "/home_1/gaoyiyao/MockingBird-main/models/synthesizer/preprocess_audio.py", line 124, in preprocess_general wav, text = _split_on_silences(wav_fpath, words, hparams) File "/home_1/gaoyiyao/MockingBird-main/models/synthesizer/preprocess_audio.py", line 88, in _split_onsilences wav, = librosa.load(wav_fpath, sr= hparams.sample_rate) File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/librosa/core/audio.py", line 183, in load y, sr_native = __audioread_load(path, offset, duration, dtype) File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/decorator.py", line 232, in fun return caller(func, *(extras + args), *kw) File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/librosa/util/decorators.py", line 59, in __wrapper return func(args, kwargs) File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/librosa/core/audio.py", line 239, in __audioread_load reader = audioread.audio_open(path) File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/audioread/init.py", line 127, in audio_open return BackendClass(path) File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/audioread/rawread.py", line 59, in init self._fh = open(filename, 'rb') FileNotFoundError: [Errno 2] No such file or directory: 'data/SV2TTS/synthesizer/audio/audio-SSB03850064.wav_00.npy' """
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home_1/gaoyiyao/MockingBird-main/pre.py", line 74, in
把preprocess_general函数修改一下试试, 参考这条issue #963
def preprocess_general(speaker_dir, out_dir: Path, skip_existing: bool, hparams, dict_info, no_alignments: bool, encoder_model_fpath: Path):
metadata = []
extensions = ("*.wav", "*.flac", "*.mp3")
for extension in extensions:
wav_fpath_list = speaker_dir.glob(extension)
# Iterate over each wav
for wav_fpath in wav_fpath_list:
words = dict_info.get(wav_fpath.name.split(".")[0])
if not words:
words = dict_info.get(wav_fpath.name) # try with extension
if not words:
print(f"No word found in dict_info for {wav_fpath.name}, skip it")
continue
sub_basename = "%s_%02d" % (wav_fpath.name, 0)
# mel_fpath = out_dir.joinpath("mels", f"mel-{sub_basename}.npy")
# wav_fpath = out_dir.joinpath("audio", f"audio-{sub_basename}.npy")
mel_fpath_out = out_dir.joinpath("mels", f"mel-{sub_basename}.npy")
wav_fpath_out = out_dir.joinpath("audio", f"audio-{sub_basename}.npy")
# if skip_existing and mel_fpath.exists() and wav_fpath.exists():
if skip_existing and mel_fpath_out.exists() and wav_fpath_out.exists():
continue
wav, text = _split_on_silences(wav_fpath, words, hparams)
# result = _process_utterance(wav, text, out_dir, sub_basename,
# False, hparams, encoder_model_fpath) # accelarate
result = _process_utterance(wav, text, out_dir, sub_basename, mel_fpath_out, wav_fpath_out, hparams, encoder_model_fpath)
if result is None:
continue
wav_fpath_name, mel_fpath_name, embed_fpath_name, wav, mel_frames, text = result
metadata.append ((wav_fpath_name, mel_fpath_name, embed_fpath_name, len(wav), mel_frames, text))
return metadata
多谢你,已经解决了