Meningkatkan Kualitas Audio Google Duo dengan WaveNetEQ

Panggilan internet telah menjadi bagian integral dari kehidupan jutaan orang - sehingga mereka menyederhanakan alur kerja mereka dan terhubung dengan orang yang mereka cintai. Untuk mentransfer panggilan melalui Internet, data panggilan dipecah menjadi beberapa bagian kecil yang disebut "paket". Paket pergi melalui jaringan dari pengirim ke penerima, di mana mereka dikumpulkan kembali untuk menerima aliran video dan audio terus menerus. Namun, seringkali paket tiba di penerima dalam urutan yang salah dan pada waktu yang salah - ini biasanya disebut jitter.(Gemetar) - atau benar-benar hilang. Masalah seperti itu mengurangi kualitas panggilan, karena penerima harus mencoba mengisi kekosongan, dan ini sangat memengaruhi audio dan video. Misalnya, 99% panggilan melalui Google Duo mengalami kehilangan paket, jitter berlebihan, atau latensi jaringan. Dari jumlah tersebut, 20% panggilan kehilangan lebih dari 3% data audio karena masalah jaringan, dan 10% panggilan kehilangan lebih dari 8% data.


Diagram masalah jaringan yang disederhanakan

Untuk membuat komunikasi secara real time lebih andal, Anda harus berurusan dengan paket-paket yang diperlukan yang belum mencapai penerima. Misalnya, jika Anda tidak memberikan sinyal audio terus menerus, Anda akan mendengar gangguan dan kegagapan, tetapi Anda tidak dapat menyebutnya sebagai solusi ideal untuk mencoba mengulangi sinyal yang sama berulang-ulang - ini akan mengarah pada artefak dan mengurangi kualitas panggilan secara keseluruhan. Teknologi untuk menangani situasi dengan tidak adanya paket disebut "packet loss concealment" (PLC). Modul PLC penerima bertanggung jawab untuk membuat audio (atau video) yang mengisi gangguan yang disebabkan oleh hilangnya paket, jitter yang kuat, atau masalah jaringan - masalah yang dalam kasus apa pun menyebabkan kurangnya data yang diperlukan.

Untuk mengatasi masalah audio ini, kami memperkenalkan sistem PLC baru yang disebut WaveNetEQ di Duo. Ini adalah model generatif yang didasarkan pada teknologi WaveRNN dari DeepMind , yang dilatih pada kumpulan besar data ucapan untuk melengkapi secara realistis segmen bicara. Dia mampu sepenuhnya mensintesis sinyal suara dari fragmen ucapan yang hilang. Karena panggilan ke Duo menjalani enkripsi ujung ke ujung, semua pemrosesan harus dilakukan pada perangkat itu sendiri. Model WaveNetEQ cukup cepat untuk telepon, sambil tetap memberikan kualitas audio yang sangat baik dan PLC yang terdengar lebih alami dibandingkan dengan sistem lain yang ada.

Sistem PLC baru untuk Duo


Seperti banyak program komunikasi berbasis web lainnya, Duo didasarkan pada proyek WebRTC open source . Untuk menyembunyikan konsekuensi dari hilangnya paket, komponen sistem NetEQ menggunakan metode pemrosesan sinyal yang menganalisis ucapan dan menghasilkan kontinuitas kontinu - ini bekerja dengan baik untuk kerugian kecil (hingga 20 ms), tetapi mulai terdengar buruk ketika kehilangan paket menyebabkan terputusnya komunikasi 60 ms atau lebih lama. Dalam kasus seperti itu, ucapannya menjadi mirip dengan ucapan robot yang berulang - suara khas ini, sayangnya, diketahui banyak penggemar membuat panggilan melalui Internet.

Untuk meningkatkan kualitas pemrosesan paket yang hilang, kami mengganti NetEQ PLC dengan versi WaveRNN yang dimodifikasi. Ini adalah jaringan saraf berulang yang dirancang untuk sintesis ucapan, yang terdiri dari dua bagian - jaringan saraf autoregresif dan terkondisi. Jaringan saraf autoregresif bertanggung jawab atas kelangsungan sinyal dan menghasilkan struktur bicara jangka pendek dan menengah. Dalam proses operasinya, setiap fragmen yang dihasilkan tergantung pada hasil sebelumnya dari jaringan. Jaringan saraf yang dikondisikan memengaruhi autoregresif sehingga menghasilkan sinyal audio yang sesuai dengan data yang masuk lebih lambat.

Namun, WaveRNN, seperti pendahulunya, WaveNet, dibuat dengan tujuan mengubah teks menjadi ucapan (text-to-speech, TTS). Karena WaveRNN adalah model TTS, itu diberikan informasi tentang apa yang perlu dikatakan dan bagaimana. Jaringan pendingin udara secara langsung menerima informasi ini pada input dalam bentuk fonem yang membentuk kata dan fitur prosodi (informasi non-tekstual seperti nada atau intonasi). Dalam arti tertentu, jaringan ber-AC mampu "melihat masa depan", dan kemudian mengarahkan jaringan autoregresif ke arah suara yang sesuai. Dalam hal sistem PLC dan komunikasi waktu nyata, kita tidak akan memiliki konteks seperti itu.

