macOS companion app

بیدارباش صوتی (macOS)

بیدارباش صوتی و فشار برای صحبت

الزامات

بیدارباش صوتی و قابلیت فشار برای صحبت به macOS 26 یا جدیدتر نیاز دارند. در نسخه‌های قدیمی‌تر macOS، کنترل‌ها از صفحه تنظیمات صدا پنهان می‌شوند و به‌جای آن، الزام macOS 26 نمایش داده می‌شود.

حالت‌ها

  • حالت واژه بیدارباش (پیش‌فرض): یک تشخیص‌دهنده گفتارِ همیشه‌فعال منتظر توکن‌های فعال‌ساز (swabbleTriggerWords) می‌ماند. در صورت تطابق، ضبط را آغاز می‌کند، هم‌پوشان را همراه با متن جزئی نمایش می‌دهد و پس از سکوت، به‌طور خودکار ارسال می‌کند.
  • فشار برای صحبت (نگه‌داشتن کلید Option راست): برای شروع فوری ضبط، کلید Option راست را نگه دارید؛ نیازی به فعال‌ساز نیست. هم‌پوشان تا زمانی که کلید نگه داشته شده نمایش داده می‌شود؛ با رها کردن کلید، ضبط نهایی می‌شود و پس از تأخیری کوتاه ارسال می‌گردد تا بتوانید متن را ویرایش کنید.

رفتار زمان اجرا (واژه بیدارباش)

  • تشخیص‌دهنده در VoiceWakeRuntime قرار دارد.
  • فعال‌ساز تنها زمانی عمل می‌کند که میان واژه بیدارباش و واژه بعدی، مکثی معنادار وجود داشته باشد (triggerPauseWindow = 0.55s). هم‌پوشان/صدای اعلان می‌تواند هنگام مکث، حتی پیش از شروع فرمان، فعال شود.
  • بازه‌های سکوت: هنگام ادامه داشتن گفتار، 2.0s (silenceWindow)؛ اگر فقط فعال‌ساز شنیده شده باشد، 5.0s (triggerOnlySilenceWindow).
  • توقف قطعی: 120s (captureHardStop) برای جلوگیری از ادامه کنترل‌نشده نشست‌ها.
  • فاصله‌گذاری میان نشست‌ها: 350ms (debounceAfterSend) پس از ارسال.
  • هم‌پوشان از طریق VoiceWakeOverlayController کنترل می‌شود و متن قطعی/موقت را با رنگ‌های متفاوت نمایش می‌دهد.
  • پس از ارسال، تشخیص‌دهنده به‌صورت پاک راه‌اندازی مجدد می‌شود تا به فعال‌ساز بعدی گوش دهد.

قواعد ثابت چرخه حیات

  • اگر بیدارباش صوتی فعال باشد و مجوزها اعطا شده باشند، تشخیص‌دهنده واژه بیدارباش همواره در حال گوش‌دادن می‌ماند، مگر هنگام ضبط فعالِ فشار برای صحبت.
  • بسته‌شدن هم‌پوشان، از جمله بستن دستی با دکمه X، همیشه تشخیص‌دهنده را از سر می‌گیرد: VoiceSessionCoordinator.overlayDidDismiss در تمام مسیرهای بسته‌شدن، VoiceWakeRuntime.refresh(state:) را فراخوانی می‌کند. برای آشنایی با مدل نشست/توکن، به هم‌پوشان صوتی مراجعه کنید.

