Ganyutts هي أداة Vits + So-Vits لتوليد الكلام من النص. لقد تم صنعه في الأصل من أجل Game Elite Dangerous ، لكنني قمت بفصله عن المشروع الرئيسي ، لذلك يمكن أن يعمل الآن كأداة استنتاج مستقل أو واجهة برمجة التطبيقات. Edditts متاح هنا.
هذا بالتأكيد مجرد مشروع لعبة ، لذلك لا تتوقع الكثير. لا تزال هناك أشياء كثيرة متشددة ، والرمز غير نظيف للغاية. سأحاول تنظيفه في المستقبل.
لقد صنعت هذا الريبو لراحتي الخاصة ، لكن لا تتردد في استخدامه إذا أردت.
أقترح استخدام بيئة افتراضية لهذا (Conda أو VenV). أيضًا ، أوصي باستخدام Python 3.9 أو أعلى. GPU غير مطلوب ، لكنه سيسرع الاستدلال.
pip install -r requirements.txtبالنسبة لـ Phonemizer ، تحتاج إلى تثبيت ESPEAK . على Windows ، يمكنك تنزيله من هنا . على Linux ، يمكنك تثبيته باستخدام Manager Package الخاص بك.
يحتاج البرنامج إلى ملف تكوين يسمى config.json في المجلد الجذر. يتم توفير ملف مثال. يمكنك تغيير المسارات إلى النماذج ومفاتيح API. تعد مسارات الصوتيات ذات صلة فقط لمستخدمي Windows ، يمكنك التعديل هنا إذا قمت بتثبيت ESPEAK في موقع مختلف. إذا كنت ترغب في استخدام الوضع التفاعلي ، فأنت بحاجة إلى الحصول على مفتاح API من Openai. إنها رخيصة للغاية وتستحق جودة الاستجابات.
لبدء واجهة برمجة التطبيقات ، قم بتشغيل الأمر التالي:
python main.pyيوفر هذا التطبيق واجهة برمجة تطبيقات قارورة بسيطة للنص إلى الكلام. يمكنك إرسال طلب منشور إلى الخادم ، وسيقوم بإرجاع ملف WAV الصوتي.
اطلب من جسم طلب:
{
"text" : " Hello, world! " ,
"sid1" : " 22 " , # speaker id in the multi-speaker VITS model
"sid2" : " ganyu " # speaker id in the SO-VITS model
}إجابة:
{
"audio" : " <audio wav> " # base64 encoded raw audio
}يتم توفير api_client_example.py لاختبار API.
هناك نوعان من البرامج النصية للاستدلال ، واحدة لصالح حالات وواحدة لخط أنابيب So-So-So-Vits. يمكنك استخدامها لإنشاء الصوت ببساطة من CLI.
لحالات فقط:
python inference_vits.py -t " Let's get started. I'll be your guide today. "للحصول على حركات + SO-its:
python inference_vits_sovits.py -t " Let's get started. I'll be your guide today " استخدم -h أو --help لمزيد من المعلومات.
يجب أن تكون جميع النماذج في مجلد Models ، يجب عليك تنزيلها يدويًا من repo luggingface الخاص بي. أيضًا ، لا تنسَ تنزيل نموذج Hubert ، فهذا ضروري للاحتفالات. أنا أستخدم "checkpoint_best_legacy_500.pt"