<> 5 يوليو 2024: تم إصدار أحدث نقطة تفتيش للواقع المعزز: استقرار أعلى للإنتاج. تحديث كبير جدا قريبا!
هذا هو الريبو لنموذج الكلام باللغة الإنجليزية MARS5 (TTS) من CAMB.AI.
يتبع النموذج خط أنابيب AR-NAR ذو مرحلتين مع مكون NAR جديد مميز (انظر المزيد من المعلومات في الهندسة المعمارية).
من خلال 5 ثوانٍ فقط من الصوت ومقتطف من النص، يمكن لـ MARS5 إنشاء كلام حتى للسيناريوهات الصعبة والمتنوعة مثل التعليقات الرياضية والأنيمي والمزيد. تحقق من العرض لدينا:
شاهد الفيديو كاملا هنا:
الشكل : تدفق البنية عالية المستوى لـ MARS5. بالنظر إلى النص والصوت المرجعي، يتم الحصول على ميزات الكلام المشفر الخشن (L0) من خلال نموذج محول الانحدار الذاتي. بعد ذلك، يتم تحسين النص والمرجع والميزات الخشنة في نموذج DDPM متعدد الحدود لإنتاج قيم كتاب الترميز المتبقية. يتم بعد ذلك تشفير مخرجات DDPM صوتيًا لإنتاج الصوت النهائي.
نظرًا لأن النموذج تم تدريبه على الصوت الخام مع نص مشفر بالبايت، فيمكن توجيهه باستخدام أشياء مثل علامات الترقيم والأحرف الكبيرة. على سبيل المثال، لإضافة وقفة، أضف فاصلة إلى هذا الجزء في النص. أو، للتأكيد على كلمة ما، ضعها بأحرف كبيرة في النص. يتيح ذلك طريقة طبيعية إلى حد ما لتوجيه عرض المخرجات التي تم إنشاؤها.
يتم تحديد هوية المتحدث باستخدام ملف مرجعي صوتي يتراوح مدته بين 2 و12 ثانية، مع أطوال تبلغ حوالي 6 ثوانٍ مما يوفر نتائج مثالية. علاوة على ذلك، من خلال توفير نسخة المرجع، يمكّن MARS5 الشخص من إجراء " استنساخ عميق " مما يحسن جودة الاستنساخ والإخراج، على حساب استغراق وقت أطول قليلاً لإنتاج الصوت. لمزيد من التفاصيل حول هذا الأمر وتفاصيل الأداء والنموذج الأخرى، يرجى الاطلاع على مجلد المستندات.
نحن نستخدم torch.hub
لتسهيل تحميل النموذج - دون الحاجة إلى استنساخ الريبو. خطوات تنفيذ الاستدلال بسيطة:
التثبيت باستخدام النقطة :
متطلبات:
pip install --upgrade torch torchaudio librosa vocos encodec safetensors regex
import torch , librosa
mars5 , config_class = torch . hub . load ( 'Camb-ai/mars5-tts' , 'mars5_english' , trust_repo = True )
# The `mars5` contains the AR and NAR model, as well as inference code.
# The `config_class` contains tunable inference config settings like temperature.
(اختياري) تحميل النموذج من Huggingface (تأكد من استنساخ المستودع)
from inference import Mars5TTS , InferenceConfig as config_class
import torch , librosa
mars5 = Mars5TTS . from_pretrained ( "CAMB-AI/MARS5-TTS" )
# Load reference audio between 1-12 seconds.
wav , sr = librosa . load ( '.wav' ,
sr = mars5 . sr , mono = True )
wav = torch . from_numpy ( wav )
ref_transcript = ""
ملحوظة: النص المرجعي اختياري. قم بتمريرها إذا كنت ترغب في إجراء استنساخ عميق.
يدعم MARS5 نوعين من الاستدلال: الاستدلال الضحل والسريع حيث لا تحتاج إلى نص المرجع (نسمي هذا الاستنساخ الضحل )، والطريقة الثانية الأبطأ، ولكن عادةً ما تكون ذات جودة أعلى، والتي نسميها الاستنساخ العميق . لاستخدام النسخ العميق، تحتاج إلى النص الفوري. راجع بنية النموذج لمزيد من المعلومات حول هذا الموضوع.
# Pick whether you want a deep or shallow clone. Set to False if you don't know prompt transcript or want fast inference. Set to True if you know transcript and want highest quality.
deep_clone = True
# Below you can tune other inference settings, like top_k, temperature, top_p, etc...
cfg = config_class ( deep_clone = deep_clone , rep_penalty_window = 100 ,
top_k = 100 , temperature = 0.7 , freq_penalty = 3 )
ar_codes , output_audio = mars5 . tts ( "The quick brown rat." , wav ,
ref_transcript ,
cfg = cfg )
# output_audio is (T,) shape float tensor corresponding to the 24kHz output audio.
هذا كل شيء! توفر هذه الإعدادات الافتراضية نتائج جيدة جدًا، ولكن لا تتردد في ضبط إعدادات الاستدلال لتحسين الإخراج لحالة الاستخدام الخاصة بك. راجع رمز InferenceConfig
أو دفتر الملاحظات التجريبي للحصول على معلومات ومستندات حول جميع إعدادات الاستدلال المختلفة.
بعض النصائح للحصول على أفضل جودة:
اسحب من DockerHub
يمكنك سحب صورة عامل الإرساء مباشرةً من صفحة DockerHub الخاصة بنا.
بناء بنفسك
يمكنك إنشاء صورة مخصصة من ملف Dockerfile المقدم في هذا الريبو عن طريق تشغيل الأمر التالي.
cd MARS5-TTS
docker build -t mars5ttsimage ./docker
ملاحظة: يجب استخدام هذه الصورة كصورة أساسية يمكنك فوقها إضافة البرنامج النصي للاستدلال المخصص في ملف Dockerfile أو docker-compose. ستتم إضافة الصور التي تولد المخرجات مباشرة إلى Docker Hub وكملفات Dockerfiles في هذا الريبو قريبًا
نقاط التفتيش
يتم توفير نقاط التفتيش لـ MARS5 ضمن علامة تبويب الإصدارات في مستودع جيثب هذا. نحن نقدم نقطتي تفتيش:
'vocab'
، ويتبع تقريبًا نفس التنسيق الخاص برمز minbpe المحفوظ. يتم توفير نقاط التفتيش كنقاط تفتيش pytorch .pt
ونقاط تفتيش Safetensors .safetensors
. افتراضيًا، يقوم torch.hub.load()
بتحميل إصدار أدوات الأمان، ولكن يمكنك تحديد إصدار نقطة التفتيش الذي تفضله باستخدام ckpt_format='safetensors'
أو ckpt_format='pt'
في استدعاء torch.hub.load()
. على سبيل المثال لفرض تنسيق Safetensors:
torch.hub.load('Camb-ai/mars5-tts', 'mars5_english', ckpt_format='safetensors')
أو لفرض تنسيق pytorch .pt
عند تحميل نقاط التفتيش:
torch.hub.load('Camb-ai/mars5-tts', 'mars5_english', ckpt_format='pt')
متطلبات الأجهزة :
يجب أن تكون قادرًا على تخزين ما لا يقل عن 750 مليونًا + 450 مليونًا من المعلمات على وحدة معالجة الرسومات، وإجراء الاستدلال باستخدام 750 مليونًا من المعلمات النشطة.
إذا لم تكن لديك متطلبات الأجهزة اللازمة وتريد فقط استخدام MARS5 في تطبيقاتك، فيمكنك استخدامه عبر واجهة برمجة التطبيقات (API) الخاصة بنا. إذا كنت بحاجة إلى بعض الاعتمادات الإضافية لاختبارها لحالة الاستخدام الخاصة بك، فلا تتردد في التواصل مع [email protected]
.
MARS5 ليس مثاليًا في الوقت الحالي، ونحن نعمل على تحسين جودته واستقراره وأدائه. المجالات الصعبة التي نتطلع إلى تحسينها، ونرحب بأي مساهمات في:
مهام محددة
site-packages/torch/nn/functional.py:4840: UserWarning: The operator 'aten::col2im' is not currently supported on the MPS backend and will fall back to run on the CPU. This may have performance implications
. إذا كنت ترغب في المساهمة بأي تحسين في MARS5، فلا تتردد في المساهمة (الإرشادات أدناه).
ونحن نرحب بأي مساهمات لتحسين النموذج. كما قد تجد عند التجربة، فإنه يمكن أن يؤدي إلى نتائج رائعة حقًا، ولا يزال من الممكن تحسينه بشكل أكبر لإنشاء مخرجات ممتازة باستمرار . نود أيضًا أن نرى كيف استخدمت MARS5 في سيناريوهات مختلفة، يرجى استخدام ؟ اعرض الفئة وأخبرها في المناقشات لمشاركة الأمثلة الخاصة بك.
شكل المساهمة :
الطريقة المفضلة للمساهمة في الريبو الخاص بنا هي إنشاء مستودع رئيسي على GitHub:
git remote add upstream [email protected]:Camb-ai/mars5-tts.git
git push --set-upstream origin
نحن نوفر MARS5 مفتوح المصدر باللغة الإنجليزية بموجب GNU AGPL 3.0. للاستفسارات التجارية أو لترخيص الإصدار مغلق المصدر من MARS، يرجى إرسال بريد إلكتروني إلى [email protected]
نحن فريق طموح، منتشرون عالميًا، ولدينا هدف واحد وهو جعل صوت الجميع مهمًا. في CAMB.AI، نحن فريق بحث من شركة Carnegie Mellon التي تنشر Interspeech، ومهندسين سابقين في Siri ونبحث عنك للانضمام إلى فريقنا.
نحن نقوم بالتوظيف بنشاط؛ يرجى إرسال بريد إلكتروني إلينا على [email protected] إذا كنت مهتمًا. قم بزيارة صفحة الوظائف لدينا لمزيد من المعلومات.
انضم إلى مجتمع CAMB.AI على المنتدى وDiscord لمشاركة أي اقتراحات أو تعليقات أو أسئلة مع فريقنا.
تم تعديل أجزاء التعليمات البرمجية لهذا المشروع من المستودعات التالية - يرجى التأكد من التحقق منها! شكرا لمؤلفي:
.trim()
الخاص بهم: https://librosa.org/doc/main/generated/librosa.effacts.trim.html