Facebook publiserer EnCodec lydkodek ved hjelp av maskinlæring

Meta/Facebook (forbudt i Russland) introduserte en ny lydkodek, EnCodec, som bruker maskinlæringsmetoder for å øke komprimeringsforholdet uten å miste kvalitet. Kodeken kan brukes både til streaming av lyd i sanntid og til koding for senere lagring i filer. EnCodec-referanseimplementeringen er skrevet i Python ved bruk av PyTorch-rammeverket og er lisensiert under en CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial)-lisens kun for ikke-kommersiell bruk.

To ferdige modeller tilbys for nedlasting:

  • En årsaksmodell som bruker en samplingsfrekvens på 24 kHz, støtter kun monofonisk lyd, og trent på forskjellige lyddata (egnet for talekoding). Modellen kan brukes til å pakke lyddata for overføring med bithastigheter på 1.5, 3, 6, 12 og 24 kbps.
  • En ikke-årsaksmodell som bruker en samplingsfrekvens på 48 kHz, støtter stereolyd og kun trent på musikk. Modellen støtter bithastigheter på 3, 6, 12 og 24 kbps.

For hver modell er det utarbeidet en ekstra språkmodell, som lar deg oppnå en betydelig økning i kompresjonsforholdet (opptil 40%) uten tap av kvalitet. I motsetning til tidligere utviklede prosjekter som bruker maskinlæringsmetoder for lydkomprimering, kan EnCodec brukes ikke bare til talepakking, men også for musikkkomprimering med en samplingsfrekvens på 48 kHz, tilsvarende nivået på lyd-CDer. Ifølge utviklerne av den nye kodeken, når de sendte med en bithastighet på 64 kbps sammenlignet med MP3-formatet, var de i stand til å øke graden av lydkomprimering med omtrent ti ganger mens de opprettholdt samme kvalitetsnivå (for eksempel ved bruk av MP3, en båndbredde på 64 kbps kreves, for overføring med at samme kvalitet i EnCodec er nok 6 kbps).

Codec-arkitekturen er bygget på et nevralt nettverk med en "transformator"-arkitektur og er basert på fire lenker: koder, kvantizer, dekoder og diskriminator. Koderen trekker ut parametrene til stemmedataene og konverterer den pakkede strømmen til en lavere bildefrekvens. Kvantizeren (RVQ, Residual Vector Quantizer) konverterer strømutgangen fra koderen til sett med pakker, og komprimerer informasjon basert på den valgte bithastigheten. Utgangen fra kvantizeren er en komprimert representasjon av dataene, egnet for overføring over et nettverk eller lagring på disk.

Dekoderen dekoder den komprimerte representasjonen av dataene og rekonstruerer den opprinnelige lydbølgen. Diskriminatoren forbedrer kvaliteten på de genererte prøvene, og tar hensyn til modellen for menneskelig auditiv persepsjon. Uavhengig av nivået på kvalitet og bitrate, er modellene som brukes for koding og dekoding preget av ganske beskjedne ressurskrav (beregninger som er nødvendige for sanntidsdrift utføres på en enkelt CPU-kjerne).

Facebook publiserer EnCodec lydkodek ved hjelp av maskinlæring


Kilde: opennet.ru

Legg til en kommentar