Kilka dni temu programiści Google ogłosili w poście na blogu, że zdecydowali się udostępnić kod źródłowy Lyry. Lyra wykorzystuje uczenie maszynowe, aby umożliwić wysokiej jakości połączenia głosowe w sytuacjach niskiej przepustowości.
Przynosi to korzyści i pozwala innym deweloperom udoskonalać swoje aplikacje komunikacyjne i rozwijać Lyrę w nowych kierunkach.
Kodeki, które od dziesięcioleci były podstawą aplikacji multimedialnych, umożliwiły aplikacjom wymagającym dużej przepustowości wydajną transmisję danych.
W związku z tym rozwój kodeków, zarówno dla sygnału wideo, jak i audio, stanowi ciągłe wyzwanie : zapewnienie coraz wyższej jakości, wykorzystanie mniejszej ilości danych i minimalizowanie opóźnień w komunikacji w czasie rzeczywistym.
Chociaż może się wydawać, że wideo zużywa znacznie więcej pasma niż dźwięk, nowoczesne kodeki wideo mogą osiągać niższe szybkości transmisji niż niektóre z obecnie używanych wysokiej jakości kodeków mowy.
Połączenie kodeków głosowych i wideo o niskiej przepływności może zapewnić wysoką jakość połączeń wideo nawet w sieciach o niskiej przepustowości. Jednak historycznie rzecz biorąc, im niższa przepływność kodeka audio, tym mniej zrozumiały i bardziej mechaniczny staje się sygnał głosowy.
Ponadto, chociaż niektórzy ludzie mają dostęp do stałej, wysokiej jakości sieci szerokopasmowej, ten poziom łączności nie jest uniwersalny, a nawet ludzie mieszkający w dobrze skomunikowanych obszarach mają czasami słabe połączenia sieciowe, słabe połączenia sieciowe i brak łączności.
Aby rozwiązać ten problem, Google stworzyło Lyrę, wysokiej jakości kodek głosowy o bardzo niskiej przepływności , który umożliwia komunikację głosową nawet w najwolniejszych sieciach.
Aby to osiągnąć, Google zastosowało tradycyjne techniki kodowania, wykorzystując jednocześnie postęp w uczeniu maszynowym i modele trenowane na podstawie tysięcy godzin danych, aby stworzyć nową metodę kompresji i przesyłania sygnałów głosowych.
Kod Lyry został napisany w języku C++, co zapewnia szybkość, wydajność i interoperacyjność. Do kompleksowego testowania jednostkowego wykorzystuje także framework Bazel z Abseil oraz framework GoogleTest.
Podstawowy interfejs API zapewnia interfejs do kodowania i dekodowania na poziomie pakietów i plików. Dostarczany jest również kompletny łańcuch narzędzi do przetwarzania sygnałów, zawierający różne filtry i transformacje.
„Nasza przykładowa aplikacja integruje się z Android NDK, aby pokazać, jak zintegrować natywny kod Lyry z aplikacją na Androida opartą na Javie. Zapewniamy również wagi wektorów i kwantyfikatory potrzebne do uruchomienia Lyry ”- powiedział Google. Ta wersja zapewnia programistom niezbędne narzędzia do kodowania i dekodowania dźwięku za pomocą Lyry, zoptymalizowanej dla 64-bitowej platformy Android ARM, z wersją dla systemu Linux.
Cechy są dekodowane do postaci falowej przy użyciu modelu generatywnego. Modele generatywne to specjalny typ modelu uczenia maszynowego, dobrze nadający się do odtwarzania pełnego przebiegu audio z ograniczonej liczby funkcji.
Architektura Lyry jest bardzo podobna do tradycyjnych kodeków audio , które od dziesięcioleci stanowią podstawę komunikacji internetowej. Chociaż te tradycyjne kodeki opierają się na technikach cyfrowego przetwarzania sygnału, siła Lyry tkwi w zdolności modelu generatywnego do rekonstrukcji wysokiej jakości sygnału głosowego.
Google wdrożył Lyrę w swojej bezpłatnej aplikacji do rozmów wideo Duo i powiedział, że tworzy kod open source, ponieważ uważa, że może być odpowiedni dla innych aplikacji.
Google uważa, że istnieje wiele aplikacji, do których Lyra może być odpowiednia, niezależnie od tego, czy chodzi o archiwizowanie dużych ilości głosu, oszczędzanie baterii czy łagodzenie przeciążenia sieci w ruchliwych sytuacjach.
„Z niecierpliwością czekamy na kreatywność charakteryzującą społeczność open source zastosowaną do Lyry w celu dostarczania potężnych i unikalnych aplikacji” - powiedział Google.
Źródło: https://opensource.googleblog.com