يرجى استخدام قنواتنا المخصصة للأسئلة والمناقشة. تكون المساعدة أكثر قيمة إذا تمت مشاركتها بشكل عام حتى يتمكن المزيد من الأشخاص من الاستفادة منها.
يكتب | المنصات |
---|---|
تقارير الأخطاء | تعقب مشكلة جيثب |
؟ طلبات الميزات والأفكار | تعقب مشكلة جيثب |
أسئلة الاستخدام | مناقشات جيثب |
؟ مناقشة عامة | مناقشات جيثب أو الخلاف |
يكتب | روابط |
---|---|
التوثيق | اقرأ TheDocs |
؟ تثبيت | تحويل النص إلى كلام/README.md |
المساهمة | المساهمة.md |
؟ خريطة الطريق | خطط التطوير الرئيسية |
النماذج الصادرة | إصدارات TTS والنماذج التجريبية |
؟ أوراق | أوراق تحويل النص إلى كلام |
"TTS*" و"Judy*" التي تحتها خط هما نماذج TTS داخلية لم يتم إصدارها كمصدر مفتوح. إنهم هنا لإظهار الإمكانات. النماذج التي تبدأ بنقطة (.Jofish .Abe و.Janice) هي أصوات بشرية حقيقية.
Trainer API
الكاملة.dataset_analysis
.يمكنك أيضًا مساعدتنا في تنفيذ المزيد من النماذج.
تم اختبار تحويل النص إلى كلام (TTS) على Ubuntu 18.04 باستخدام python >= 3.9، <3.12. .
إذا كنت مهتمًا فقط بتوليف الكلام باستخدام نماذج TTS التي تم إصدارها، فإن التثبيت من PyPI هو الخيار الأسهل.
pip install TTS
إذا كنت تخطط لترميز النماذج أو تدريبها، فقم باستنساخ TTS وتثبيته محليًا.
git clone https://github.com/coqui-ai/TTS
pip install -e .[all,dev,notebooks] # Select the relevant extras
إذا كنت تستخدم نظام Ubuntu (Debian)، فيمكنك أيضًا تشغيل الأوامر التالية للتثبيت.
$ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
$ make install
إذا كنت تستخدم نظام التشغيل Windows، فقد كتب@GuyPaddock تعليمات التثبيت هنا.
يمكنك أيضًا تجربة TTS بدون تثبيت باستخدام صورة عامل الإرساء. ما عليك سوى تشغيل الأمر التالي وستتمكن من تشغيل تحويل النص إلى كلام (TTS) دون تثبيته.
docker run --rm -it -p 5002:5002 --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu
python3 TTS/server/server.py --list_models # To get the list of available models
python3 TTS/server/server.py --model_name tts_models/en/vctk/vits # To start a server
يمكنك بعد ذلك الاستمتاع بخادم TTS هنا ويمكن العثور على مزيد من التفاصيل حول صور عامل الإرساء (مثل دعم GPU) هنا
import torch
from TTS . api import TTS
# Get device
device = "cuda" if torch . cuda . is_available () else "cpu"
# List available ?TTS models
print ( TTS (). list_models ())
# Init TTS
tts = TTS ( "tts_models/multilingual/multi-dataset/xtts_v2" ). to ( device )
# Run TTS
# ❗ Since this model is multi-lingual voice cloning model, we must set the target speaker_wav and language
# Text to speech list of amplitude values as output
wav = tts . tts ( text = "Hello world!" , speaker_wav = "my/cloning/audio.wav" , language = "en" )
# Text to speech to a file
tts . tts_to_file ( text = "Hello world!" , speaker_wav = "my/cloning/audio.wav" , language = "en" , file_path = "output.wav" )
# Init TTS with the target model name
tts = TTS ( model_name = "tts_models/de/thorsten/tacotron2-DDC" , progress_bar = False ). to ( device )
# Run TTS
tts . tts_to_file ( text = "Ich bin eine Testnachricht." , file_path = OUTPUT_PATH )
# Example voice cloning with YourTTS in English, French and Portuguese
tts = TTS ( model_name = "tts_models/multilingual/multi-dataset/your_tts" , progress_bar = False ). to ( device )
tts . tts_to_file ( "This is voice cloning." , speaker_wav = "my/cloning/audio.wav" , language = "en" , file_path = "output.wav" )
tts . tts_to_file ( "C'est le clonage de la voix." , speaker_wav = "my/cloning/audio.wav" , language = "fr-fr" , file_path = "output.wav" )
tts . tts_to_file ( "Isso é clonagem de voz." , speaker_wav = "my/cloning/audio.wav" , language = "pt-br" , file_path = "output.wav" )
تحويل الصوت من source_wav
إلى صوت target_wav
tts = TTS ( model_name = "voice_conversion_models/multilingual/vctk/freevc24" , progress_bar = False ). to ( "cuda" )
tts . voice_conversion_to_file ( source_wav = "my/source.wav" , target_wav = "my/target.wav" , file_path = "output.wav" )
بهذه الطريقة، يمكنك استنساخ الأصوات باستخدام أي نموذج في TTS.
tts = TTS ( "tts_models/de/thorsten/tacotron2-DDC" )
tts . tts_with_vc_to_file (
"Wie sage ich auf Italienisch, dass ich dich liebe?" ,
speaker_wav = "target/speaker.wav" ,
file_path = "output.wav"
)
بالنسبة لنماذج Fairseq، استخدم تنسيق الاسم التالي: tts_models/<lang-iso_code>/fairseq/vits
. يمكنك العثور على رموز ISO للغة هنا والتعرف على نماذج Fairseq هنا.
# TTS with on the fly voice conversion
api = TTS ( "tts_models/deu/fairseq/vits" )
api . tts_with_vc_to_file (
"Wie sage ich auf Italienisch, dass ich dich liebe?" ,
speaker_wav = "target/speaker.wav" ,
file_path = "output.wav"
)
tts
إلى كلام سطر الأوامرتوليف الكلام في سطر الأوامر.
يمكنك إما استخدام النموذج المدرب الخاص بك أو اختيار نموذج من القائمة المتوفرة.
إذا لم تحدد أي نماذج، فسيتم استخدام نموذج اللغة الإنجليزية المستند إلى LJSpeech.
قائمة النماذج المقدمة:
$ tts --list_models
احصل على معلومات النموذج (لكل من tts_models وvocoder_models):
الاستعلام حسب النوع/الاسم: يستخدم model_info_by_name الاسم كما هو من --list_models.
$ tts --model_info_by_name "<model_type>/<language>/<dataset>/<model_name>"
على سبيل المثال:
$ tts --model_info_by_name tts_models/tr/common-voice/glow-tts
$ tts --model_info_by_name vocoder_models/en/ljspeech/hifigan_v2
الاستعلام حسب النوع/idx: يستخدم model_query_idx المعرف المقابل من --list_models.
$ tts --model_info_by_idx "<model_type>/<model_query_idx>"
على سبيل المثال:
$ tts --model_info_by_idx tts_models/3
معلومات الاستعلام عن معلومات النموذج بالاسم الكامل:
$ tts --model_info_by_name "<model_type>/<language>/<dataset>/<model_name>"
تشغيل تحويل النص إلى كلام (TTS) مع النماذج الافتراضية:
$ tts --text "Text for TTS" --out_path output/path/speech.wav
قم بتشغيل تحويل النص إلى كلام (TTS) وتوجيه بيانات ملف TTS wav التي تم إنشاؤها:
$ tts --text "Text for TTS" --pipe_out --out_path output/path/speech.wav | aplay
قم بتشغيل نموذج تحويل النص إلى كلام (TTS) باستخدام نموذج المشفر الصوتي الافتراضي الخاص به:
$ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --out_path output/path/speech.wav
على سبيل المثال:
$ tts --text "Text for TTS" --model_name "tts_models/en/ljspeech/glow-tts" --out_path output/path/speech.wav
قم بالتشغيل باستخدام نماذج TTS ومشفر صوتي محددة من القائمة:
$ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --vocoder_name "<model_type>/<language>/<dataset>/<model_name>" --out_path output/path/speech.wav
على سبيل المثال:
$ tts --text "Text for TTS" --model_name "tts_models/en/ljspeech/glow-tts" --vocoder_name "vocoder_models/en/ljspeech/univnet" --out_path output/path/speech.wav
قم بتشغيل نموذج TTS الخاص بك (باستخدام Griffin-Lim Vocoder):
$ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav
قم بتشغيل نماذج TTS وVocoder الخاصة بك:
$ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav
--vocoder_path path/to/vocoder.pth --vocoder_config_path path/to/vocoder_config.json
قم بإدراج المتحدثين المتاحين واختر <speaker_id> من بينهم:
$ tts --model_name "<language>/<dataset>/<model_name>" --list_speaker_idxs
قم بتشغيل نموذج تحويل النص إلى كلام (TTS) متعدد السماعات باستخدام معرف السماعة المستهدفة:
$ tts --text "Text for TTS." --out_path output/path/speech.wav --model_name "<language>/<dataset>/<model_name>" --speaker_idx <speaker_id>
قم بتشغيل نموذج TTS متعدد السماعات الخاص بك:
$ tts --text "Text for TTS" --out_path output/path/speech.wav --model_path path/to/model.pth --config_path path/to/config.json --speakers_file_path path/to/speaker.json --speaker_idx <speaker_id>
$ tts --out_path output/path/speech.wav --model_name "<language>/<dataset>/<model_name>" --source_wav <path/to/speaker/wav> --target_wav <path/to/reference/wav>
|- notebooks/ (Jupyter Notebooks for model evaluation, parameter selection and data analysis.)
|- utils/ (common utilities.)
|- TTS
|- bin/ (folder for all the executables.)
|- train*.py (train your target model.)
|- ...
|- tts/ (text to speech models)
|- layers/ (model layer definitions)
|- models/ (model definitions)
|- utils/ (model specific utilities.)
|- speaker_encoder/ (Speaker Encoder models.)
|- (same)
|- vocoder/ (Vocoder models.)
|- (same)