Pembatalan gema native lebih banyak

Kami melanjutkan dari eksperimen sebelumnya dan di Chrome M68, kami telah menambahkan batasan MediaStreamTrack eksperimental untuk mengontrol pembatalan gema mana yang digunakan, menambahkan dukungan untuk pembatalan echo native di Windows, serta meningkatkan fungsi pembatalan echo native di macOS. Seperti sebelumnya, semua ini berada di balik Uji Coba Origin, sehingga Anda harus mendaftar atau memulai Chrome dengan tanda command line, jika ingin mencobanya. Untuk informasi selengkapnya, lihat di bawah.

Apa yang baru?

Pertama dan terpenting, sekarang Anda dapat mengontrol peredam gema mana yang digunakan dengan menyertakan batasan baru dalam panggilan getUserMedia, misalnya:

echoCancellationType: type

dengan type dapat berupa salah satu dari:

  • browser untuk menggunakan implementasi software yang disediakan oleh browser; atau
  • system untuk menggunakan implementasi yang disediakan oleh sistem dasar. Saat ini, ini adalah salah satu implementasi di macOS dan Windows.

Jika Anda membiarkan batasan tersebut, Chrome akan memilih peredam gema seperti selalu: jika ada pengurangan gema hardware, Chrome akan digunakan; jika tidak, peredam gema software Chrome akan digunakan. Tanpa menentukan batasan, Chrome tidak akan pernah memilih salah satu dari dua pengurang gema eksperimental yang merupakan bagian dari uji coba ini.

Karena echoCancellationType berfungsi seperti batasan lainnya, Anda dapat menentukan system sebagai nilai ideal dan membuat Chrome menggunakannya jika tersedia, atau kembali ke browser jika tidak tersedia. echoPembatalanType browser selalu tersedia di Chrome. Untuk mengetahui peredam gema mana yang dipilih, Anda dapat memanggil getSettings() pada trek audio getUserMedia dan memeriksa nilai kolom echoCancellationType.

Terakhir, Anda dapat memeriksa peredam gema yang tersedia untuk MediaStreamTrack dengan memanggil getCapabilities() di dalamnya. Namun, echoCancellationType belum diterapkan untuk InputDeviceInfo.

Dukungan pengurangan gema Windows

Kami telah memperluas dukungan pembatalan gema native untuk menyertakan Windows menggunakan komponen Voice Capture DSP. Seperti halnya echo canceller macOS, kami ingin mengevaluasi performanya, dan melihat apakah ada kasus di mana performa lebih baik daripada solusi software kami, jika hanya untuk ditempatkan lebih dekat dengan hardware audio. Berlawanan dengan macOS, pengujian awal kami di Windows tidak terlalu menjanjikan. Kami akan terus menyesuaikan implementasi tersebut untuk melihat apakah kami dapat meningkatkan performanya. Untuk saat ini, sebaiknya hindari bereksperimen dengan Windows echo canceller dalam skala yang lebih besar. Cobalah di setelan yang terkendali, seperti di komputer lokal Anda, tetapi jangan berharap berfungsi dengan sempurna.

Peningkatan dukungan pembatalan echo macOS

Selama eksperimen sebelumnya, implementasi macOS tidak memiliki kemampuan untuk melacak dengan benar perangkat output mana yang digunakan. Artinya, gema tidak dapat dibatalkan dari perangkat apa pun yang bukan perangkat default komputer. Dalam banyak kasus, hal ini mungkin tidak menjadi masalah karena macOS dapat otomatis mengalihkan perangkat default saat headset, dll. dicolokkan atau dicabut. Namun, ini tidak akan berfungsi dengan benar dalam semua kasus.

Fungsi ini telah ditambahkan ke Chrome M68 dan diterapkan untuk macOS dan Windows echo canceller. Peredam gema software Chrome tidak terpengaruh oleh kurangnya fungsi ini, karena menggunakan loopback internal untuk membatalkan audio pemutaran.

Cara mengaktifkan eksperimen

Untuk mendapatkan perilaku baru ini di situs, Anda harus mendaftar ke Uji Coba Origin "Dukungan eksperimental untuk AEC native". Jika Anda hanya ingin mencobanya secara lokal, eksperimen dapat diaktifkan pada command line:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

Meneruskan tanda ini di command line akan membuat batasan echoCancellationType baru tersedia secara global di Chrome untuk sesi saat ini. Dengan menggunakan batasan ini, Anda dapat menguji peredam gema native di aplikasi, seperti yang dijelaskan di atas. Ini adalah tanda command line yang sama seperti dalam uji coba sebelumnya; di Chrome M68, flag ini akan mengaktifkan fungsi baru. Mengaktifkan uji coba origin baru hanya akan mengaktifkan fungsi baru – tindakan ini tidak akan memicu uji coba sebelumnya di Chrome versi lama.

Mengajukan masukan

Seperti eksperimen sebelumnya, kami ingin mengetahui performa kualitatif pembatalan gema macOS dan Windows; terutama performa kualitatif. Kami juga ingin masukan tentang seberapa baik performa batasan echoCancellationType baru dalam praktiknya, seberapa mudah digunakan, dll. Ini termasuk penyertaannya dalam getSettings dan getCapabilities.

Kami juga ingin mengetahui cara Chrome berinteraksi dengan aplikasi lain saat menggunakan peredam gema native ini, serta masalah stabilitas atau masalah lain dalam implementasi.

Jika Anda mencoba fitur ini, harap berikan masukan Anda dalam bug ini. Jika memungkinkan, sertakan hardware yang digunakan (versi OS, model hardware, mikrofon / headset / dll.). Jika melakukan lebih banyak eksperimen berskala besar, link ke statistik komparatif tentang kualitas panggilan audio akan dihargai, baik objektif maupun subjektif.