Google publikuje kodek audio typu open source Lyra V2

Google wprowadziło kodek audio Lyra V2, który wykorzystuje techniki uczenia maszynowego, aby osiągnąć maksymalną jakość głosu w bardzo wolnych kanałach komunikacyjnych. Nowa wersja charakteryzuje się przejściem na nową architekturę sieci neuronowej, obsługą dodatkowych platform, rozszerzonymi możliwościami kontroli przepływności, poprawioną wydajnością i wyższą jakością dźwięku. Implementacja kodu referencyjnego jest napisana w języku C++ i rozpowszechniana na licencji Apache 2.0.

Pod względem jakości przesyłanych danych głosowych przy małych prędkościach Lyra znacząco przewyższa tradycyjne kodeki wykorzystujące metody cyfrowego przetwarzania sygnału. Aby osiągnąć wysoką jakość transmisji głosu w warunkach ograniczonej ilości przesyłanych informacji, oprócz konwencjonalnych metod kompresji dźwięku i konwersji sygnału, Lyra wykorzystuje model mowy oparty na systemie uczenia maszynowego, który pozwala na odtworzenie brakujących informacji na podstawie typowe cechy mowy.

Kodek składa się z kodera i dekodera. Algorytm kodera sprowadza się do wydobywania parametrów danych głosowych co 20 milisekund, kompresowania ich i przesyłania do odbiorcy poprzez sieć o przepływności od 3.2 kbps do 9.2 kbps. Po stronie odbiornika dekoder wykorzystuje model generatywny do rekonstrukcji pierwotnego sygnału mowy na podstawie transmitowanych parametrów audio, do których zaliczają się logarytmiczne spektrogramy kredowe, które uwzględniają charakterystyki energetyczne mowy w różnych zakresach częstotliwości i są przygotowywane z uwzględnieniem modeli percepcja słuchowa człowieka.

Lyra V2 wykorzystuje nowy model generatywny oparty na konwolucyjnej sieci neuronowej SoundStream, która ma niskie wymagania obliczeniowe, umożliwiając dekodowanie w czasie rzeczywistym nawet w systemach o niskim poborze mocy. Model zastosowany do generowania dźwięku został wytrenowany na podstawie kilku tysięcy godzin nagrań głosowych w ponad 90 językach. Do wykonania modelu używany jest TensorFlow Lite. Wydajność proponowanej implementacji jest wystarczająca do kodowania i dekodowania mowy na smartfonach z niższej półki cenowej.

Oprócz zastosowania innego modelu generatywnego, nowa wersja wyróżnia się także włączeniem do architektury kodeków łączy z kwantyzatorem RVQ (ang. Residual Vector Quantizer), który wykonywany jest po stronie nadawcy przed transmisją danych, a po stronie odbiorcy po otrzymaniu danych. Kwantyzator konwertuje parametry wytwarzane przez kodek na zestawy pakietów, kodując informację w odniesieniu do wybranej przepływności. Aby zapewnić różne poziomy jakości, zastosowano kwantyzatory dla trzech przepływności (3.2 kps, 6 kbps i 9.2 kbps). Im wyższa szybkość transmisji, tym lepsza jakość, ale większe wymagania dotyczące przepustowości.

Google publikuje kodek audio typu open source Lyra V2

Nowa architektura zmniejszyła opóźnienia w transmisji sygnału ze 100 do 20 milisekund. Dla porównania kodek Opus dla WebRTC wykazał opóźnienia na poziomie 26.5 ms, 46.5 ms i 66.5 ms przy testowanych przepływnościach. Znacząco wzrosła także wydajność kodera i dekodera – aż do 5 razy szybciej w porównaniu do poprzedniej wersji. Przykładowo w smartfonie Pixel 6 Pro nowy kodek koduje i dekoduje próbkę o długości 20 ms w czasie 0.57 ms, czyli 35 razy szybciej niż jest to wymagane do transmisji w czasie rzeczywistym.

Oprócz wydajności udało się także poprawić jakość odtwarzania dźwięku – według skali MUSHRA jakość mowy przy przepływnościach 3.2 kbps, 6 kbps i 9.2 kbps przy zastosowaniu kodeka Lyra V2 odpowiada przepływnościom 10 kbps, 13 kbps i 14 kbps w przypadku korzystania z kodeka Opus.

Źródło: opennet.ru

Dodaj komentarz