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

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

מה חדש?

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

echoCancellationType: type

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

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

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

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

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

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

הרחבנו את התמיכה בביטול ההד המקומי והיא כוללת את Windows באמצעות 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 יוצר אינטראקציה עם אפליקציות אחרות בזמן השימוש ביטולי ההד המקוריים האלה, כמו גם בעיות ביציבות או בעיות אחרות עם ההטמעה.

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