Untuk membuat sistem-PLC fungsional, Anda perlu mengekstrak konteks dari pidato saat ini (mis., Dari masa lalu), dan menghasilkan suara yang dapat diterima untuk kelanjutannya. Solusi kami, WaveNetEQ, melakukan keduanya. Ia menggunakan jaringan autoregresif, yang terus berbunyi jika terjadi kehilangan paket, dan jaringan saraf terkondisi yang mensimulasikan gejala jangka panjang, seperti karakteristik suara. Spektrogram dari sinyal audio sebelumnya diumpankan ke input jaringan saraf terkondisi, dari mana sejumlah informasi diekstraksi yang menggambarkan prosodi dan konten teks. Informasi terkonsentrasi ini dimasukkan ke dalam jaringan saraf autoregresif, menggabungkannya dengan audio terbaru untuk memprediksi fragmen suara berikutnya.

Ini sedikit berbeda dari prosedur yang kami ikuti selama pelatihan WaveNetEQ. Kemudian jaringan saraf autoregresif menerima sampel suara nyata sebagai input untuk langkah berikutnya, daripada menggunakan sampel sebelumnya. Dalam proses seperti itu, yang dikenal sebagai pemaksaan guru, dijamin bahwa model tersebut mempelajari informasi yang berharga bahkan pada tahap awal pelatihan, ketika prediksinya berkualitas buruk. Ketika model sepenuhnya terlatih dan digunakan dalam panggilan audio atau video, pelatihan yang dikenakan hanya digunakan untuk "menghangatkan" model dalam sampel pertama, dan setelah itu sudah menerima output sendiri.


Arsitektur WaveNetEQ. Selama pengoperasian jaringan saraf autoregresif, kami "menghangatkannya" melalui pelatihan dengan pemaksaan. Setelah itu, dia sudah mendapatkan jalan keluarnya sendiri. Spektrogram frekuensi kecil dari bagian audio yang panjang digunakan sebagai input untuk jaringan saraf ber-AC.

Model ini diterapkan untuk data audio dalam buffer jitter Duo. Ketika, setelah kehilangan paket, komunikasi dilanjutkan dan sinyal audio asli terus berdatangan, kami dengan cermat menggabungkan aliran audio sintetis dan nyata. Untuk menyusun dua sinyal ini dengan baik, model ini menghasilkan keluaran sedikit lebih banyak dari yang diperlukan, dan kemudian membuat transisi yang mulus dari satu ke yang lain. Ini membuat transisi menjadi mulus dan hampir tidak terdengar.


Simulasi kejadian PLC dalam aliran audio pada jendela geser 60 ms. Garis biru adalah audio asli, termasuk bagian masa lalu dan masa depan dari PLC. Pada setiap ukuran, garis oranye mewakili audio sintetis yang akan diprediksi oleh sistem WaveNetEQ jika suara dipotong sepanjang garis abu-abu vertikal.

Kehilangan paket 60 ms

[ Catatan perev.: contoh audio sangat janggal dalam penampilan, karena editor Habr tidak menyediakan kemampuan untuk menyematkan file audio. Beginilah tampilan mp4 dengan satu audio, tanpa gambar. ]

NetEQ


WaveNetEQ


NetEQ


WaveNetEQ


120 ms

NetEQ packet loss


WaveNetEQ


NetEQ


WaveNetEQ


Kami menjamin keandalan


Salah satu faktor penting yang perlu dipertimbangkan dalam PLC adalah kemampuan jaringan saraf untuk beradaptasi dengan sinyal masuk variabel, misalnya, ketika ada beberapa orang yang berbicara atau ketika kebisingan latar belakang berubah. Untuk menjamin keandalan model untuk berbagai pengguna, kami melatih WaveNetEQ pada serangkaian data suara yang diambil dari lebih dari 100 orang berbeda yang berbicara 48 bahasa berbeda. Ini memungkinkan model untuk mempelajari karakteristik umum bicara manusia, dan bukan fitur dari bahasa tertentu. Untuk memastikan pengoperasian WaveNetEQ jika terjadi kebisingan di latar belakang, ketika, misalnya, Anda menjawab panggilan saat berada di kereta atau di kafe, kami menambah data dengan mencampurnya dengan kebisingan latar belakang dari basis data yang luas.

Dan meskipun model kami dapat belajar bagaimana melanjutkan pidato Anda secara masuk akal, itu hanya bekerja untuk waktu yang singkat - itu dapat mengakhiri suku kata, tetapi tidak dapat memprediksi kata-kata. Dalam kasus packet loss selama periode waktu yang lama, kami secara bertahap mengurangi volume, dan setelah 120 ms, model hanya menghasilkan keheningan. Juga, untuk memastikan bahwa model tersebut tidak menghasilkan suku kata palsu, kami memeriksa sampel suara dari WaveNetEQ dan NetEQ menggunakan Google Cloud Speech-to-Text APIdan menemukan bahwa model secara praktis tidak mengubah persentase kesalahan dalam teks yang dihasilkan, yaitu jumlah kesalahan yang terjadi selama pengenalan suara. Kami bereksperimen dengan WaveNetEQ di Duo, dan penggunaannya berdampak positif terhadap kualitas panggilan dan pengalaman pengguna. WaveNetEQ sudah berfungsi pada semua panggilan Duo di telepon Pixel 4, dan sekarang kami sedang menerapkannya di telepon lain.

All Articles