Facebook julkaisee EnCodec-äänikoodekin koneoppimisen avulla

Meta/Facebook (Venäjän federaatiossa kielletty) esitteli uuden äänikoodekin, EnCodecin, joka käyttää koneoppimismenetelmiä pakkaussuhteen lisäämiseen laadun heikkenemättä. Pakkauksenhallintaa voidaan käyttää sekä äänen suoratoistoon reaaliajassa että koodaukseen myöhempää tiedostoihin tallentamista varten. EnCodec-viitetoteutus on kirjoitettu Pythonissa käyttäen PyTorch-kehystä, ja se on lisensoitu CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial) -lisenssillä vain ei-kaupalliseen käyttöön.

Kaksi valmista mallia tarjotaan ladattavaksi:

  • Kausaalinen malli, joka käyttää 24 kHz:n näytteenottotaajuutta, tukee vain monofonista ääntä ja on koulutettu monipuoliseen äänidataan (sopii puheen koodaukseen). Mallia voidaan käyttää audiodatan pakkaamiseen 1.5, 3, 6, 12 ja 24 kbps:n bittinopeudella lähetettäväksi.
  • Ei-kausaalinen malli, joka käyttää 48 kHz:n näytteenottotaajuutta, tukee stereoääntä ja on opetettu vain musiikille. Malli tukee bittinopeuksia 3, 6, 12 ja 24 kbps.

Jokaiselle mallille on laadittu ylimääräinen kielimalli, jonka avulla voit saavuttaa merkittävän lisäyksen pakkaussuhteessa (jopa 40 %) laadun heikkenemättä. Toisin kuin aiemmin kehitetyt projektit, joissa on käytetty koneoppimismenetelmiä äänen pakkaamiseen, EnCodecia voidaan käyttää paitsi puheen pakkaamiseen myös musiikin pakkaamiseen 48 kHz:n näytteenottotaajuudella, joka vastaa audio-CD-levyjen tasoa. Uuden koodekin kehittäjien mukaan lähetettäessä 64 kbps:n bittinopeudella MP3-muotoon verrattuna he pystyivät lisäämään äänen pakkausastetta noin kymmenen kertaa säilyttäen samalla laatutason (esim. MP3, vaaditaan 64 kbps kaistanleveyttä, jolla lähetykseen sama laatu EnCodecissa riittää 6 kbps).

Koodekkiarkkitehtuuri on rakennettu hermoverkkoon, jossa on "muuntaja"-arkkitehtuuri ja se perustuu neljään linkkiin: kooderi, kvantisoija, dekooderi ja erotin. Enkooderi poimii äänidatan parametrit ja muuntaa pakatun virran pienemmäksi kehysnopeudeksi. Kvantisoija (RVQ, Residual Vector Quantizer) muuntaa kooderin antaman virran pakettijoukoiksi, pakkaamalla tiedot valitun bittinopeuden perusteella. Kvantisoijan lähtö on pakattu esitys tiedosta, joka soveltuu lähetettäväksi verkon yli tai tallennettavaksi levylle.

Dekooderi dekoodaa datan pakatun esityksen ja rekonstruoi alkuperäisen ääniaallon. Diskriminaattori parantaa tuotettujen näytteiden laatua ottaen huomioon ihmisen kuuloaistin mallin. Laatutasosta ja bittinopeudesta riippumatta koodaukseen ja dekoodaukseen käytetyt mallit eroavat melko vaatimattomista resurssivaatimuksista (reaaliaikaiseen toimintaan tarvittavat laskelmat tehdään yhdelle CPU-ytimelle).

Facebook julkaisee EnCodec-äänikoodekin koneoppimisen avulla


Lähde: opennet.ru

Lisää kommentti