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

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

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

רקע

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

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

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

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

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

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

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

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

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

  • אם קוראים ל-getUserMedia בלי להפעיל את echoCancellation, Chrome לא יטפל בדיכוי רעשי חומרה.

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

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

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

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

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

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

chrome --enable-blink-features=DisableHardwareNoiseSuppression

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

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

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

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

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