Verbessern der Audioqualität von Google Duo mit WaveNetEQ

Internetanrufe sind zu einem festen Bestandteil des Lebens von Millionen von Menschen geworden. Sie vereinfachen ihren Workflow und verbinden sich mit ihren Lieben. Um einen Anruf über das Internet weiterzuleiten, werden die Anrufdaten in kleine Teile unterteilt, die als "Pakete" bezeichnet werden. Pakete werden vom Absender zum Empfänger durch das Netzwerk geleitet, wo sie zurückgesammelt werden, um einen kontinuierlichen Video- und Audiostream zu empfangen. Oft kommen Pakete jedoch in der falschen Reihenfolge und zur falschen Zeit beim Empfänger an - dies wird normalerweise als Jitter bezeichnet.(zitternd) - oder völlig verloren. Solche Probleme beeinträchtigen die Qualität von Anrufen, da der Empfänger versuchen muss, die Lücken zu schließen, was sowohl Audio als auch Video ernsthaft beeinträchtigt. Beispielsweise treten bei 99% der Anrufe über Google Duo Paketverluste, übermäßiger Jitter oder Netzwerklatenz auf. Von diesen verlieren 20% der Anrufe mehr als 3% der Audiodaten aufgrund von Netzwerkproblemen, und 10% der Anrufe verlieren mehr als 8% der Daten.


Vereinfachtes Netzwerkproblemdiagramm

Um die Kommunikation in Echtzeit zuverlässiger zu gestalten, müssen Sie sich irgendwie mit den notwendigen Paketen befassen, die den Adressaten nicht erreicht haben. Wenn Sie beispielsweise kein kontinuierliches Audiosignal geben, hören Sie Unterbrechungen und Stottern. Sie können es jedoch nicht als ideale Lösung bezeichnen, um zu versuchen, dasselbe Signal immer wieder zu wiederholen. Dies führt zu Artefakten und verringert die Gesamtanrufqualität. Die Technologie zur Behandlung der Situation ohne Pakete wird als "Packet Loss Concealment" (PLC) bezeichnet. Das SPS-Modul des Empfängers ist für die Erstellung von Audio (oder Video) verantwortlich, das die durch Paketverlust, starken Jitter oder Netzwerkprobleme verursachten Unterbrechungen ausfüllt - Probleme, die in jedem Fall zu einem Mangel an erforderlichen Daten führen.

Um diese Audioprobleme zu lösen, haben wir in Duo ein neues SPS-System namens WaveNetEQ eingeführt. Dies ist ein generatives Modell, das auf der WaveRNN- Technologie von DeepMind basiert und auf einer großen Anzahl von Sprachdaten trainiert wird, um Sprachsegmente realistisch zu ergänzen. Sie ist in der Lage, das Tonsignal der fehlenden Sprachfragmente vollständig zu synthetisieren. Da Anrufe bei Duo einer End-to-End-Verschlüsselung unterzogen werden, muss die gesamte Verarbeitung auf dem Gerät selbst erfolgen. Das WaveNetEQ-Modell ist schnell genug für ein Telefon und bietet dennoch eine hervorragende Audioqualität und eine natürlich klingende SPS im Vergleich zu anderen vorhandenen Systemen.

Neues SPS-System für Duo


Wie viele andere webbasierte Kommunikationsprogramme basiert Duo auf dem Open-Source-WebRTC-Projekt . Um die Folgen eines Paketverlusts zu verbergen, verwendet die NetEQ-Systemkomponente Signalverarbeitungsmethoden, die Sprache analysieren und kontinuierliche Kontinuität erzeugen. Dies funktioniert gut bei kleinen Verlusten (bis zu 20 ms), klingt jedoch schlecht, wenn Paketverlust zu Kommunikationsunterbrechungen von 60 ms führt oder länger. In solchen Fällen ähnelt die Sprache der sich wiederholenden Sprache des Roboters - dieser charakteristische Klang ist leider vielen Fans von Anrufen über das Internet bekannt.

Um die Qualität der Paketverlustverarbeitung zu verbessern, haben wir NetEQ PLC durch eine modifizierte Version von WaveRNN ersetzt. Dies ist ein wiederkehrendes neuronales Netzwerk, das für die Sprachsynthese entwickelt wurde und aus zwei Teilen besteht - autoregressiven und konditionierten neuronalen Netzwerken. Das autoregressive neuronale Netzwerk ist für die Kontinuität des Signals verantwortlich und erzeugt eine kurz- und mittelfristige Sprachstruktur. Während des Betriebs hängt jedes generierte Fragment von den vorherigen Ergebnissen des Netzwerks ab. Ein konditioniertes neuronales Netzwerk wirkt sich autoregressiv aus, so dass es ein Audiosignal erzeugt, das langsamer eingehenden Daten entspricht.

WaveRNN wurde jedoch wie sein Vorgänger WaveNet mit dem Ziel erstellt, Text in Sprache umzuwandeln (Text-to-Speech, TTS). Da WaveRNN ein TTS-Modell ist, erhalten Sie Informationen darüber, was und wie gesagt werden muss. Ein Klimaanlagen-Netzwerk empfängt diese Informationen direkt am Eingang in Form von Phonemen, aus denen das Wort und die Merkmale der Prosodie bestehen (z. B. nicht-textuelle Informationen wie Tonhöhe oder Intonation). In gewisser Weise kann ein klimatisiertes Netzwerk "in die Zukunft schauen" und dann das autoregressive Netzwerk auf seine entsprechenden Geräusche umleiten. Im Fall des SPS-Systems und der Echtzeitkommunikation werden wir keinen solchen Kontext haben.

