Rede neural do codec 2 + = podcast inteiro em um disquete

Em um artigo anterior, discutimos o codec Opus, que roda em taxas de bits muito baixas. Mas outro codec visa atingir taxas de bits ainda mais baixas - este é o Codec 2 .

O codec 2 é para codificar apenas fala. E, embora a taxa de bits seja impressionante, o som não é de alta qualidade como no caso do Opus, que pode ser ouvido em exemplos de áudio . No entanto, em combinação com a rede neural ( WaveNet ), o codec mostra resultados impressionantes .


Camadas de uma rede neural WaveNet

1. Introdução


O codec 2 é de código aberto e foi projetado para codificação de fala. Ele se concentra nas taxas de bits de 700 a 3200 bps.

Desenvolvedor - David Rowe , engenheiro eletrônico que vive atualmente no sul da Austrália. Ele iniciou o projeto em setembro de 2009 com o objetivo de melhorar as radiocomunicações de baixo custo para pessoas em áreas remotas do mundo. Para esse fim, ele desenvolveria um codec que reduziria significativamente o tamanho do arquivo e os requisitos de largura de banda para streaming.

Outra motivação, segundo David, foi a criação de um codec sem patentes como uma alternativa aos codecs proprietários, que, em sua opinião, "exigem licenças caras e desajeitadas e sufocam a inovação". Ele acredita que você pode ficar sem codecs patenteados, então ele distribui todo o trabalho sob uma licença gratuita.

Aplicação potencial


O autor cita várias aplicações do codec, entre elas VoIP, comunicação por voz em uma banda estreita de rádio HF / UHF digital (especialmente para rádio amador, para evitar problemas com o uso de codecs proprietários), comunicação em países em desenvolvimento e regiões remotas, incluindo o exército, polícia e serviços de resgate .

Na Auphonic, estamos interessados ​​no uso potencial de um codec para compactar melhor podcasts, apresentações e audiolivros, o que pode reduzir a quantidade de espaço usado e minimizar o efeito de más conexões de rede .

Como isso funciona


Para reduzir a taxa de bits, é necessário reduzir a fala ao mínimo possível de informações / dados, ou seja, minimizar a quantidade de informações transmitidas excessivamente.

Para isso, o Codec 2 usa codificação de fala sinusoidal harmônica . Ele divide o discurso em segmentos de 10 a 30 ms, chamados de quadros. Cada quadro é então analisado para um nível fundamental (pitch) e o número de harmônicos que se encaixam na largura de banda de 4 kHz. Além disso, para cada harmônico na faixa de 4 kHz, a amplitude e a fase são registradas.

Essa informação é codificada e o decodificador restaura o som com base nesses dados.


Fluxogramas do codec 2: codificador (esquerda) e decodificador (direita). Ilustração de Rowtel

Exemplos de áudio e comparação com outros codecs


Embora tudo isso pareça ótimo na teoria, mas na realidade? Vamos ouvir. Aqui está um pequeno arquivo de som wav:

intro-orig.wav - 1,3 MB

Aplicamos o Codec 2 (sem decodificador WaveNet) em várias taxas de bits disponíveis: 3200 bps , 2400 bps , 1600 bps , 1200 bps e 700 bps .

Esses exemplos mostram uma redução significativa no tamanho do arquivo.

Vejamos os arquivos em termos de volume para armazenar 1 hora de som :

  • A 3200 bps, uma hora de som requer apenas 1,37 MB (cabe em um disquete antigo de 3 ½ polegadas!)
  • A taxa de bits de 2400 bps corresponde a 1,03 MB / h
  • A taxa de bits de 1600 bps é de 0,68 MB / h (ou cerca de duas horas de som em um disquete! )
  • 1200 bps - até 0,51 MB / h
  • 700 bps - até 0,3 MB / h

A compressão é muito forte, mas o resultado parece claramente não natural.

Para comparação, o mesmo som está em MP3 a 8 Kbps .

O tamanho do arquivo é significativamente maior que o do Codec 2 e a qualidade provavelmente ainda é inaceitável. Você pode ouvir bem o que às vezes é chamado de chiado - o metal estranho soa inerente aos MP3s de baixa qualidade.

Há o último codec para comparar. Parece que ele une os dois mundos, ou seja, fornece qualidade aceitável com baixa taxa de bits: Opus .

Graças ao seu desempenho atraente em baixas taxas de bits, o Auphonic já oferece aos usuários Opus codificação de até 6 Kbps, a menor taxa de bits suportada pelo codec.

A 6 kbps, o codec Opus parece significativamente melhor que o MP3 8 kbps. A voz está um pouco abafada, mas ainda soa natural .

Voltando ao Codec 2, por uma questão de interesse, vamos ouvir como ele codifica a música ! (Lembre-se de que o codec 2 não se destina à codificação de música, mas apenas à fala).

Arquivo de origem
MP3 8 kbps

Pessoalmente, não consigo ouvir MP3 com essa taxa de bits, então vamos ver os resultados do Codec 2! Então, 3200 bps , 2400 bps , 1600 bps , 1200 bps , 700 bps .

É fácil entender que, para esse fim, não é adequado!

Codec 2 e WaveNet


Como já ouvimos, apesar da impressionante compressão, o resultado não é um som muito natural.

Mas aqui o assunto se torna mais interessante se você olhar para o trabalho de Bastian Klein da Biblioteca da Universidade de Cornell. Ele usou o Codec 2 a uma taxa de bits de 2400 bps para codificação, mas substituiu o decodificador do Codec 2 por um modelo de aprendizado profundo WaveNet generativo (consulte o artigo “Codificação de baixa taxa de bits baseada em Wavenet” para obter mais informações).

Aqui estão alguns exemplos dos autores :

Voz masculina
Arquivo de origem
Codec 2
Com decodificador WaveNet

Voz feminina
Arquivo de origem
Codec 2
Com decodificador WaveNet

Comparado ao Codec 2, ouvimos uma melhoria significativa na qualidade e, quando comparado com o original, não há redução significativa na qualidade.

O próprio David Rowe disse que considera o resultado "uma melhoria dramática na codificação da fala em taxas de bits baixas" e "um bom codec de voz em banda larga de 8000 bits / s".

Conclusão


Embora o codec 2 (original) seja um trabalho muito interessante, seu escopo é limitado e o resultado final não é adequado para podcasting. Também é claro, a partir de exemplos de áudio, que ele pode ser usado para comprimir apenas voz, mas não música.

No entanto, o Codec 2 em combinação com o decodificador WaveNet melhora significativamente a qualidade, e a baixa taxa de bits (2400 bps) será extremamente interessante para a distribuição de podcasts e audiolivros : apenas 1,03 MB de espaço é necessário para uma hora de som !

Auphonic adicionará suporte ao Codec 2 aos arquivos de saída quando o decodificador WaveNet aparecer em um formato utilizável. Até agora, adicionamos suporte ao Codec 2 apenas para arquivos de entrada .

Source: https://habr.com/ru/post/pt415557/


All Articles