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

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

OpenVoiceOS و Home Assistant: تیم رؤیایی خودکارسازی صوتی

  • OVOS
  • Home Assistant
  • Smart Home
  • Voice Automation

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

‏Home Assistant خودکارسازی را به عهده می‌گیرد؛ OVOS صدا را. هیچ‌کدام نمی‌کوشند دیگری باشد. همین تقسیم مسئولیت است که این ترکیب را کارآمد می‌کند: یکپارچه‌سازی دستگاه‌ها و موتور خودکارسازی HA در کنار پشتهٔ صوتی انعطاف‌پذیر و کاملاً محلی OVOS.

این نوشته به سه لایهٔ یکپارچه‌سازی می‌پردازد: پل‌های Wyoming برای خط‌لولهٔ صوتی HA، ovos-persona-server به‌عنوان یک عامل گفت‌وگویی، و HiveMind برای نمایش دستگاه‌های OVOS به‌عنوان موجودیت‌های بومی HA.


پل‌های Wyoming: افزونه‌های صوتی OVOS در Home Assistant

پروتکل Wyoming رابط استاندارد HA برای سرویس‌های خارجی ASR، TTS و wakeword است. ما پل‌های Wyoming ساختیم که هر افزونهٔ OVOS را روی آن پروتکل در دسترس می‌گذارند — یعنی HA به هر افزونه در بوم‌سازگان OVOS دسترسی پیدا می‌کند، نه فقط یک فهرست کوتاه گزیده.

  • Wyoming OVOS ASR: فرمان‌های گفتاری را به متن تبدیل می‌کند تا Home Assistant آن‌ها را بفهمد.
  • Wyoming OVOS TTS: به Home Assistant امکان می‌دهد پاسخ‌ها را با گزینه‌های صوتی متنوع OVOS بیان کند.
  • Wyoming OVOS Wakeword: wakeword های سفارشی را یکپارچه می‌کند و به راه‌اندازی Home Assistant شما اجازه می‌دهد فقط زمانی پاسخ دهد که عبارت راه‌اندازِ انتخابی شما را بشنود.

پروژهٔ OVOS Wyoming Docker این سرویس‌ها را بسته‌بندی می‌کند تا با یک docker compose up در دسترس باشند.

TTS چندزبانه از پروژه‌های زبانیِ با بودجهٔ عمومی

دسترس‌پذیری زبانی هم بخشی از دسترس‌پذیری است. این یکپارچه‌سازی صداهای باکیفیت و بودجهٔ عمومی از پروژه‌هایی مانند ILENIA را به مخاطبان گسترده‌تری می‌رساند. کاربران Home Assistant صداهایی طبیعی برای زبان‌هایی مانند کاتالان و گالیسیایی، مستقیماً از پروژه‌هایی که آن‌ها را ساخته‌اند، به دست می‌آورند.

  • Matxa TTS برای کاتالان: افزونهٔ ovos-tts-plugin-matxa-multispeaker-cat قابلیت تبدیل متن به گفتار چندگوینده را برای زبان کاتالان فراهم می‌کند.
  • NosTTS برای گالیسیایی: افزونهٔ ovos-tts-plugin-nos تبدیل متن به گفتار استوار را در زبان گالیسیایی ارائه می‌دهد.

لوگوی ILENIA


استفاده از OVOS به‌عنوان یک عامل گفت‌وگویی برای Home Assistant

می‌خواهید یک گام فراتر بروید؟ می‌توانید OVOS را با استفاده از یکپارچه‌سازی Ollama به‌عنوان یک عامل گفت‌وگویی تمام‌عیار برای Home Assistant راه‌اندازی کنید.

راه‌اندازی ollama در Home Assistant

در این راه‌اندازی، Home Assistant متن کاربر را به ovos-persona-server می‌سپارد؛ OVOS نیت را تشخیص می‌دهد و پاسخ را برمی‌گرداند تا Home Assistant آن را بیان کند. و از آنجا که ovos-persona-server نقاط پایانی سازگار با Ollama را در دسترس می‌گذارد، همان سرور به هر برنامه‌ای که با API‌های Ollama یا OpenAI صحبت می‌کند وصل می‌شود — نه فقط Home Assistant.

گفت‌وگو با OVOS در Home Assistant


OVOS همراه با Voice PE

Home Assistant Voice Preview Edition یک ماهوارهٔ سخت‌افزاری اختصاصی برای خط‌لولهٔ صوتی HA است. این دستگاه با تمام سرویس‌های Wyoming که در بالا توضیح داده شد کار می‌کند — آن را به هر نمونهٔ در حال اجرای wyoming-ovos-stt، wyoming-ovos-tts یا wyoming-ovos-wakeword متصل کنید.

پیکربندی Home Assistant Voice Preview Edition


نمایش دستگاه‌های OVOS به‌عنوان موجودیت‌های Home Assistant با HiveMind