Um ein funktionierendes SPS-System zu erstellen, müssen Sie sowohl den Kontext aus der aktuellen Sprache (d. H. Aus der Vergangenheit) extrahieren als auch einen akzeptablen Klang für dessen Fortsetzung erzeugen. Unsere Lösung WaveNetEQ bietet beides. Es verwendet ein autoregressives Netzwerk, das im Falle eines Paketverlusts weiterhin ertönt, und ein konditioniertes neuronales Netzwerk, das Langzeitsymptome wie Spracheigenschaften simuliert. Das Spektrogramm des vorherigen Audiosignals wird dem Eingang des konditionierten neuronalen Netzwerks zugeführt, aus dem eine begrenzte Menge an Informationen extrahiert wird, die Prosodie und Textinhalt beschreiben. Diese konzentrierten Informationen werden in ein autoregressives neuronales Netzwerk eingespeist und mit neuem Audio kombiniert, um das nächste Klangfragment vorherzusagen.

Dies unterscheidet sich geringfügig von dem Verfahren, das wir während des WaveNetEQ-Trainings befolgt haben. Dann erhielt das autoregressive neuronale Netzwerk ein echtes Klangbeispiel als Eingabe für den nächsten Schritt, anstatt das vorherige Beispiel zu verwenden. In einem solchen Prozess, der als Lehrerzwang bezeichnet wird, wird garantiert, dass das Modell bereits in den frühen Phasen des Trainings wertvolle Informationen lernt, wenn seine Vorhersagen von schlechter Qualität sind. Wenn das Modell vollständig trainiert und für Audio- oder Videoanrufe verwendet wird, wird das auferlegte Training nur verwendet, um das Modell auf der ersten Probe aufzuwärmen, und danach erhält es bereits seine eigene Ausgabe.


WaveNetEQ-Architektur. Während des Betriebs eines autoregressiven neuronalen Netzwerks „erwärmen“ wir es durch Training mit Auferlegung. Danach bekommt sie bereits einen eigenen Ausgang zum Eingang. Ein kleinfrequentes Spektrogramm aus langen Audioabschnitten wird als Eingang für ein klimatisiertes neuronales Netzwerk verwendet.

Dieses Modell wird auf Audiodaten in einem Duo-Jitterpuffer angewendet. Wenn nach einem Paketverlust die Kommunikation wieder aufgenommen wird und das reale Audiosignal weiterhin ankommt, kombinieren wir die synthetischen und realen Audiostreams sorgfältig. Um diese beiden Signale am besten zusammenzusetzen, erzeugt das Modell etwas mehr Ausgabe als erforderlich und wechselt dann reibungslos von einem zum anderen. Dies macht den Übergang reibungslos und praktisch geräuschlos.


Simulation von SPS-Ereignissen in einem Audiostream in einem 60-ms-Schiebefenster. Die blaue Linie ist echtes Audio, einschließlich vergangener und zukünftiger Teile der SPS. Bei jeder Messung stellt die orange Linie das synthetische Audio dar, das das WaveNetEQ-System vorhersagen würde, wenn der Ton entlang der vertikalen grauen Linie geschnitten würde.

60 ms Paketverlust

[ Hinweis perev .: Beispiele für Audio sehen so ungeschickt aus, da der Habr-Editor nicht die Möglichkeit bietet, Audiodateien einzubetten. So sieht mp4 mit einem Audio ohne Bild aus. ]

NetEQ


WaveNetEQ


NetEQ


WaveNetEQ


120 ms

NetEQ-Paketverlust


WaveNetEQ


NetEQ


WaveNetEQ


Wir garantieren Zuverlässigkeit


Einer der wichtigen Faktoren, die in der SPS berücksichtigt werden sollten, ist die Fähigkeit des neuronalen Netzwerks, sich an variable eingehende Signale anzupassen, beispielsweise wenn mehrere sprechende Personen anwesend sind oder wenn sich das Hintergrundgeräusch ändert. Um die Zuverlässigkeit des Modells für eine Vielzahl von Benutzern zu gewährleisten, haben wir WaveNetEQ auf einer Reihe von Sprachdaten geschult, die von mehr als 100 verschiedenen Personen stammen, die 48 verschiedene Sprachen sprechen. Dies ermöglichte es dem Modell, die allgemeinen Merkmale der menschlichen Sprache und nicht die Merkmale einer bestimmten Sprache zu lernen. Um den Betrieb von WaveNetEQ bei Hintergrundgeräuschen zu gewährleisten, wenn Sie beispielsweise einen Anruf in einem Zug oder in einem Café entgegennehmen, ergänzen wir die Daten, indem wir sie mit Hintergrundgeräuschen aus einer umfangreichen Datenbank mischen.

Und obwohl unser Modell lernen kann, wie Sie Ihre Sprache plausibel fortsetzen können, funktioniert es nur für kurze Zeiträume - es kann Silben beenden, aber keine Wörter vorhersagen. Bei Paketverlust über lange Zeiträume verringern wir allmählich die Lautstärke, und nach 120 ms erzeugt das Modell nur noch Stille. Um sicherzustellen, dass das Modell keine falschen Silben erzeugt, haben wir die Klangbeispiele von WaveNetEQ und NetEQ mithilfe der Google Cloud Speech-to-Text-API untersuchtund festgestellt, dass das Modell den Prozentsatz der Fehler im resultierenden Text, dh die Anzahl der Fehler, die während der Spracherkennung auftreten, praktisch nicht ändert. Wir haben bei Duo mit WaveNetEQ experimentiert, und seine Verwendung hat sich positiv auf die Anrufqualität und die Benutzererfahrung ausgewirkt. WaveNetEQ funktioniert bereits bei allen Duo-Anrufen auf Pixel 4-Telefonen, und jetzt stellen wir es auf anderen Telefonen bereit.

All Articles