Pembatalan gema native lebih banyak

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

Apa yang baru?

Pertama-tama, kini Anda dapat mengontrol peredam gema 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 yang mendasarinya. Saat ini, ini adalah salah satu implementasi di macOS dan Windows.

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

Karena echoCancellationType berfungsi seperti batasan lainnya, Anda dapat menentukan system sebagai nilai ideal dan meminta Chrome menggunakannya jika tersedia, atau kembali ke browser jika tidak. echoCancellationType browser selalu tersedia di Chrome. Untuk mengetahui peredam gema mana yang dipilih, Anda dapat memanggil getSettings() di 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 diimplementasikan untuk InputDeviceInfo.

Dukungan peredam gema Windows

Kami telah memperluas dukungan peredam gema native untuk menyertakan Windows menggunakan komponen Voice Capture DSP. Seperti halnya peredam gema macOS, kita ingin mengevaluasi performanya, dan melihat apakah ada kasus saat performanya lebih baik daripada solusi software kita, meskipun hanya karena ditempatkan lebih dekat ke hardware audio. Berbeda dengan kasus macOS, pengujian awal kami di Windows belum terlalu menjanjikan. Kami akan terus menyesuaikan penerapannya untuk melihat apakah kami dapat membuatnya berperforma lebih baik. Untuk saat ini, sebaiknya hindari bereksperimen dengan Windows echo canceller dalam skala yang lebih besar. Coba di setelan terkontrol, seperti di komputer lokal Anda, tetapi jangan berharap semuanya berjalan lancar.

Peningkatan dukungan pembatalan gema macOS

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

Fungsi ini telah ditambahkan ke Chrome M68 dan diterapkan untuk penghapus gema macOS dan Windows. Pengurang gema software Chrome belum dipengaruhi 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 di command line:

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

Meneruskan flag 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 flag 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 – tidak akan memicu uji coba sebelumnya di Chrome versi lama.

Mengirim masukan

Seperti pada eksperimen sebelumnya, kami tertarik dengan performa kualitatif peredam gema macOS dan Windows; terutama yang pertama. Kami juga ingin mendapatkan masukan tentang seberapa baik batasan echoCancellationType baru berfungsi dalam praktik, seberapa mudah digunakan, dll. Hal ini mencakup penyertaannya dalam getSettings dan getCapabilities.

Kami juga tertarik dengan cara Chrome berinteraksi dengan aplikasi lain saat menggunakan peredam gema native ini, serta masalah stabilitas atau masalah lainnya dengan penerapannya.

Jika Anda mencobanya, harap laporkan masukan Anda di 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 perbandingan tentang kualitas panggilan audio akan sangat membantu; baik bersifat objektif maupun subjektif.