Efisienspeech , atau ES singkat, adalah model saraf yang efisien untuk berbicara (TTS) model. Ini menghasilkan spektrogram MEL dengan kecepatan 104 (MRTF) atau 104 detik pidato per detik pada RPI4. Versi kecilnya memiliki jejak hanya 266 ribu parameter - sekitar 1% hanya dari TT modern seperti Mixertts. Menghasilkan 6 detik pidato hanya mengkonsumsi 90 MFLOPS.
Efficientspeech adalah transformator piramida yang dangkal (2 blok!) Menyerupai n-net. Upsampling dilakukan oleh konvolusi terpisah yang dapat dipisahkan oleh kedalaman yang ditransfer.
Memasang
ES saat ini bermigrasi ke Pytorch 2.0 dan Lightning 2.0. Harapkan fitur yang tidak stabil.
pip install -r requirements.txt
Opsi yang dikompilasi didukung menggunakan --compile selama pelatihan atau inferensi. Untuk pelatihan, mode yang bersemangat lebih cepat. Pelatihan versi kecil ~ 17 jam pada A100. Untuk inferensi, versi yang dikompilasi lebih cepat. Untuk alasan yang tidak diketahui, opsi kompilasi adalah menghasilkan kesalahan saat- --infer-device cuda .
Secara default, Pytorch 2.0 menggunakan 128 utas CPU (AMD, 4 di RPI4) yang menyebabkan perlambatan selama inferensi. Selama inferensi, disarankan untuk mengaturnya ke angka yang lebih rendah. Misalnya: --threads 24 .
Pytorch 2.0 lebih lambat pada RPI4. Harap gunakan rilis demo dan bobot model ICASSP2023.
RTF di Pytorch 2.0 adalah ~ 1.0. RTF pada Pytorch 1.12 adalah ~ 1.7.
Atau, silakan gunakan versi ONNX:
python3 demo.py --checkpoint https://github.com/roatienza/efficientspeech/releases/download/pytorch2.0.1/tiny_eng_266k.onnx
--infer-device cpu --text "the primary colors are red, green, and blue." --wav-filename primary.wav
Hanya mendukung panjang fonem input tetap. Padding atau pemotongan diterapkan jika diperlukan. Ubah menggunakan --onnx-insize=<desired value> . Panjang fonem maks default adalah 128. Misalnya:
python3 convert.py --checkpoint tiny_eng_266k.ckpt --onnx tiny_eng_266k.onnx --onnx-insize 256
Pilih folder dataset: misalnya <data_folder> = /data/tts - direktori di mana dataset akan disimpan.
Unduh Dataset KSS Kustom:
cd efficientspeech
mkdir ./data/kss
Unduh Dataset KSS Kustom di sini
Siapkan dataset: <parent_folder> - Di mana EfficientSpeech dikloning git.
cd <parent_folder>/efficientspeech
Edit config/LJSpeech/preprocess.yaml :
>>>>>>>>>>>>>>>>>
path:
corpus_path: "./data/tts/kss"
lexicon_path: "lexicon/korean-lexicon.txt"
raw_path: "./data/tts/kss/wavs"
preprocessed_path: "./preprocessed_data/kss"
>>>>>>>>>>>>>>>>
Ganti /data/tts dengan <data_folder> Anda.
Unduh Data Alignment ke preprocessed_data/KSS/TextGrid dari sini.
Siapkan dataset:
python prepare_align.py config/kss/preprocess.yaml
python preprocess.py config/kss/preprocess.yaml
Ini akan memakan waktu satu jam atau lebih.
Untuk info lebih lanjut: Implementasi FastSpeech2 untuk menyiapkan dataset.
Es Tiny
Secara default:
--precision=16 . Opsi lain: "bf16-mixed", "16-mixed", 16, 32, 64 .--accelerator=gpu--infer-device=cuda--devices=1utils/tools.py python3 train.py
Es kecil
python3 train.py --n-blocks 3 --reduction 2
Dasar es
python3 train.py --head 2 --reduction 1 --expansion 2 --kernel-size 5 --n-blocks 3 --block-depth 3
python3 demo.py --checkpoint ./lightning_logs/version_2/checkpoints/epoch=4999-step=485000.ckpt --text "그는 괜찮은 척하려고 애 쓰는 것 같았다." --wav-filename base.wav
ES VS FS2 vs Portaspeech vs Lightspeech
Untuk informasi lebih lanjut, silakan merujuk ke repositori berikut:
synthesize.py , fungsi Text2Phoneme Korea [✅]Jika Anda menemukan pekerjaan ini bermanfaat, silakan kutip:
@inproceedings{atienza2023efficientspeech,
title={EfficientSpeech: An On-Device Text to Speech Model},
author={Atienza, Rowel},
booktitle={ICASSP 2023-2023 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
pages={1--5},
year={2023},
organization={IEEE}
}