ביטול הד מובנה יותר

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

מה חדש?

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

echoCancellationType: type

כאשר type יכול להיות אחד מהערכים הבאים:

  • browser כדי להשתמש ביישום התוכנה שסופק על ידי הדפדפן, או
  • system כדי להשתמש בהטמעה שסופקה על ידי המערכת הבסיסית. נכון לעכשיו, זו אחת מההטמעות ב-macOS וב-Windows.

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

מכיוון ש-echoCancellationType פועל כמו כל אילוץ אחר, אפשר לציין את system כערך אידיאלי ולבקש מ-Chrome להשתמש בו אם הוא זמין, או לחזור לאפשרות browser. browser egeCancelType זמין תמיד ב-Chrome. כדי לברר באיזה ביטול הד נבחר, אפשר להתקשר ל-getSettings() בטראק האודיו getUserMedia ולבדוק את הערך בשדה echoCancellationType.

לבסוף, אפשר לבדוק אילו מבטלי הד זמינים עבור MediaStreamTrack באמצעות קריאה ל-getCapabilities(). עם זאת, הקוד echoCancellationType עדיין לא מוטמע עבור InputDeviceInfo.

תמיכה לביטול ההד של Windows

הרחבנו את התמיכה בביטול ההדים המקומיים כך שהיא תכלול את Windows באמצעות רכיב Voice Capture DSP. בדומה לביטול ההד של macOS, אנחנו רוצים להעריך את הביצועים שלו ולבדוק אם יש מקרים שבהם הוא מניב ביצועים טובים יותר מפתרון התוכנה שלנו, אם רק במיקום קרוב יותר לחומרת האודיו. בניגוד ל-macOS, הבדיקות הראשוניות שלנו ב-Windows לא כל כך מוצלחות. נמשיך להתאים את היישום כדי לראות אם נוכל להשיג ביצועים טובים יותר. נכון לעכשיו, כדאי להימנע מהתנסות עם מבטל ההד של Windows בכל קנה מידה גדול יותר. כדאי לנסות את התכונה בהגדרות מבוקרות, למשל במחשב המקומי שלכם, אבל אל תצפו שהיא תפעל בצורה חלקה!

תמיכה משופרת בביטול הד ב-macOS

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

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

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

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

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

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

שליחת משוב

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

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

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