Repositori ini berisi pekerja sintesis teks-ke-speech multi-speak-speech Estonia yang memproses permintaan dari RabbitMQ.
Proyek ini dikembangkan oleh NLP Research Group di University of Tartu. Sintesis bicara juga dapat diuji dalam demo kami.
Bagian rilis berisi file model atau instruksi unduhannya. Jika rilis tidak menentukan informasi model, model dari rilis sebelumnya dapat digunakan. Kami menyarankan selalu menggunakan versi terbaru yang tersedia untuk memastikan kualitas model terbaik dan kompatibilitas kode.
File konfigurasi model yang termasuk dalam config/config.yaml sesuai dengan models/ struktur direktori berikut:
models
├── hifigan
│ ├── ljspeech
│ │ ├── config.json
│ │ └── model.pt
│ ├── vctk
│ │ ├── config.json
│ │ └── model.pt
└── tts
└── multispeaker
├── config.yaml
└── model_weights.hdf5
Pekerja TTS dapat digunakan menggunakan gambar Docker yang diterbitkan di samping repositori. Setiap versi gambar berkorelasi dengan rilis tertentu. File model yang diperlukan dikecualikan dari gambar untuk mengurangi ukuran gambar dan harus diunduh dari bagian rilis dan direktori mereka harus dilampirkan ke volume /app/models .
Konfigurasi logging dimuat dari /app/config/logging.prod.ini dan konfigurasi layanan dari file /app/config/config.yaml . Konfigurasi yang disertakan dikomentari untuk menggambarkan bagaimana konfigurasi model baru dapat ditambahkan.
Variabel lingkungan berikut harus dikonfigurasi saat menjalankan wadah:
MQ_USERNAME - Nama pengguna RabbitmqMQ_PASSWORD - Kata Sandi Pengguna RabbitMQMQ_HOST - host rabbitmqMQ_PORT (Opsional) - Port RabbitMQ ( 5672 secara default)MQ_EXCHANGE (opsional)-nama pertukaran rabbitmq ( text-to-speech secara default)MQ_HEARTBEAT (opsional) - interval detak jantung ( 60 detik secara default)MQ_CONNECTION_NAME (opsional) - nama koneksi ramah ( TTS worker secara default)MKL_NUM_THREADS (opsional) - Jumlah utas yang digunakan untuk paralelisme intra -op oleh pytorch (digunakan untuk model vokoder). 16 secara default. Jika diatur ke nilai kosong, itu default ke jumlah core CPU yang dapat menyebabkan overhead komputasi ketika digunakan pada node yang lebih besar. Atau, docker run Flag --cpuset-cpus dapat digunakan untuk mengontrol ini. Untuk detail lebih lanjut, lihat bagian Persyaratan Kinerja dan Perangkat Keras di bawah ini. Secara default, titik masuk kontainer adalah main.py tanpa argumen tambahan, tetapi argumen harus ditentukan dengan opsi COMMAND . Satu-satunya bendera yang diperlukan adalah --model-name untuk memilih model mana yang dimuat oleh pekerja. Daftar lengkap bendera yang didukung dapat dilihat dengan menjalankan python main.py -h :
usage: main.py [-h] [--model-config MODEL_CONFIG] [--model-name MODEL_NAME] [--log-config LOG_CONFIG]
A text-to-speech worker that processes incoming TTS requests via RabbitMQ.
optional arguments:
-h, --help show this help message and exit
--model-config MODEL_CONFIG
The model config YAML file to load.
--model-name MODEL_NAME
The model to load. Refers to the model name in the config file.
--log-config LOG_CONFIG
Path to log config file.
Pengaturan dapat diuji dengan sampel berikut docker-compose.yml Configuration:
version : ' 3 '
services :
rabbitmq :
image : ' rabbitmq '
environment :
- RABBITMQ_DEFAULT_USER=${RABBITMQ_USER}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASS}
tts_api :
image : ghcr.io/tartunlp/text-to-speech-api:latest
environment :
- MQ_HOST=rabbitmq
- MQ_PORT=5672
- MQ_USERNAME=${RABBITMQ_USER}
- MQ_PASSWORD=${RABBITMQ_PASS}
ports :
- ' 8000:8000 '
depends_on :
- rabbitmq
tts_worker :
image : ghcr.io/tartunlp/text-to-speech-worker:latest
environment :
- MQ_HOST=rabbitmq
- MQ_PORT=5672
- MQ_USERNAME=${RABBITMQ_USER}
- MQ_PASSWORD=${RABBITMQ_PASS}
command : [ "--model-name", "multispeaker" ]
volumes :
- ./models:/app/models
depends_on :
- rabbitmqLangkah -langkah berikut telah diuji pada Ubuntu dan kompatibel CPU dan GPU (diperlukan CUDA).
Klon Repositori ini dengan Submodules
Instal Prasyarat:
Koleksi Kompiler GNU ( sudo apt install build-essential )
Untuk instalasi CPU , kami sarankan menggunakan file requirements.txt yang disertakan di lingkungan yang bersih (diuji dengan Python 3.9)
pip install -r requirements.txt
Untuk instalasi GPU , gunakan file environment.yml sebagai gantinya.
Pastikan Anda memiliki prasyarat berikut yang diinstal:
Kemudian buat dan aktifkan lingkungan Conda dengan semua dependensi:
conda env create -f environment.yml -n tts
conda activate tts
Unduh model dari bagian rilis dan tempatkan di dalam models/ direktori.
Periksa file konfigurasi dan ubah default apa pun sesuai kebutuhan. Pastikan parameter model_path di config/config.yaml menunjuk ke model yang baru saja Anda unduh.
Tentukan parameter koneksi RabbitMQ dengan variabel lingkungan atau dalam file config/.env seperti yang diilustrasikan dalam config/sample.env .
Jalankan pekerja dengan Where MODEL_NAME cocok dengan nama model di file konfigurasi Anda:
python main.py --model-name $MODEL_NAME [--log-config config/logging.ini --config config/config.yaml]