اگر دستگاه‌های اختصاصی OVOS دارید، یکپارچه‌سازی HiveMind HomeAssistant آن‌ها را به‌صورت موجودیت‌های بومی در Home Assistant نمایان می‌کند — یک پنل کنترل یکپارچه برای کل مجموعه.

راه‌اندازی یکپارچه‌سازی HiveMind:

برای یکپارچه‌سازی دستگاه‌های OVOS از طریق HiveMind، معمولاً یکپارچه‌سازی HiveMind را در Home Assistant اضافه می‌کنید. این کار شامل ارائهٔ جزئیات اتصال مانند یک name برای یکپارچه‌سازی، یک access_key، password، site_id، host (نشانی IP یا نام میزبانِ سرور HiveMind شما) و port (که به‌طور پیش‌فرض 5678 است) می‌شود. بسته به راه‌اندازی‌تان ممکن است گزینه‌هایی نیز برای allow_self_signed گواهی‌ها یا فعال‌سازی legacy_audio داشته باشید.

راه‌اندازی HiveMind در Home Assistant

کنترل‌های در دسترس برای دستگاه‌های OVOS:

پس از یکپارچه‌سازی، HiveMind مجموعه‌ای جامع از کنترل‌ها را برای دستگاه‌های OVOS شما مستقیماً درون Home Assistant در دسترس می‌گذارد. این به شما امکان می‌دهد جنبه‌های گوناگون دستگاه OVOS خود را از واسط Home Assistant مدیریت کنید، از جمله:

  • تغییر Listening Mode (مثلاً wakeword، شنیدنِ همیشگی)
  • ضامن Microphone Mute
  • وضعیت و کنترل‌های OCP Player
  • اقدام‌هایی مانند Reboot Device، Restart OVOS و Shutdown Device
  • تغییر Sleep Mode و SSH Service
  • شروع دستی Start Listening یا Stop شنیدن
  • کنترل سطح صدا

موجودیت‌های HiveMind در Home Assistant

یکپارچه‌سازی اعلان‌ها:

‏HiveMind همچنین به دستگاه‌های OVOS شما امکان می‌دهد به‌عنوان مقصد اعلان‌ها درون Home Assistant عمل کنند. این یعنی می‌توانید خودکارسازی‌های Home Assistant را طوری پیکربندی کنید که اعلان‌های گفتاری را مستقیماً به دستگاه‌های OVOS شما بفرستند و به آن‌ها اجازه دهند هشدارها، یادآوری‌ها یا هر اطلاعات دیگری را که پیکربندی می‌کنید «بیان» کنند. این قابلیت به‌صورت یک موجودیت اعلان‌کنندهٔ «Speak» در Home Assistant در دسترس گذاشته می‌شود.

سرویس اعلان HiveMind در Home Assistant

یکپارچه‌سازی Media Player و Music Assistant:

دستگاه‌های OVOS همچنین به‌عنوان پخش‌کننده‌های رسانه‌ای استاندارد در Home Assistant نمایان می‌شوند، بنابراین می‌توانید پخش را از واسط معمول پخش‌کنندهٔ رسانه کنترل کنید. همین یکپارچه‌سازی به Music Assistant نیز گسترش می‌یابد: موسیقی را از طریق دستگاه‌های OVOS خود پخش کنید و آن‌ها بخشی از سامانهٔ صوتی سراسری خانهٔ شما می‌شوند.

پخش‌کنندهٔ HiveMind در Home Assistant

پخش‌کنندهٔ HiveMind در Music Assistant


کنترل موجودیت‌های Home Assistant از OVOS

skill-homeassistant که توسط جامعه نگهداری می‌شود، به OVOS کنترل مستقیم بر موجودیت‌های Home Assistant از طریق HA REST API می‌دهد. آن را روی دستگاه OVOS خود نصب کنید و می‌توانید بگویید «چراغ‌های اتاق نشیمن را روشن کن» یا «ترموستات را روی ۲۱ درجه تنظیم کن» — کاملاً محلی، بدون ابر.


نقاط ضعف کنونی

پل‌های Wyoming و یکپارچه‌سازی HiveMind پخته‌ترین بخش‌های این مجموعه‌اند؛ مسیر استفاده از سرور پرسونا به‌عنوان عامل گفت‌وگویی تازه‌تر است و اگر می‌خواهید سقف توانایی ترکیب OVOS و HA را ببینید، ارزش امتحان کردن اول را دارد. گزارش اشکال‌ها و PR ها در تمام مخزن‌های پیوندشده در بالا خوش‌آمد است.


‏OpenVoiceOS یک پروژهٔ جامعه‌محور است — اگر باور دارید دستیارهای صوتی باید باز، فراگیر و در کنترل کاربر باشند، از این پروژه با کمک مالی، دادهٔ باز یا ترجمه پشتیبانی کنید.