macOS companion app
بیدارباش صوتی (macOS)
بیدارباش صوتی و فشار برای صحبت
الزامات
بیدارباش صوتی و فشار برای صحبت به macOS 26 یا جدیدتر نیاز دارند. در نسخههای قدیمیتر macOS، کنترلها از صفحه تنظیمات صوتی پنهان میشوند؛ این صفحه الزام macOS 26 را نشان میدهد.
حالتها
- حالت واژه بیدارباش (پیشفرض): تشخیصگر گفتار همیشهروشن منتظر توکنهای محرک (
swabbleTriggerWords) میماند. هنگام تطابق، ضبط را شروع میکند، همپوشانی را با متن جزئی نشان میدهد، و پس از سکوت بهطور خودکار ارسال میکند. - فشار برای صحبت (نگهداشتن Option راست): کلید Option راست را نگه دارید تا ضبط بلافاصله آغاز شود، بدون نیاز به محرک. همپوشانی هنگام نگهداشتن ظاهر میشود؛ رها کردن، متن را نهایی میکند و پس از تاخیری کوتاه ارسال میکند تا بتوانید متن را تنظیم کنید.
رفتار زمان اجرا (واژه بیدارباش)
- تشخیصگر گفتار در
VoiceWakeRuntimeقرار دارد. - محرک فقط وقتی فعال میشود که بین واژه بیدارباش و واژه بعدی یک مکث معنادار وجود داشته باشد (فاصله حدود 0.55 ثانیه). همپوشانی/زنگ میتواند هنگام مکث و حتی پیش از آغاز فرمان شروع شود.
- پنجرههای سکوت: 2.0 ثانیه وقتی گفتار در جریان است، 5.0 ثانیه اگر فقط محرک شنیده شده باشد.
- توقف سخت: 120 ثانیه برای جلوگیری از نشستهای مهارنشده.
- حذف نوسان بین نشستها: 350 میلیثانیه.
- همپوشانی از طریق
VoiceWakeOverlayControllerبا رنگبندی ثبتشده/ناپایدار هدایت میشود. - پس از ارسال، تشخیصگر بهصورت تمیز دوباره شروع میشود تا برای محرک بعدی گوش کند.
ناورداییهای چرخه حیات
- اگر بیدارباش صوتی فعال باشد و مجوزها اعطا شده باشند، تشخیصگر واژه بیدارباش باید در حال گوشدادن باشد (بهجز هنگام ضبط صریح فشار برای صحبت).
- نمایانی همپوشانی (از جمله بستن دستی با دکمه X) هرگز نباید مانع از ازسرگیری تشخیصگر شود.
حالت خرابی همپوشانی چسبنده (قبلی)
پیشتر، اگر همپوشانی در حالت نمایان گیر میکرد و آن را دستی میبستید، بیدارباش صوتی ممکن بود «مرده» به نظر برسد، چون تلاش زمان اجرا برای شروع دوباره میتوانست بهدلیل نمایانی همپوشانی مسدود شود و شروع دوباره بعدی هم زمانبندی نمیشد.
سختسازی:
- شروع دوباره زمان اجرای بیدارباش دیگر با نمایانی همپوشانی مسدود نمیشود.
- تکمیل بستن همپوشانی از طریق
VoiceSessionCoordinatorیکVoiceWakeRuntime.refresh(...)را فعال میکند، بنابراین بستن دستی با X همیشه گوشدادن را از سر میگیرد.
جزئیات فشار برای صحبت
- تشخیص میانبر از یک پایشگر سراسری
.flagsChangedبرای Option راست (keyCode 61+.option) استفاده میکند. ما فقط رویدادها را مشاهده میکنیم (بدون بلعیدن آنها). - خط لوله ضبط در
VoicePushToTalkقرار دارد: گفتار را بلافاصله شروع میکند، بخشهای جزئی را به همپوشانی پخش میکند، و هنگام رها کردنVoiceWakeForwarderرا فراخوانی میکند. - وقتی فشار برای صحبت شروع میشود، زمان اجرای واژه بیدارباش را مکث میکنیم تا از تداخل ورودیهای صوتی جلوگیری شود؛ پس از رها کردن، بهطور خودکار دوباره شروع میشود.
- مجوزها: به میکروفون + گفتار نیاز دارد؛ دیدن رویدادها به تایید دسترسپذیری/پایش ورودی نیاز دارد.
- صفحهکلیدهای خارجی: برخی ممکن است Option راست را مطابق انتظار آشکار نکنند؛ اگر کاربران از جاافتادنها گزارش دادند، یک میانبر جایگزین ارائه کنید.
تنظیمات کاربرپسند
- کلید بیدارباش صوتی: زمان اجرای واژه بیدارباش را فعال میکند.
- نگهداشتن Option راست برای صحبت: پایشگر فشار برای صحبت را فعال میکند.
- انتخابگرهای زبان و میکروفون، سطحسنج زنده، جدول واژه محرک، آزمایشگر (فقط محلی؛ ارسال نمیکند).
- انتخابگر میکروفون اگر دستگاهی قطع شود آخرین انتخاب را حفظ میکند، راهنمای قطعبودن را نشان میدهد، و تا زمان بازگشت دستگاه موقتاً به پیشفرض سیستم برمیگردد.
- صداها: زنگها هنگام شناسایی محرک و هنگام ارسال؛ پیشفرض، صدای سیستمی «Glass» در macOS است. میتوانید برای هر رویداد هر فایلی را که
NSSoundبتواند بارگذاری کند (مثلاً MP3/WAV/AIFF) انتخاب کنید، یا بدون صدا را برگزینید.
رفتار ارسال
- وقتی بیدارباش صوتی فعال است، رونوشتها به gateway/agent فعال ارسال میشوند (همان حالت محلی در برابر راه دور که باقی برنامه mac استفاده میکند).
- پاسخها به آخرین ارائهدهنده اصلی استفادهشده تحویل داده میشوند (WhatsApp/Telegram/Discord/WebChat). اگر تحویل ناموفق باشد، خطا ثبت میشود و اجرا همچنان از طریق WebChat/گزارشهای نشست قابل مشاهده است.
بار ارسال
VoiceWakeForwarder.prefixedTranscript(_:)پیش از ارسال، راهنمای ماشین را به ابتدای متن اضافه میکند. این مسیر بین مسیرهای واژه بیدارباش و فشار برای صحبت مشترک است.
راستیآزمایی سریع
- فشار برای صحبت را روشن کنید، Option راست را نگه دارید، صحبت کنید، رها کنید: همپوشانی باید بخشهای جزئی را نشان دهد و سپس ارسال کند.
- هنگام نگهداشتن، گوشهای نوار منو باید بزرگشده بمانند (از
triggerVoiceEars(ttl:nil)استفاده میکند)؛ پس از رها کردن، پایین میآیند.
مرتبط
Was this useful?