كل المقالات

· Casimiro Ferreira· 3 دقيقة قراءة

صوتان، كل اللغات: Miro و Dii

  • phoonnx
  • TTS
  • OVOS
  • voice cloning
  • G2P
  • language inclusion

استمع إليهما الآن: يشغّل عرض الأصوات صوتَي Miro و Dii مباشرةً في متصفحك — اختر لغة، واكتب جملة، واستمع. بلا تثبيت، بلا خادم.

يتذكّر الناس صوت المساعد أكثر من اسمه. لذا فإن السؤال الجوهري لشراكتنا مع OpenVoiceOS سؤال عملي: بمن ينبغي أن يبدو صوت المساعد، في كل لغة؟

الجواب هو Miro (ذكر) وDii (أنثى) — هويتان صوتيتان تمتدّان عبر كل لغة يدعمها OpenVoiceOS. المستخدم الذي يضبط المساعد في لشبونة ثم يتحوّل لاحقًا إلى الألمانية ينبغي أن يسمع المتحدّث المألوف نفسه. صوت علامة واحد، كل اللغات، ملكٌ للمجتمع.

هوية واحدة، لغات كثيرة

الطريقة المعتادة للحصول على صوت متعدّد اللغات هي تدريب نموذج واحد على لغات كثيرة دفعةً واحدة. وهي تنجح، لكنها تميل إلى تلطيخ النتيجة: تتسرّب اللهجات من لغة إلى أخرى، ويصير النطق تقريبيًا، ويفقد الصوت نصاعة المتحدّث الأصلي.

نحن نسلك الطريق الأصعب. فلكل لغة نبني نموذجًا أحادي اللغة — نموذج واحد، لغة واحدة، مُدرَّبًا ليُتقن تلك اللغة. والحيلة التي تربطها معًا هي استنساخ الصوت: كل نموذج أحادي اللغة لـ Miro مُستنسَخ من هوية المصدر نفسها، وكذلك بالنسبة لـ Dii. والنتيجة عائلة من النماذج الخاصة بكل لغة يتحدّث كل منها كأنه ناطق أصلي، لكنها تتشارك جميعًا التلوّن الصوتي نفسه، والطابع نفسه، و”ميرو-يّة” أو “دي-يّة” نفسها. تحصل على نطق بجودة الناطق الأصلي و هوية واحدة يمكن التعرّف عليها، بدلًا من المفاضلة بين أحدهما والآخر.

تُدرَّب هذه النماذج وتُقدَّم عبر phoonnx، إطارنا المفتوح لـ TTS — القائم على VITS، والمُصدَّر إلى ONNX، والعامل على وحدة المعالجة المركزية فقط. تعمل الأصوات دون اتصال تمامًا؛ بلا سحابة، بلا مفتاح API، بلا خروج بيانات من عتادك. وداخل OpenVoiceOS، يتولّى الملحق ovos-tts-plugin-phoonnx جلبها وتحميلها. وللقصة الكاملة للعتاد والبنية، انظر تحويل النص إلى كلام يعمل على بطاطسة.

بحث تحويل الحرف إلى الصوت الذي يجعل ذلك ممكنًا

إتقان لغةٍ ما ليس مجرد أمر يخصّ الصوت — بل يخصّ معرفة كيف يُفترض أن تبدو الكتابة. وذلك هو عمل تحويل الحرف إلى الصوت (G2P): تحويل النص المكتوب إلى تسلسل الأصوات التي ينطقها النموذج فعلًا. كل لغة جديدة نتبنّاها تأتي ببحثها الخاص في G2P، وفي ذلك البحث يكمن جزء كبير من العمل الحقيقي.

phoonnx مرن عمدًا هنا. فبإمكانه تشغيل طائفة كاملة من المُصوِّتات (phonemizers) — eSpeak، و Gruut، و Epitran، وByT5 G2P القائم على النماذج، وأدوات خاصة بكل لغة حيث تقصُر المحرّكات العامة. وهذا يتّصل مباشرةً بمنظومة الصوتيات الأوسع خاصتنا: بحث تحويل الرسم الإملائي إلى IPA و**المُصوِّتات اللوزوفونية** التي بنيناها للعائلة البرتغالية تخدم الهدف نفسه — IPA دقيق للغات لم يتكلّف كبار مزوّدي TTS عناء نمذجتها بعناية قط. وحين لا يكون للغةٍ مُصوِّت جاهز جيّد، فتلك الفجوة هي المشروع. نُجري بحث التهجئة-إلى-الصوت أولًا، ثم يأتي الصوت تاليًا.

نموذجان لكل لغة تُطلب

إليك العرض الملموس، وهو قلب الشراكة: لكل لغة يطلبها أحد، سنبني نموذجَي TTS — Miro و Dii. ليس خارطة طريق من “ربما يومًا ما”؛ بل التزام دائم. اطلب لغة، ويأتيها الزوج الكوني.

ونعني كل لغة، لا فقط اللغات المريحة والواضحة تجاريًا. الأصوات الغائبة عن العالم نادرًا ما تكون تلك التي لها مئة مليون متحدّث — بل هي اللغات المهددة بالانقراض واللغات الأقلية التي يتجاهلها TTS السائد بهدوء لأن سوقها أصغر من أن يستحق العناء. وتلك هي بالضبط اللغات التي نريد الوصول إليها: مجتمعات لم تحظَ قط بصوت صناعي عالي الجودة تدعوه صوتها، ولا سبب لديها لتوقّع أن يوفّره لها مزوّدٌ من وادي السيليكون يومًا.

هذا ليس وعدًا لوقت لاحق. عند كتابة هذه السطور، تُدرِج مجموعة نماذج TTS الخاصة بـ phoonnx على Hugging Face 13 لغة بها صوت واحد مشحون على الأقل، ومن بينها 8 لغات — الباسكية، والعربية، والبرتغالية الأوروبية، والأستورية، والأراغونية، والفريزية، والأوكسيتانية، والإسبانية الكولومبية — تتوفّر فيها Miro و Dii معًا بالفعل.

مفتوح ومستضاف ذاتيًا

الأصوات مجانية ومفتوحة المصدر، وتعمل دون اتصال ومستضافة ذاتيًا بحيث لا يغادر عتادَك أيّ شيء تقوله، والمنظومة كاملةً — المحرك، والمُصوِّتات، وبحث G2P، والأصوات المُدرَّبة — مفتوحة كي يأخذها مجتمعٌ ويحتفظ بها.

وإن لم تكن لغتك موجودة في القائمة بعد، فذلك ليس بابًا مغلقًا — بل طلبٌ ينتظر أن يُقدَّم.