A Facebook gépi tanulás segítségével teszi közzé az EnCodec audiokodeket

A Meta/Facebook (az Orosz Föderációban betiltva) bemutatott egy új audiokodeket, az EnCodec-et, amely gépi tanulási módszereket használ a tömörítési arány növelésére a minőség romlása nélkül. A kodek mind a valós idejű hang streamingre, mind a későbbi fájlokba menthető kódolásra használható. Az EnCodec referencia-megvalósítás Python nyelven, a PyTorch keretrendszer használatával készült, és a CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial) licence alapján, csak nem kereskedelmi használatra engedélyezett.

Két kész modellt kínálunk letöltésre:

  • 24 kHz-es mintavételezési frekvenciát használó kauzális modell, amely csak egyszólamú hangot támogat, és különféle hangadatokra van kiképezve (beszédkódolásra alkalmas). A modell használható audio adatok csomagolására 1.5, 3, 6, 12 és 24 kbps bitsebességgel.
  • Nem kauzális modell, amely 48 kHz-es mintavételezési frekvenciát használ, támogatja a sztereó hangot, és csak zenére tanít. A modell támogatja a 3, 6, 12 és 24 kbps bitsebességet.

Minden modellhez egy további nyelvi modell készült, amely lehetővé teszi a tömörítési arány jelentős növelését (akár 40%) minőségromlás nélkül. A hangtömörítéshez gépi tanulási módszereket használó, korábban kidolgozott projektekkel ellentétben az EnCodec nem csak beszédcsomagolásra, hanem zenetömörítésre is használható, 48 kHz-es mintavételezési frekvenciával, ami megfelel az audio CD-k szintjének. Az új kodek fejlesztői szerint az MP64 formátumhoz képest 3 kbps-os bitrátával történő átvitel során körülbelül tízszeresére tudták növelni a hangtömörítés mértékét, miközben ugyanazt a minőséget (pl. MP3, 64 kbps sávszélesség szükséges, az átvitelhez ilyen minőségben EnCodecben elég 6 kbps).

A kodek architektúra egy „transzformátor” architektúrájú neurális hálózatra épül, és négy kapcsolaton alapul: kódoló, kvantáló, dekódoló és megkülönböztető. A kódoló kivonja a hangadatok paramétereit, és a csomagolt adatfolyamot alacsonyabb képsebességűvé alakítja. A kvantáló (RVQ, Residual Vector Quantizer) a kódoló által kiadott adatfolyamot csomagokká alakítja, és a kiválasztott bitsebesség alapján tömöríti az információkat. A kvantáló kimenete az adatok tömörített reprezentációja, amely alkalmas hálózaton keresztüli továbbításra vagy lemezre mentésre.

A dekóder dekódolja az adatok tömörített reprezentációját, és rekonstruálja az eredeti hanghullámot. A diszkriminátor javítja a generált minták minőségét, figyelembe véve az emberi hallási percepció modelljét. A kódolásra és dekódolásra használt modellek minőségi és bitsebességi szintjétől függetlenül meglehetősen szerény erőforrásigényűek (a valós idejű működéshez szükséges számításokat egyetlen CPU magon végzik el).

A Facebook gépi tanulás segítségével teszi közzé az EnCodec audiokodeket


Forrás: opennet.ru

Hozzászólás