Facebook publică codec audio EnCodec folosind învățarea automată

Meta/Facebook (interzis în Federația Rusă) a introdus un nou codec audio, EnCodec, care folosește metode de învățare automată pentru a crește raportul de compresie fără a pierde calitatea. Codecul poate fi folosit atât pentru streaming audio în timp real, cât și pentru codare pentru salvarea ulterioară în fișiere. Implementarea de referință EnCodec este scrisă în Python folosind cadrul PyTorch și este licențiată sub o licență CC BY-NC 4.0 (Creative Commons Attribution-NonComercial) numai pentru uz necomercial.

Două modele gata făcute sunt oferite pentru descărcare:

  • Un model cauzal care utilizează o rată de eșantionare de 24 kHz, care acceptă doar audio monofonic și instruit pe diverse date audio (potrivit pentru codificarea vorbirii). Modelul poate fi folosit pentru a împacheta date audio pentru transmisie la rate de biți de 1.5, 3, 6, 12 și 24 kbps.
  • Un model non-caucal care folosește o frecvență de eșantionare de 48 kHz, care acceptă audio stereo și antrenat numai pe muzică. Modelul acceptă rate de biți de 3, 6, 12 și 24 kbps.

Pentru fiecare model, a fost pregătit un model de limbă suplimentar, care vă permite să obțineți o creștere semnificativă a raportului de compresie (până la 40%) fără pierderea calității. Spre deosebire de proiectele dezvoltate anterior care folosesc metode de învățare automată pentru compresia audio, EnCodec poate fi folosit nu numai pentru ambalarea vorbirii, ci și pentru compresia muzicii cu o rată de eșantionare de 48 kHz, corespunzătoare nivelului CD-urilor audio. Potrivit dezvoltatorilor noului codec, atunci când transmiteau cu o rată de biți de 64 kbps în comparație cu formatul MP3, aceștia au reușit să crească gradul de compresie audio de aproximativ zece ori, menținând același nivel de calitate (de exemplu, când se utilizează MP3, este necesară o lățime de bandă de 64 kbps, pentru transmisie cu aceeași calitate în EnCodec este suficientă 6 kbps).

Arhitectura codecului este construită pe o rețea neuronală cu o arhitectură „transformator” și se bazează pe patru legături: codificator, cuantificator, decodor și discriminator. Codificatorul extrage parametrii datelor de voce și le convertește într-un flux împachetat la o rată de cadre mai mică. Cuantificatorul (RVQ, Residual Vector Quantizer) convertește fluxul de ieșire de către codificator în seturi de pachete, comprimând informații pe baza ratei de biți selectate. Ieșirea cuantificatorului este o reprezentare comprimată a datelor, potrivită pentru transmiterea într-o rețea sau salvarea pe disc.

Decodorul decodifică reprezentarea comprimată a datelor și reconstruiește unda sonoră originală. Discriminatorul îmbunătățește calitatea probelor generate, ținând cont de modelul percepției auditive umane. Indiferent de nivelul de calitate și debitrate, modelele folosite pentru codificare și decodare se disting prin cerințe de resurse destul de modeste (calculele necesare funcționării în timp real sunt efectuate pe un singur nucleu CPU).

Facebook publică codec audio EnCodec folosind învățarea automată


Sursa: opennet.ru

Adauga un comentariu