Facebook objavlja zvočni kodek EnCodec z uporabo strojnega učenja

Meta/Facebook (prepovedan v Ruski federaciji) je predstavil nov zvočni kodek EnCodec, ki uporablja metode strojnega učenja za povečanje kompresijskega razmerja brez izgube kakovosti. Kodek se lahko uporablja za pretakanje zvoka v realnem času in za kodiranje za kasnejše shranjevanje v datoteke. Referenčna implementacija EnCodec je napisana v Pythonu z uporabo ogrodja PyTorch in je licencirana pod licenco CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial) samo za nekomercialno uporabo.

Za prenos sta na voljo dva že pripravljena modela:

  • Vzročni model, ki uporablja frekvenco vzorčenja 24 kHz, podpira samo monofoničen zvok in je naučen na različnih zvočnih podatkih (primeren za kodiranje govora). Model se lahko uporablja za pakiranje zvočnih podatkov za prenos pri bitnih hitrostih 1.5, 3, 6, 12 in 24 kbps.
  • Nevzročni model, ki uporablja frekvenco vzorčenja 48 kHz, podpira stereo zvok in je usposobljen samo za glasbo. Model podpira bitne hitrosti 3, 6, 12 in 24 kbps.

Za vsak model je bil pripravljen dodatni jezikovni model, ki vam omogoča, da dosežete znatno povečanje kompresijskega razmerja (do 40%) brez izgube kakovosti. Za razliko od predhodno razvitih projektov, ki uporabljajo metode strojnega učenja za stiskanje zvoka, je EnCodec mogoče uporabiti ne le za pakiranje govora, temveč tudi za stiskanje glasbe s frekvenco vzorčenja 48 kHz, kar ustreza ravni zvočnih CD-jev. Po navedbah razvijalcev novega kodeka jim je pri prenosu z bitno hitrostjo 64 kbps v primerjavi s formatom MP3 uspelo povečati stopnjo stiskanja zvoka za približno desetkrat, hkrati pa ohraniti enako raven kakovosti (na primer pri uporabi MP3, zahtevana je pasovna širina 64 kbps, za prenos s to enako kakovostjo v EnCodec zadostuje 6 kbps).

Arhitektura kodeka je zgrajena na nevronski mreži z arhitekturo »transformator« in temelji na štirih povezavah: kodirnik, kvantizator, dekoder in diskriminator. Kodirnik izvleče parametre glasovnih podatkov in pretvori zapakiran tok v nižjo hitrost sličic. Kvantizator (RVQ, Residual Vector Quantizer) pretvori izhodni tok kodirnika v nabore paketov in stisne informacije na podlagi izbrane bitne hitrosti. Izhod kvantizatorja je stisnjena predstavitev podatkov, primerna za prenos po omrežju ali shranjevanje na disk.

Dekoder dekodira stisnjeno predstavitev podatkov in rekonstruira izvirni zvočni val. Diskriminator izboljša kakovost generiranih vzorcev, pri čemer upošteva model človeškega slušnega zaznavanja. Ne glede na raven kakovosti in bitno hitrost se modeli, ki se uporabljajo za kodiranje in dekodiranje, odlikujejo z dokaj skromnimi zahtevami po sredstvih (izračuni, potrebni za delovanje v realnem času, se izvajajo na enem jedru CPU).

Facebook objavlja zvočni kodek EnCodec z uporabo strojnega učenja


Vir: opennet.ru

Dodaj komentar