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 WaveNet1. 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 RowtelExemplos 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 MBAplicamos 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 origemMP3 8 kbpsPessoalmente, 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 masculinaArquivo de origemCodec 2Com decodificador WaveNetVoz femininaArquivo de origemCodec 2Com decodificador WaveNetComparado 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 .