初めに
ZipVoice をベースにして推論を高速化した LuxTTSを今回は日本語対応をしていきます
基本的にpyopenjtalkを使って日本語のg2pを入れて学習をする流れです
対応済みのリポジトリは以下で公開しています
日本語推論にノイズが入っているため、改善の余地はいろいろありそうです
日本語の推論音声は以下です
開発環境
- Windows 11
- uv 0.9.x
- RTX 4090
環境構築
まずはデータセットを準備します
huggingface-cli download --repo-type dataset ayousanz/moe-speech-20speakers-ljspeech \ --local-dir data/moe-speech-20speakers-ljspeech # Convert to LuxTTS format (resample 22kHz→24kHz, split train/dev) python scripts/convert_moe_speech.py --num-workers 8 # Build training features (manifest → tokens → mel-spectrogram) PYTHONUTF8=1 python -m zipvoice.bin.prepare_dataset \ --tsv-path data/custom_train.tsv --prefix custom --subset train \ --output-dir data/manifests --sampling-rate 24000 PYTHONUTF8=1 python -m zipvoice.bin.prepare_tokens \ --input-file data/manifests/custom_cuts_train.jsonl.gz \ --output-file data/manifests/custom_cuts_train_tokens.jsonl.gz \ --tokenizer emilia --lang ja PYTHONUTF8=1 python -m zipvoice.bin.compute_fbank \ --source-dir data/manifests --dest-dir data/fbank \ --dataset custom --subset train_tokens --sampling-rate 24000 --type vocos
次に前処理を実行します
python scripts/generate_tokens.py python scripts/init_japanese_embeds.py
学習を実行します
# Run training (~24h on RTX 4090)
bash scripts/train_japanese.sh
学習したモデルは以下で公開しています