السلحفاة عبارة عن برنامج نص إلى كلام مصمم بأولويات التالية:
يحتوي هذا الريبو على جميع التعليمات البرمجية اللازمة لتشغيل TROS TTS في وضع الاستدلال.
كولاب هي أسهل طريقة لتجربة ذلك. لقد قمت بتجميع دفتر ملاحظات يمكنك استخدامه هنا: https://colab.research.google.com/drive/1wvvqupqwidbuvewwounglpghu3hg_cbr؟usp=sharing
إذا كنت ترغب في استخدام هذا على جهاز الكمبيوتر الخاص بك ، فيجب أن يكون لديك وحدة معالجة الرسومات Nvidia.
أولاً ، قم بتثبيت pytorch باستخدام هذه التعليمات: https://pytorch.org/get-started/locally/. على Windows ، أوصي بشدة باستخدام مسار تثبيت Conda. لقد قيل لي إنه إذا لم تفعل ذلك ، فسوف تقضي الكثير من الوقت في مطاردة مشاكل التبعية.
بعد ذلك ، قم بتثبيت السلحفاة وتبعياتها:
git clone https://github.com/neonbjb/tortoise-tts.git
cd tortoise-tts
python setup.py install إذا كنت على Windows ، فستحتاج أيضًا إلى تثبيت conda install -c conda-forge pysoundfile
يتيح لك هذا البرنامج النصي التحدث بصفقة واحدة مع صوت واحد أو أكثر.
python tortoise/do_tts.py --text " I'm going to speak this " --voice random --preset fastيوفر هذا البرنامج النصي أدوات لقراءة كميات كبيرة من النص.
python tortoise/read.py --textfile < your text to be read > --voice randomسيؤدي ذلك إلى تقسيم textfile إلى جمل ، ثم تحويلها إلى خطاب واحد في وقت واحد. سوف يخرج سلسلة من المقاطع المنطوقة عند توليدها. بمجرد إنشاء جميع المقاطع ، ستجمعها في ملف واحد وإخراج ذلك أيضًا.
في بعض الأحيان ترفع السلحفاة. يمكنك إعادة توحيد أي مقاطع سيئة عن طريق إعادة تشغيل read.py مع حجة-REGENTER.
يمكن استخدام السلحفاة برمجيًا ، مثل ذلك:
reference_clips = [ utils . audio . load_audio ( p , 22050 ) for p in clips_paths ]
tts = api . TextToSpeech ()
pcm_audio = tts . tts_with_preset ( "your text here" , voice_samples = reference_clips , preset = 'fast' )تم تدريب السلحفاة على وجه التحديد لتكون نموذجًا متعدد الكلام. ينجز هذا عن طريق استشارة المقاطع المرجعية.
هذه المقاطع المرجعية هي تسجيلات للمتحدث التي تقدمها لتوجيه توليد الكلام. تُستخدم هذه المقاطع لتحديد العديد من خصائص الإخراج ، مثل الملعب ونغمة الصوت وسرعة التحدث وحتى التحدث عن العيوب مثل lisp أو التأثر. يتم استخدام المقطع المرجعي أيضًا لتحديد الجوانب غير المرتبطة بالإخراج الصوتي مثل الصوت وضوضاء الخلفية وجودة التسجيل وتردد.
لقد قمت بتضمين ميزة تنشئ صوتًا بشكل عشوائي. هذه الأصوات غير موجودة بالفعل وستكون عشوائيًا في كل مرة تقوم فيها بتشغيلها. النتائج رائعة للغاية وأوصيك باللعب معها!
يمكنك استخدام الصوت العشوائي عن طريق تمرير "عشوائي" كاسم صوت. السلحفاة سوف تعتني بالباقي.
بالنسبة لأولئك الموجودين في مساحة ML: يتم إنشاء هذا عن طريق إسقاط متجه عشوائي على مساحة كامنة للتكييف الصوتي.
يأتي هذا الريبو مع العديد من الأصوات المعبأة مسبقًا. جاءت الأصوات المسبقة مع "Train_" من مجموعة التدريب وأداء أفضل بكثير من الآخرين. إذا كان هدفك هو خطاب عالي الجودة ، فإنني أوصيك باختيار واحد منهم. إذا كنت تريد أن ترى ما الذي يمكن أن تفعله السلحفاة من أجل تقليد الصفر ، فقم بإلقاء نظرة على الآخرين.
لإضافة أصوات جديدة إلى السلحفاة ، ستحتاج إلى القيام بما يلي:
كما ذكر أعلاه ، فإن المقاطع المرجعية الخاصة بك لها تأثير عميق على ناتج السلحفاة. فيما يلي بعض النصائح لاختيار مقاطع جيدة:
السلحفاة هي في المقام الأول نموذج فك ترميز الانحدار التلقائي مع نموذج الانتشار. كلاهما لهما الكثير من المقابض التي يمكن أن تحولت والتي قمت بإخلاتها بعيدًا من أجل سهولة الاستخدام. لقد فعلت ذلك من خلال توليد الآلاف من المقاطع باستخدام التباديل المختلفة للإعدادات واستخدام مقياس للواقعية الصوتية والوضوح لقياس آثارها. لقد قمت بتعيين الإعدادات الافتراضية على أفضل الإعدادات الشاملة التي تمكنت من العثور عليها. بالنسبة لحالات الاستخدام المحددة ، قد يكون من الفعال اللعب مع هذه الإعدادات (ومن المحتمل جدًا أن فاتني شيء!)
هذه الإعدادات غير متوفرة في البرامج النصية العادية المعبأة بالسلحفاة. فهي متوفرة ، ومع ذلك ، في واجهة برمجة التطبيقات. انظر api.tts للحصول على قائمة كاملة.
اكتشف بعض الأشخاص أنه من الممكن القيام بالهندسة السريعة مع السلحفاة! على سبيل المثال ، يمكنك استحضار المشاعر من خلال تضمين أشياء مثل "أنا حزين حقًا" ، قبل نصك. لقد قمت ببناء نظام تنقيح آلي يمكنك استخدامه للاستفادة من هذا. إنه يعمل من خلال محاولة تنقيح أي نص في المطالبة المحاطة بأقواس. على سبيل المثال ، المطالبة "[أنا حزين حقًا ،] من فضلك أطعمني." سوف يتكلم فقط عبارة "من فضلك إطعامني" (مع نغمة حزينة).
تلبيس السلحفاة مقاطع مرجعية عن طريق إطعامها من خلال بشكل فردي من خلال عارضة أزياء صغيرة تنتج نقطة كامنة ، ثم أخذ متوسط جميع اللاتينات المنتجة. لقد أشارت التجربة التي قمت بها إلى أن هذه التجربة معبرة للغاية ، مما يؤثر على كل شيء من النغمة إلى معدل التحدث إلى تشوهات الكلام.
هذا يفسح المجال لبعض الحيل الأنيقة. على سبيل المثال ، يمكنك الجمع بين تغذية صوتين مختلفين للسلحفاة وسيؤدي إلى إخراج ما يعتقد أن "متوسط" هذين الأصوات يبدو.
استخدم البرنامج النصي get_conditioning_latents.py لاستخراج مكيفات لاتية لصوت قمت بتثبيته. سيؤدي هذا البرنامج النصي إلى تفريغ اللاتينية على ملف .pth Pickle. سيحتوي الملف على tuple واحد ، (Autoregression_latent ، diffusion_latent).
بدلاً من ذلك ، استخدم api.texttospeech.get_conditioning_latents () لجلب Latents.
بعد أن لعبت معهم ، يمكنك استخدامها لإنشاء الكلام عن طريق إنشاء دليل فرعي في أصوات/ مع ملف واحد ".pth" الذي يحتوي على لاتينج المخلل على أنه tuple (autoregression_latent ، diffusus_latent).
بدافع المخاوف من إساءة استخدام هذا النموذج ، قمت ببناء مصنف يخبر احتمال أن يكون مقطع صوتي من السلحفاة.
يمكن تشغيل هذا المصنف على أي جهاز كمبيوتر ، والاستخدام هو كما يلي:
python tortoise/is_this_from_tortoise.py --clip=<path_to_suspicious_audio_file>
هذا النموذج له دقة 100 ٪ على محتويات النتائج/ والأصوات/ المجلدات في هذا الريبو. ومع ذلك ، تعامل مع هذا المصنف باعتباره "إشارة قوية". يمكن خداع المصنفات ، وليس من المستحيل على هذا المصنف إظهار إيجابيات كاذبة.
Tortoise TTS مستوحاة من Dalle من Openai ، وتطبق على بيانات الكلام واستخدام وحدة فك ترميز أفضل. يتكون من 5 نماذج منفصلة تعمل معًا: https://nonint.com/2022/04/25/tortoise-architectural-design-doc/