אנחנו ממשיכים מהניסוי הקודם, ובגרסה M68 של Chrome הוספנו אילוץ MediaStreamTrack
ניסיוני כדי לקבוע באיזה מבטל הדהוד נעשה שימוש, הוספנו תמיכה במבטל הדהוד מקורי ב-Windows ושפרנו את הפונקציונליות של מבטל הדהוד מקורי ב-macOS. כמו בעבר, כל התכונות האלה זמינות רק במסגרת גרסת המקור לניסיון, כך שצריך להירשם או להפעיל את Chrome עם דגל בשורת הפקודה כדי לנסות אותן. מידע נוסף זמין בהמשך.
מה חדש?
קודם כול, עכשיו אפשר לקבוע באיזה מבטל הדהוד נעשה שימוש על ידי הכללת אילוץ חדש בקריאות getUserMedia
, למשל:
echoCancellationType: type
כאשר type
יכול להיות אחד מהערכים הבאים:
browser
כדי להשתמש בהטמעת התוכנה שסופקו על ידי הדפדפן.system
כדי להשתמש בהטמעה שסופקו על ידי המערכת הבסיסית. נכון לעכשיו, זו אחת מההטמעות ב-macOS וב-Windows.
אם לא תוסיפו את האילוץ, Chrome יבחר את סוג ביטול ההד כמו תמיד: אם יש ביטול הד בחומרה, המערכת תשתמש בו, אחרת המערכת תשתמש בביטול הד התוכנה של Chrome. בלי לציין את האילוץ, Chrome לעולם לא יבחר באחת משתי הטכנולוגיות הניסיוניות לביטול הדהוד שנכללות בתוכנית הניסוי הזו.
מכיוון ש-echoCancellationType
פועל כמו כל אילוץ אחר, אפשר לציין את system
כערך אידיאלי ולאפשר ל-Chrome להשתמש בו אם הוא זמין, או לעבור לערך של browser
במקרה אחר. הערך browser
echoCancellationType תמיד זמין ב-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 לא הושפע מחוסר הפונקציונליות הזה, כי הוא משתמש ב-loopback פנימי כדי לבטל את האודיו של ההפעלה.
איך מפעילים את הניסוי
כדי שההתנהגות החדשה הזו תופעל באתר שלכם, עליכם להירשם לגרסת המקור לניסוי 'תמיכה ניסיונית ב-AEC מקורי'. אם רוצים רק לנסות את הניסוי באופן מקומי, אפשר להפעיל אותו בשורת הפקודה:
chrome --enable-blink-features=ExperimentalHardwareEchoCancellation
העברת הדגל הזה בשורת הפקודה תהפוך את האילוץ החדש echoCancellationType
זמין באופן גלובלי ב-Chrome בסשן הנוכחי. בעזרת האילוץ הזה תוכלו לבדוק את ביטול ההד הפנימי באפליקציה, כפי שמתואר למעלה. זהו אותו דגל בשורת הפקודה כמו בגרסת הניסיון הקודמת. ב-Chrome M68 הוא יפעיל את הפונקציונליות החדשה. הפעלת תקופת הניסיון החדשה למקור תפעיל רק את הפונקציונליות החדשה – היא לא תפעיל את תקופת הניסיון הקודמת בגרסאות ישנות יותר של Chrome.
שליחת משוב
בדומה לניסוי הקודם, אנחנו מעוניינים בביצועים האיכותיים של ביטול ההדים ב-macOS וב-Windows, בעיקר ב-macOS. נשמח גם לקבל משוב על מידת היעילות של האילוץ החדש echoCancellationType
בפועל, על מידת הקלות שבה משתמשים בו וכו'. המשוב הזה כולל את ההכללה שלו ב-getSettings
וב-getCapabilities
.
אנחנו גם רוצים לדעת איך Chrome יוצר אינטראקציה עם אפליקציות אחרות כשמשתמשים במבטלים המקוריים האלה של הדהוד, וגם אם יש בעיות יציבות או בעיות אחרות בהטמעה.
אם אתם מנסים את השיטה הזו, נשמח לקבל מכם משוב בבאג הזה. אם אפשר, יש לציין את החומרה שבה נעשה שימוש (גרסת מערכת ההפעלה, דגם החומרה, המיקרופון / האוזניות וכו'). אם אתם מבצעים ניסויים נוספים בקנה מידה רחב, נשמח לקבל קישורים לנתונים סטטיסטיים השוואתיים לגבי איכות האודיו בשיחות, בין אם הם אובייקטיביים ובין אם הם סובייקטיביים.