Proyek ini terinspirasi oleh Silero-API-Server dan menggunakan XTTSV2.
Server ini dibuat untuk Sillytavern tetapi Anda dapat menggunakannya untuk kebutuhan Anda
Jangan ragu untuk membuat PR atau menggunakan kode untuk kebutuhan Anda sendiri
Ada versi Google Collab Anda dapat menggunakannya jika komputer Anda lemah.
Jika Anda mencari opsi untuk XTTS normal, gunakan, lihat di sini https://github.com/daswer123/xtts-webui
Baru -baru ini saya punya sedikit waktu untuk melakukan proyek ini, jadi saya menyarankan Anda untuk berkenalan dengan proyek serupa
Anda dapat melacak semua perubahan di halaman rilis
Instalasi Sederhana:
pip install xtts-api-serverIni akan menginstal semua dependensi yang diperlukan, termasuk versi Pytorch dukungan CPU saja
Saya sarankan Anda menginstal versi GPU untuk meningkatkan kecepatan pemrosesan (hingga 3 kali lebih cepat)
python -m venv venv
venv S cripts a ctivate
pip install xtts-api-server
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118sudo apt install -y python3-dev python3-venv portaudio19-dev
python -m venv venv
source venv b in a ctivate
pip install xtts-api-server
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118 # Clone REPO
git clone https://github.com/daswer123/xtts-api-server
cd xtts-api-server
# Create virtual env
python -m venv venv
venv/scripts/activate or source venv/bin/activate
# Install deps
pip install -r requirements.txt
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118
# Launch server
python -m xtts_api_server
DockerFile disediakan untuk membangun gambar Docker, dan file Docker-Compose.yml disediakan untuk menjalankan server dengan Docker Compose sebagai layanan.
Anda dapat membangun gambar dengan perintah berikut:
mkdir xtts-api-server
cd xtts-api-server
docker run -d daswer123/xtts-api-server
ATAU
cd docker
docker compose buildKemudian Anda dapat menjalankan server dengan perintah berikut:
docker compose up # or with -d to run in background python -m xtts_api_server akan berjalan pada ip dan port default (localhost: 8020)
Gunakan bendera --deepspeed untuk memproses hasil dengan cepat (akselerasi 2-3x)
usage: xtts_api_server [-h] [-hs HOST] [-p PORT] [-sf SPEAKER_FOLDER] [-o OUTPUT] [-t TUNNEL_URL] [-ms MODEL_SOURCE] [--listen] [--use-cache] [--lowvram] [--deepspeed] [--streaming-mode] [--stream-play-sync]
Run XTTSv2 within a FastAPI application
options:
-h, --help show this help message and exit
-hs HOST, --host HOST
-p PORT, --port PORT
-d DEVICE, --device DEVICE `cpu` or `cuda`, you can specify which video card to use, for example, `cuda:0`
-sf SPEAKER_FOLDER, --speaker-folder The folder where you get the samples for tts
-o OUTPUT, --output Output folder
-mf MODELS_FOLDERS, --model-folder Folder where models for XTTS will be stored, finetuned models should be stored in this folder
-t TUNNEL_URL, --tunnel URL of tunnel used (e.g: ngrok, localtunnel)
-ms MODEL_SOURCE, --model-source ["api","apiManual","local"]
-v MODEL_VERSION, --version You can download the official model or your own model, official version you can find [here](https://huggingface.co/coqui/XTTS-v2/tree/main) the model version name is the same as the branch name [v2.0.2,v2.0.3, main] etc. Or you can load your model, just put model in models folder
--listen Allows the server to be used outside the local computer, similar to -hs 0.0.0.0
--use-cache Enables caching of results, your results will be saved and if there will be a repeated request, you will get a file instead of generation
--lowvram The mode in which the model will be stored in RAM and when the processing will move to VRAM, the difference in speed is small
--deepspeed allows you to speed up processing by several times, automatically downloads the necessary libraries
--streaming-mode Enables streaming mode, currently has certain limitations, as described below.
--streaming-mode-improve Enables streaming mode, includes an improved streaming mode that consumes 2gb more VRAM and uses a better tokenizer and more context.
--stream-play-sync Additional flag for streaming mod that allows you to play all audio one at a time without interruption
Anda dapat menentukan jalur ke file sebagai teks, maka jalur yang dihitung dan file akan disuarakan
Anda dapat memuat model Anda sendiri, untuk ini Anda perlu membuat folder dalam model dan memuat model dengan konfigurasi, catatan di folder harus 3 file config.json vocab.json model.pth
Jika Anda ingin host Anda mendengarkan, gunakan -HS 0.0.0.0 atau gunakan -listen
Bendera -t atau -Tunnel diperlukan sehingga ketika Anda mendapatkan speaker melalui Get You Get The Right Link untuk mendengar pratinjau. Info lebih lanjut di sini
Model-Source mendefinisikan dalam format mana yang ingin Anda gunakan XTTS:
local - memuat versi 2.0.2 secara default, tetapi Anda dapat menentukan versi melalui bendera -V, model menyimpan ke folder model dan menggunakan XttsConfig dan inference .apiManual - Loads Versi 2.0.2 Secara default, tetapi Anda dapat menentukan versi melalui bendera -V, model menyimpan ke folder model dan menggunakan fungsi tts_to_file dari TTS APIapi - Akan memuat versi terbaru dari model. Bendera -V tidak akan berfungsi.Semua versi model XTTSV2 dapat ditemukan di sini nama versi model sama dengan nama cabang [v2.0.2, v2.0.3, utama] dll.
Pertama kali Anda menjalankan atau menghasilkan, Anda mungkin perlu mengonfirmasi bahwa Anda setuju untuk menggunakan XTTS.
Mode streaming memungkinkan Anda untuk mendapatkan audio dan segera memutarnya kembali. Namun, ia memiliki sejumlah keterbatasan.
Anda dapat melihat cara kerja mode ini di sini dan di sini
Sekarang, tentang keterbatasan
tts_to_file hanya tts_to_audio dan mengembalikan 1 detik dari keheningan. Anda dapat menentukan versi model XTTS dengan menggunakan bendera -v .
Mode streaming yang ditingkatkan cocok untuk bahasa yang kompleks seperti Cina, Jepang, Hindi atau jika Anda ingin mesin bahasa memperhitungkan lebih banyak informasi saat memproses pidato.
--stream-play-sync Flag-memungkinkan Anda memainkan semua pesan dalam urutan antrian, berguna jika Anda menggunakan obrolan grup. Di Sillytavern Anda perlu mematikan streaming agar bekerja dengan benar
API Docs dapat diakses dari http: // localhost: 8020/docs
Secara default folder speakers harus muncul di folder, Anda harus meletakkan file wav di sana dengan sampel suara, Anda juga dapat membuat folder dan meletakkan di sana beberapa sampel suara, ini akan memberikan hasil yang lebih akurat
Anda dapat mengubah folder untuk speaker dan folder untuk output melalui API.
Posting berikut adalah kutipan oleh pengguna bahan1276 dari reddit
Beberapa saran membuat sampel yang bagus
Simpan mereka sekitar 7-9 detik. Lebih lama tidak selalu lebih baik.
Pastikan audio di bawah sampel ke file mono, 22050Hz 16 bit wav. Anda akan memperlambat pemrosesan dengan % besar dan tampaknya menyebabkan hasil kualitas yang buruk jika tidak (berdasarkan beberapa tes). 24000Hz adalah kualitas output TI!
Menggunakan versi Audacity terbaru, pilih klip dan trek Anda> Resample ke 22050Hz, lalu Tracks> Mix> Stereo ke Mono. dan kemudian mengajukan> Ekspor audio, menyimpannya sebagai gelombang 22050Hz
Jika Anda perlu melakukan pembersihan audio, lakukan sebelum Anda mengompresnya ke pengaturan di atas (mono, 22050Hz, 16 bit).
Pastikan klip yang Anda gunakan tidak memiliki suara latar atau musik di misalnya banyak film memiliki musik yang tenang ketika banyak aktor berbicara. Audio berkualitas buruk akan memiliki desis yang perlu dibersihkan. AI akan mengambil ini, bahkan jika kita tidak melakukannya, dan sampai taraf tertentu, menggunakannya dalam suara yang disimulasikan sampai batas tertentu, jadi audio bersih adalah kuncinya!
Coba buat klip Anda salah satu pidato yang mengalir bagus, seperti file contoh yang disertakan. Tidak ada jeda besar, celah atau suara lainnya. Lebih disukai orang yang ingin Anda salin akan menunjukkan sedikit vokal. Contoh file ada di sini
Pastikan klip tidak dimulai atau diakhiri dengan suara bernafas (bernafas/keluar dll).
Menggunakan klip audio yang dihasilkan AI dapat memperkenalkan suara yang tidak diinginkan karena sudah menjadi salinan/simulasi suara, ini akan perlu diuji.