جزئیات فشار برای صحبت

  • تشخیص کلید میان‌بر از یک پایشگر سراسری .flagsChanged برای کلید Option راست (keyCode 61 + .option) استفاده می‌کند. این پایشگر فقط رویدادها را مشاهده می‌کند و هرگز آن‌ها را مسدود نمی‌کند.
  • ضبط در VoicePushToTalk انجام می‌شود: گفتار را فوراً آغاز می‌کند، نتایج جزئی را به هم‌پوشان می‌فرستد و هنگام رها کردن کلید، VoiceWakeForwarder را فراخوانی می‌کند.
  • آغاز فشار برای صحبت، زمان اجرای واژه بیدارباش را متوقف می‌کند تا از رقابت ورودی‌های صوتی جلوگیری شود؛ پس از رها کردن کلید، به‌طور خودکار دوباره آغاز می‌شود.
  • مجوزها: به میکروفون و گفتار نیاز دارد؛ دریافت رویدادهای صفحه‌کلید به تأیید دسترس‌پذیری/پایش ورودی نیاز دارد.
  • صفحه‌کلیدهای خارجی: برخی از آن‌ها کلید Option راست را مطابق انتظار در دسترس قرار نمی‌دهند. اگر کاربران از تشخیص‌ندادن کلید گزارش دادند، یک میان‌بر جایگزین ارائه کنید.

تنظیمات قابل مشاهده برای کاربر

  • کلید تغییر وضعیت بیدارباش صوتی: زمان اجرای واژه بیدارباش را فعال می‌کند.
  • نگه‌داشتن Option راست برای صحبت: پایشگر فشار برای صحبت را فعال می‌کند.
  • انتخاب‌گرهای زبان و میکروفون، سطح‌سنج زنده، جدول واژه‌های فعال‌ساز و یک آزمایش‌گر (فقط محلی و بدون ارسال).
  • اگر دستگاهی قطع شود، انتخاب‌گر میکروفون آخرین گزینه را حفظ می‌کند، پیام قطع‌بودن را نمایش می‌دهد و تا زمان بازگشت دستگاه، موقتاً از گزینه پیش‌فرض سیستم استفاده می‌کند.
  • صداها: هنگام تشخیص فعال‌ساز و ارسال، صدای اعلان پخش می‌شود و صدای سیستمی «Glass» در macOS گزینه پیش‌فرض است. برای هر رویداد، هر فایل قابل بارگذاری با NSSound (برای مثال MP3/WAV/AIFF) را انتخاب کنید یا بدون صدا را برگزینید.

رفتار ارسال

  • هنگام ارسال، VoiceWakeForwarder.selectedSessionOptions در صورت تنظیم‌بودن کلید نشست فعال WebChat، آن را انتخاب می‌کند؛ در غیر این صورت، کلید نشست اصلی Gateway را برمی‌گزیند.
  • آن نشست را از طریق sessions.list پیدا می‌کند و کانال و مقصد تحویل را از زمینه تحویل نشست استخراج می‌کند (با بازگشت به آخرین کانال/مقصد و سپس کلید نشست تجزیه‌شده)؛ اگر هیچ موردی پیدا نشود، WebChat به‌عنوان پیش‌فرض انتخاب می‌شود.
  • اگر تحویل ناموفق باشد، خطا ثبت می‌شود (دسته voicewake.forward) و اجرا همچنان از طریق گزارش‌های WebChat/نشست قابل مشاهده است.

محتوای ارسال

  • VoiceWakeForwarder.prefixedTranscript(_:) پیش از رونوشت، یک خط راهنمای ماشینی (نام میزبان تشخیص‌داده‌شده، با بازگشت به «این Mac») اضافه می‌کند که میان مسیرهای واژه بیدارباش و فشار برای صحبت مشترک است.

بررسی سریع

  • فشار برای صحبت را فعال کنید، Option راست را نگه دارید، صحبت کنید و سپس رها کنید: هم‌پوشان باید نتایج جزئی را نمایش دهد و سپس آن‌ها را ارسال کند.
  • هنگام نگه‌داشتن کلید، گوش‌های نوار منو باید بزرگ باقی بمانند (triggerVoiceEars(ttl: nil))؛ پس از رها کردن کلید، به حالت عادی بازمی‌گردند.

مرتبط

Was this useful?
On this page

On this page