babysor / MockingBird

🚀AI拟声: 5秒内克隆您的声音并生成任意语音内容 Clone a voice in 5 seconds to generate arbitrary speech in real-time

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

预处理pre.py报错

gaoyiyao opened this issue · comments

Traceback (most recent call last):
File "/home_1/gaoyiyao/MockingBird-main/pre.py", line 74, in
preprocess_dataset(**vars(args))
File "/home_1/gaoyiyao/MockingBird-main/models/synthesizer/preprocess.py", line 86, in preprocess_dataset
for speaker_metadata in tqdm(job, dataset, len(speaker_dirs), unit="speakers"):
File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/tqdm/std.py", line 1181, in iter
for obj in iterable:
File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/multiprocessing/pool.py", line 870, in next
raise value
FileNotFoundError: [Errno 2] No such file or directory: 'data/SV2TTS/synthesizer/audio/audio-SSB03850064.wav_00.npy'
哪位大佬知道怎么解决

pre.py运行报错
Using data from:
data/aishell3/train/wav
aishell3: 0%| | 0/174 [00:00<?, ?speakers/s]/home_1/gaoyiyao/MockingBird-main/models/synthesizer/preprocess_audio.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_on_silences
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_dataset(**vars(args))
File "/home_1/gaoyiyao/MockingBird-main/models/synthesizer/preprocess.py", line 86, in preprocess_dataset
for speaker_metadata in tqdm(job, dataset, len(speaker_dirs), unit="speakers"):
File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/tqdm/std.py", line 1181, in iter
for obj in iterable:
File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/multiprocessing/pool.py", line 870, in next
raise value
FileNotFoundError: [Errno 2] No such file or directory: 'data/SV2TTS/synthesizer/audio/audio-SSB03850064.wav_00.npy'

Traceback (most recent call last): File "/home_1/gaoyiyao/MockingBird-main/pre.py", line 74, in preprocess_dataset(**vars(args)) File "/home_1/gaoyiyao/MockingBird-main/models/synthesizer/preprocess.py", line 86, in preprocess_dataset for speaker_metadata in tqdm(job, dataset, len(speaker_dirs), unit="speakers"): File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/site-packages/tqdm/std.py", line 1181, in iter for obj in iterable: File "/home_1/gaoyiyao/anaconda3/envs/sound/lib/python3.9/multiprocessing/pool.py", line 870, in next raise value FileNotFoundError: [Errno 2] No such file or directory: 'data/SV2TTS/synthesizer/audio/audio-SSB03850064.wav_00.npy' 哪位大佬知道怎么解决

把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

多谢你,已经解决了