השבתה של סינון רעשים בחומרה

ב-Chrome 64 אנחנו מנסים התנהגות חדשה עבור שידורי אודיו מסוג getUserMedia, שמופעל בהם האילוץ echoCancellation. מה שחדש הוא ששידורים כאלה ישביתו באופן זמני את סינון הרעשים בחומרה למשך השידור. אנו צופים שהדבר ישפר את הביצועים של ביטול ההד. מאחר שהפונקציונליות הזו ניסיונית, צריך להפעיל אותה באופן מפורש. ראו בהמשך.

בשלב הזה, ההתנהגות הזו נתמכת רק במכשירי קלט מסוימים ורק ב-macOS. התמיכה מוגבלת למכשירים שבהם ניתן להחליף את המצב של 'הפחתת רעשים בסביבה' בחלונית Sound (קול) בקטע System Preferences (העדפות המערכת).

רקע

מבטל הד מנסה להסיר כל צליל שמושמע ברמקולים מאות האודיו שנקלט על ידי המיקרופון. בלי זה, מה שאתם אומרים בתור צד אחד בשיחה יזוהה במיקרופון של הצדדים האחרים ויועבר אליכם. תשמע הד לעצמך!

כדי להסיר את ההד בקלות, ביטול ההד של WebRTC (שבשימוש ב-Chrome) צריך להיות אות אודיו נקי ככל האפשר מהמיקרופון. עיבוד שמבוצע לפני שהאודיו מגיע לביטול ההד, כמו ביטול רעשים בחומרה, בדרך כלל יפגע בביצועים. בנוסף, כבר קיים עיכוב של רעשים בתוכנה, אבל רק אחרי שביטול ההד מסיים את העיבוד.

פרטים על ההתנהגות החדשה

מפתחי אתרים יכולים להפעיל את ההתנהגות החדשה באתרים שלהם על ידי הצטרפות לגרסת מקור לניסיון. משתמשי הקצה יכולים להפעיל אותה באופן גלובלי על ידי העברת סימון של שורת הפקודה בהפעלת Chrome. מידע נוסף זמין בהמשך.

כשהאפשרות הזו מופעלת, ודף אינטרנט קורא ל-getUserMedia כדי לקבל אודיו ממכשיר קלט, קורים הדברים הבאים:

  • אם האילוץ echoCancellation מופעל, ביטול הרעשים בחומרה יושבת למשך שידור האודיו החדש שנוצר.

  • מאחר שההגדרה הזו חלה על המערכת כולה, היא תחול על כל שידורי קלט האודיו מאותו מכשיר (כלומר, אותו מיקרופון).

  • אחרי שהשידור האחרון שרוצים להשבית בו את הסגירה של החומרה נסגר, ביטול הרעשים של החומרה מופעל מחדש.

  • אם ביטול הרעשים בחומרה כבר הושבת מראש, המצב של Chrome לא ישתנה.

  • אם מפעילים את getUserMedia ללא הפעלת echoCancellation, Chrome לא יגע בסינון רעשים בחומרה.

מאחר שההגדרה הזו גם ניתנת לשליטה על ידי המשתמש, יש כמה אינטראקציות ספציפיות עם המשתמש:

  • אם Chrome השבית את סינון הרעשים בחומרה, והמשתמש יפעיל אותו מחדש, Chrome לא ינסה להשבית אותו שוב עבור השידור הזה.

  • אם Chrome כיבית את ביטול הרעשים בחומרה, והמשתמש מפעיל אותו מחדש ואז מכבה אותו שוב, Chrome עדיין יפעיל את התכונה מחדש כשהשידור יסתיים.

ההתנהגות נכנסת לתוקף על ידי הפעלת הניסוי. אין צורך בשינויי API.

איך מפעילים את הניסוי

כדי שהתכונה הזו תפעל באתר, עליכם להירשם לגרסת המקור לניסיון 'השבתת התכונה 'סינון רעשים''. אם רוצים לנסות את התכונה באופן מקומי, אפשר להפעיל אותה גם בשורת הפקודה:

chrome --enable-blink-features=DisableHardwareNoiseSuppression

העברת הסימון הזה בשורת הפקודה מפעילה את התכונה באופן גלובלי עבור הסשן הנוכחי.

יש כמה היבטים שברצונכם להעריך באמצעות ניסוי זה:

  • הבדלים איכותניים, בשטח, בין הפעלה של ביטול רעשים בחומרה לבין הפעלה של סינון רעשים כבוי.

  • איך שינוי ההגדרה הזו מתוך Chrome משפיע על משתמש הקצה ועל תוכנות אחרות שהם מפעילים?

נשמח לקבל משוב על שני ההיבטים האלה. האם התכונה הזו פועלת טוב יותר או פחות? האם יש בעיות בהטמעה שגורמות להתנהגויות בלתי צפויות? בכל מקרה, אם אתם מנסים את זה, נשמח אם תוכלו לשלוח משוב על הבאג הזה. אם אפשר, יש לציין את המיקרופון, האוזניות וכו' שהשתמשת בהם ואם הם תומכים בהפחתת רעשי הסביבה. אם עורכים ניסויים בקנה מידה גדול, נשמח לקבל קישורים לנתונים סטטיסטיים השוואתיים של איכות שיחת האודיו.