همهٔ مقاله‌ها

· Casimiro Ferreira· 4 دقیقه مطالعه

معرفی phoonnx: چارچوب تازهٔ TTS برای OpenVoiceOS

  • phoonnx
  • TTS
  • OVOS
  • ONNX
  • Phonemization

این وبلاگ در ابتدا در وبلاگ OpenVoiceOS منتشر شد

phoonnx اکنون چارچوب اصلی تبدیل متن به گفتار برای OpenVoiceOS است — یک پشتهٔ کامل آموزش و استنتاج ساخته‌شده بر پایهٔ VITS و ONNX، که برای صداهای یکدست و آمادهٔ آفلاین در هر زبانی که پشتیبانی می‌کنیم طراحی شده است.

آن را در عمل بشنوید: دموی صداها صداهای phoonnx را به‌صورت زنده در مرورگر شما اجرا می‌کند — onnxruntime-web، بدون سرور.


زبان تازه: معرفی باسکی!

با تکیه بر کار پیشین ما در ساخت صداهای مصنوعی از صفر و همکاری TTS عربی، تازه‌ترین افزوده‌ها به پشتیبانی زبانی ما صداهایی برای باسکی (eu-ES) هستند.

این شامل هم صدای مردانه (Miro) و هم صدای زنانه (Dii) می‌شود و مأموریت ما را برای پشتیبانی حتی از زبان‌های کم‌منبعی که فاقد گزینه‌های باز و باکیفیت TTS هستند پیش می‌برد.

پیش‌تر تنها یک صدای زنانهٔ ماشینی از طریق افزونهٔ AhoTTS که با همکاری ILENIA ساخته شده بود، در دسترس بود.

نتیجه را بشنوید: نمونه‌هایی از صداهای باز و تازهٔ باسکی.

Miro (صدای مردانه): به Miro گوش دهید

Dii (صدای زنانه): به Dii گوش دهید


هویتِ صدایی یکدست در همهٔ زبان‌ها

‏OpenVoiceOS به یک صدای برندِ یکدست نیاز دارد: یک شخصیت استاندارد مردانه و زنانه که صرف‌نظر از اینکه دستیار برای چه زبانی پیکربندی شده، یکسان به گوش برسد. کاربری که OpenVoiceOS را در لیسبون راه‌اندازی می‌کند و بعداً به آلمانی سوئیچ می‌کند، باید همان گویندهٔ آشنا را بشنود.

TigreGotico موتور phoonnx را می‌سازد و نگهداری می‌کند، مجموعه‌داده‌های آموزشی باز را مشارکت می‌دهد و صداهای چندزبانهٔ پیش‌فرض OVOS — Miro (مردانه) و Dii (زنانه) — را که این تعهد را برآورده می‌کنند آموزش می‌دهد.


انعطاف‌پذیری phonemizer

phoonnx چیزی بیش از یک ابزار استنتاج است؛ یک چارچوب کامل آموزش و استنتاج ساخته‌شده بر پایهٔ معماری استوار VITS است. این قابلیت دوگانه به ما امکان می‌دهد صداهای باکیفیت را به‌سرعت نمونه‌سازی، آموزش و مستقر کنیم.

کلید این انعطاف‌پذیری، توانایی پشتیبانی از phonemizer‌های گوناگون است. یک phonemizer (یا مدل G2P - گرافم به واج) متن نوشته‌شده را به دنبالهٔ واحدهای صوتی (واج‌ها) که مدل TTS بیان می‌کند تبدیل می‌کند. زبان‌های مختلف ممکن است برای گفتار دقیق به phonemizer های متفاوت و تخصصی نیاز داشته باشند.

  • سازگاری با eSpeak: یک ویژگی محوری این است که مدل‌های phoonnx به‌طور کامل با زمان‌اجرای موتور محبوب Piper TTS سازگارند، به شرطی که با phonemizer پرکاربرد eSpeak آموزش دیده باشند. این استقرار آسان را درون بوم‌سازگان موجود OVOS و پروژه‌های شخص‌ثالث مانند Home Assistant تضمین می‌کند.
  • پشتیبانی از phonemizer سفارشی: این چارچوب به eSpeak محدود نیست. برای نمونه، مدل‌های باکیفیت گالیسیایی توسعه‌یافته توسط Proxecto Nós با استفاده از phonemizer Cotovia کاملاً سازگارند و می‌توانند با خط‌لولهٔ phoonnx استفاده شوند.

