Pembatalan gema native lebih banyak

Kami melanjutkan dari eksperimen sebelumnya dan di Chrome M68, kami telah menambahkan batasan MediaStreamTrack eksperimental untuk mengontrol yang digunakan untuk membatalkan {i>echo<i}, menambahkan dukungan untuk Windows serta meningkatkan fungsionalitas {i> native echo canceller<i} pada macOS. Sama seperti sebelumnya, semua ini merupakan bagian dari Uji Coba Origin, jadi Anda harus mendaftar atau memulai Chrome dengan penanda baris perintah, jika Anda ingin mencobanya. Untuk selengkapnya informasi selengkapnya, lihat di bawah.

Apa yang baru?

Yang pertama dan terpenting, sekarang kita dapat mengontrol {i>echo<i} {i>canceller<i} 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 file. Saat ini, ini adalah salah satu implementasi di macOS dan Windows.

Jika Anda membiarkan batasan tersebut, Chrome akan memilih echo canceller seperti itu selalu memiliki: jika ada pengurangan gema perangkat keras, itu akan digunakan, jika tidak {i>echo<i} perangkat lunak Chrome akan melakukannya. Tanpa menetapkan batasan, Chrome tidak akan pernah memilih salah satu dari dua pembatalan {i>echo<i} eksperimental yang merupakan bagian dari uji coba ini.

Karena echoCancellationType berfungsi seperti batasan lainnya, Anda dapat menentukan system sebagai nilai yang ideal dan meminta Chrome menggunakannya jika tersedia, atau kembali ke browser yang sebaliknya. echoPembatalanType browser adalah selalu tersedia di Chrome. Untuk mengetahui {i>echo canceller<i} yang dipilih, Anda dapat memanggil getSettings() di trek audio getUserMedia dan memeriksa nilai kolom echoCancellationType.

Terakhir, Anda dapat memeriksa {i>echo canceller<i} yang tersedia untuk MediaStreamTrack dengan memanggil getCapabilities() di dalamnya. Namun, echoCancellationType belum diimplementasikan untuk InputDeviceInfo.

Dukungan peredam gema Windows

Kami telah memperluas dukungan native echo canceller untuk menyertakan Windows menggunakan DSP Pengambilan Suara komponen. Seperti halnya {i>echo canceller<i} di macOS, kita ingin mengevaluasi performa, dan lihat apakah ada kasus di mana performa lebih baik daripada solusi perangkat lunak, jika hanya untuk ditempatkan lebih dekat dengan perangkat keras audio. Berlawanan dengan macOS, pengujian awal kami pada Windows tidak begitu yang menjanjikan. Kami akan terus menyesuaikan implementasinya untuk melihat apakah kita bisa mendapatkannya agar berperforma lebih baik. Untuk saat ini, sebaiknya Anda tidak bereksperimen dengan Windows {i>echo canceller<i} pada skala yang lebih besar. Cobalah dalam pengaturan terkontrol, seperti di komputer lokal Anda, tetapi jangan berharap perangkat itu akan bekerja dengan sempurna.

Peningkatan dukungan pembatalan gema macOS

Selama eksperimen sebelumnya, implementasi macOS tidak memiliki kemampuan untuk melacak dengan benar perangkat {i>output<i} mana yang digunakan. Ini berarti akan tidak dapat membatalkan gema dari perangkat apa pun yang bukan merupakan setelan default komputer perangkat seluler. Di banyak kasus, hal ini mungkin tidak menjadi masalah, karena macOS dapat secara otomatis beralih perangkat default saat headset, dll. dicolokkan atau dicabut. Namun, itu tidak akan bekerja dengan benar dalam semua kasus.

Fungsi ini telah ditambahkan ke Chrome M68 dan diterapkan baik untuk {i>echo canceller<i} macOS dan Windows. Pemblokir gema perangkat lunak Chrome belum terpengaruh oleh kurangnya fungsionalitas ini, karena menggunakan {i>loopback<i} internal untuk mendapatkan audio pemutaran untuk dibatalkan.

Cara mengaktifkan eksperimen

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

chrome --enable-blink-features=ExperimentalHardwareEchoCancellation

Meneruskan tanda ini pada command line akan membuat echoCancellationType baru yang tersedia secara global di Chrome untuk sesi saat ini. Dengan menggunakan batasan ini, Anda bisa menguji pembatalan {i>echo<i} asli di aplikasi Anda, yang dijelaskan di atas. Ini adalah tanda command line yang sama seperti di uji coba sebelumnya; nyala Chrome M68 akan mengaktifkan fungsi baru. Mengaktifkan uji coba origin baru hanya akan mengaktifkan fungsi baru – fungsi ini tidak akan memicu fungsi sebelumnya di Chrome versi lama.

Mengajukan masukan

Seperti pada eksperimen sebelumnya, kita tertarik pada performa kualitatif dari {i>echo canceller<i} macOS dan Windows; terutama yang pertama. Kami juga akan seperti masukan tentang seberapa baik batasan echoCancellationType baru berfungsi di praktis, mudah digunakan, dan lain-lain. Ini termasuk penyertaannya dalam getSettings dan getCapabilities.

Kami juga tertarik dengan cara Chrome berinteraksi dengan aplikasi lain saat menggunakan pembatalan {i>echo<i} asli ini, serta masalah stabilitas atau masalah lainnya dengan implementasinya.

Jika Anda sedang mencoba fitur ini, harap berikan masukan dalam bug ini. Jika memungkinkan, sertakan perangkat keras apa yang digunakan (versi OS, model perangkat keras, mikrofon / headset / dll.). Jika melakukan lebih banyak eksperimen skala besar, tautan ke statistik komparatif tentang kualitas panggilan audio akan dihargai; apakah tujuan atau subjektif.