لغو اکو بومی بیشتر

ما به آزمایش قبلی ادامه می‌دهیم و در Chrome M68، یک محدودیت آزمایشی MediaStreamTrack برای کنترل اینکه کدام لغو کننده اکو استفاده می‌شود، اضافه کرده‌ایم، پشتیبانی از یک لغو اکو بومی در ویندوز و همچنین بهبود عملکرد لغو کننده اکو بومی را اضافه کرده‌ایم. در macOS مانند قبل، همه اینها پشت یک نسخه آزمایشی اصلی است، بنابراین اگر می‌خواهید آن را امتحان کنید، باید ثبت‌نام کنید یا Chrome را با پرچم خط فرمان راه‌اندازی کنید. برای اطلاعات بیشتر، به قسمت پایین مراجعه کنید .

چه خبر؟

اول از همه، اکنون می توان کنترل کرد که از کدام یک از لغو کننده های اکو استفاده می شود، با گنجاندن یک محدودیت جدید در تماس های getUserMedia ، به عنوان مثال:

echoCancellationType: type

که در آن type می تواند یکی از موارد زیر باشد:

  • browser برای استفاده از پیاده سازی نرم افزار ارائه شده توسط مرورگر؛ یا
  • system برای استفاده از پیاده سازی ارائه شده توسط سیستم زیربنایی. در حال حاضر، این یکی از پیاده سازی ها در macOS و ویندوز است.

اگر محدودیت را کنار بگذارید، Chrome لغو کننده اکو را مانند همیشه انتخاب می‌کند: اگر لغو اکو سخت‌افزاری وجود داشته باشد، از آن استفاده می‌شود، در غیر این صورت، لغو اکو نرم‌افزار کروم این کار را انجام می‌دهد. بدون مشخص کردن محدودیت، Chrome هرگز یکی از دو لغو آزمایشی اکو را که بخشی از این آزمایش هستند انتخاب نمی‌کند.

از آنجایی که echoCancellationType مانند هر محدودیت دیگری کار می‌کند، می‌توان system به‌عنوان یک مقدار ایده‌آل مشخص کرد و کروم را در صورت موجود بودن از آن استفاده کرد، یا در غیر این صورت به browser بازگردد. browser echoCancellationType همیشه در Chrome موجود است. برای اینکه بفهمید کدام لغو کننده اکو انتخاب شده است، می توانید با getSettings() در آهنگ صوتی getUserMedia تماس بگیرید و مقدار قسمت echoCancellationType را بررسی کنید.

در نهایت، می‌توانید با فراخوانی getCapabilities() در MediaStreamTrack بررسی کنید که چه لغو کننده‌های اکو برای MediaStreamTrack موجود است. با این حال، echoCancellationType هنوز برای InputDeviceInfo اجرا نشده است.

پشتیبانی از لغو اکو ویندوز

ما پشتیبانی از حذف اکو بومی را گسترش داده‌ایم تا ویندوز را با استفاده از مؤلفه ضبط صدا DSP در بر گیرد. همانند حذف کننده اکو macOS، می‌خواهیم عملکرد آن را ارزیابی کنیم و ببینیم که آیا مواردی وجود دارد که عملکرد بهتری نسبت به راه‌حل نرم‌افزاری ما داشته باشد، اگر فقط به دلیل قرار گرفتن در نزدیکی سخت‌افزار صوتی. برخلاف مورد macOS، آزمایش اولیه ما روی ویندوز چندان امیدوارکننده نبوده است. ما به اصلاح پیاده سازی ادامه خواهیم داد تا ببینیم آیا می توانیم عملکرد بهتری داشته باشیم. در حال حاضر، احتمالاً بهتر است از آزمایش با حذف اکو ویندوز در مقیاس بزرگتر خودداری کنید. آن را در تنظیمات کنترل شده، مانند دستگاه محلی خود امتحان کنید، اما انتظار نداشته باشید که بی عیب و نقص کار کند!

پشتیبانی بهبود یافته لغو echo macOS

در آزمایش قبلی، اجرای macOS توانایی ردیابی صحیح دستگاه خروجی مورد استفاده را نداشت. این بدان معناست که نمی‌تواند اکو را از هر دستگاهی که دستگاه پیش‌فرض رایانه نیست لغو کند. در بسیاری از موارد، این ممکن است مشکلی نداشته باشد، زیرا macOS می‌تواند به‌طور خودکار دستگاه‌های پیش‌فرض را هنگامی که هدست‌ها و غیره وصل یا جدا می‌شوند تغییر دهد. اگرچه در همه موارد به درستی کار نمی کند.

این قابلیت به Chrome M68 اضافه شده است و هم برای macOS و هم برای حذف اکو ویندوز پیاده سازی شده است. لغو کننده اکو نرم افزار کروم تحت تأثیر این عدم عملکرد قرار نگرفته است، زیرا از یک حلقه بک داخلی برای لغو صدای پخش استفاده می کند.

چگونه آزمایش را فعال کنیم

برای دریافت این رفتار جدید در سایت خود، باید برای آزمایش مبدا "پشتیبانی تجربی برای بومی AEC" ثبت نام کنید . اگر فقط می خواهید آن را به صورت محلی امتحان کنید، آزمایش را می توان در خط فرمان فعال کرد:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

ارسال این پرچم در خط فرمان، محدودیت جدید echoCancellationType را به صورت جهانی در Chrome برای جلسه فعلی در دسترس قرار می دهد. با استفاده از این محدودیت، پس از آن می توانید حذف کننده های اکو بومی را در برنامه خود آزمایش کنید، همانطور که در بالا توضیح داده شد. این همان پرچم خط فرمان در آزمایش قبلی است. در کروم M68 عملکرد جدید را فعال می کند. فعال کردن نسخه آزمایشی مبدا جدید فقط عملکرد جدید را فعال می کند - آزمایش قبلی را در نسخه های قدیمی Chrome فعال نمی کند.

ثبت بازخورد

مانند آزمایش قبلی، ما به عملکرد کیفی macOS و Windows echo canceller علاقه مند هستیم. در درجه اول سابق همچنین می‌خواهیم در مورد اینکه محدودیت جدید echoCancellationType در عمل چقدر خوب کار می‌کند، استفاده از آن آسان است و غیره بازخورد داشته باشیم. این شامل گنجاندن آن در getSettings و getCapabilities می‌شود.

ما همچنین به نحوه تعامل Chrome با سایر برنامه‌ها هنگام استفاده از این لغو کننده‌های اکو بومی و همچنین هرگونه مشکل پایداری یا سایر مشکلات در پیاده‌سازی علاقه‌مندیم.

اگر این کار را امتحان می‌کنید، لطفاً بازخورد خود را در این باگ ثبت کنید. در صورت امکان، سخت افزار مورد استفاده (نسخه سیستم عامل، مدل سخت افزار، میکروفون / هدست / و غیره) را ذکر کنید. در صورت انجام آزمایش های بیشتر در مقیاس بزرگ، پیوندهایی به آمار مقایسه ای در مورد کیفیت تماس صوتی قدردانی می شود. چه عینی و چه ذهنی.