این انعطاف‌پذیری به ما امکان می‌دهد از کار دیگر پروژه‌های متن‌باز بهره ببریم و آن را یکپارچه کنیم. در واقع، برای استنتاج، phoonnx می‌تواند با موفقیت از مدل‌هایی استفاده کند که در ابتدا توسط پروژه‌های دیگر آموزش داده شده‌اند، از جمله Coqui، Mimic3 و Piper.

گام بعدی: مدل‌های G2P مبتنی بر ByT5

با نگاه به آینده، ما پیوسته در تلاش برای بهبود دقت G2P هستیم، به‌ویژه برای زبان‌های کم‌منبع. اکنون در حال توسعه و آزمایش مدل‌های G2P نسل بعد بر پایهٔ معماری قدرتمند ByT5 هستیم. این مدل‌های مبتنی بر ترنسفورمر نویدِ آواسازی دقیق‌تر و استوارتر در طیف گسترده‌تری از زبان‌ها را می‌دهند.

می‌توانید توسعهٔ آن‌ها را اینجا دنبال کنید: مجموعهٔ مدل‌های G2P.

در آینده‌ای نزدیک یک افزونهٔ اختصاصی OVOS TTS برای phoonnx ساخته و به‌عنوان پیش‌فرض OpenVoiceOS تعیین خواهد شد و جایگزین افزونه‌های پیشین می‌شود: ovos-tts-plugin-piper و ovos-tts-plugin-nos.

در این میان می‌توانید صداهای تازه را از طریق افزونهٔ موجود ovos-tts-plugin-piper امتحان کنید.

تنها کاری که باید بکنید این است که نشانی‌های مدل را زیر mycroft.conf بگذارید

  "tts": {
    "module": "ovos-tts-plugin-piper",
    "ovos-tts-plugin-piper": {
      "model": "https://huggingface.co/OpenVoiceOS/phoonnx_eu-ES_miro_espeak/resolve/main/miro_eu-ES.onnx",
      "model_config": "https://huggingface.co/OpenVoiceOS/phoonnx_eu-ES_miro_espeak/resolve/main/miro_eu-ES.piper.json"
    }
  }

گزارش پیشرفت: زبان‌های در دسترس

کار جمعی تیم‌های OpenVoiceOS و TigreGotico به کتابخانه‌ای رو به گسترش از مدل‌های متن‌باز TTS انجامیده است.

زبان‌های پشتیبانی‌شدهٔ کنونی:

  • عربی
  • باسکی
  • هلندی
  • انگلیسی (US/GB)
  • فرانسوی
  • آلمانی
  • ایتالیایی
  • پرتغالی (برزیل/پرتغال)
  • اسپانیایی

مشارکت کنید و مدل‌ها را بیابید

از جامعه دعوت می‌کنیم این منابع تازه را کاوش و استفاده کنند.

منبعتوضیحپیوند
مدل‌های Phoonnxمدل‌های تازهٔ TTS آموزش‌دیده با phoonnx در قالب ONNX.phoonnx-tts-models
صداهای Piper/Phoonnxمجموعهٔ کامل صداهای OpenVoiceOS سازگار با Piper.pipertts-voices
مجموعه‌داده‌های بازمجموعه‌داده‌های به‌کاررفته برای آموزش این صداها، در جهت پیشبرد پژوهش دادهٔ باز.tts-datasets


فهرست کامل مدل‌ها و مجموعه‌داده‌ها را در Hugging Face کاوش کنید: TigreGotico · OpenVoiceOS. برای مشارکت داده، یک issue یا discussion در phoonnx باز کنید.