Cortador de Áudio

Corte um trecho de um arquivo de áudio no seu navegador — arraste o intervalo de início/fim sobre a forma de onda, pré-visualize a seleção, baixe como WAV. Nada é enviado.

217 visualizações

Como Funciona o Corte de Áudio no Navegador

Esta ferramenta nunca envia seu arquivo a lugar nenhum — ela usa a função decodeAudioData() da Web Audio API para descompactar o áudio (MP3, AAC, OGG, o que quer que o codec do navegador suporte) em um AudioBuffer bruto: um array de valores de amostra em ponto flutuante entre -1 e 1, um por canal. Essa etapa de decodificação é exatamente a mesma que um player de mídia executa internamente antes de conseguir reproduzir um som — a diferença aqui é que as amostras decodificadas permanecem acessíveis em JavaScript em vez de irem direto para os alto-falantes, o que é o que torna a edição possível. Um detalhe que vale a pena saber: o decodeAudioData() decodifica na própria taxa de amostragem do AudioContext — normalmente 44,1kHz ou 48kHz, dependendo do hardware de áudio do seu dispositivo — em vez da taxa original do arquivo de origem, reamostrando automaticamente caso sejam diferentes. Este é um comportamento padrão e transparente, embutido no pipeline de áudio de todo navegador, e não algo que esta ferramenta faz de forma diferente — aplica-se igualmente a um áudio de voz de 8kHz ou a um áudio de estúdio de 96kHz.

Uma vez decodificado o áudio, o corte não é nada além de fatiamento de array: multiplique os tempos de início e fim selecionados, em segundos, pela taxa de amostragem para obter os índices de amostra, depois copie apenas as amostras entre esses dois índices para um novo buffer mais curto. Não há recodificação do conteúdo de áudio, nenhuma perda de qualidade, nenhum artefato de recompressão — a forma de onda dentro do intervalo selecionado é copiada byte a byte em sua forma já decodificada.

A pré-visualização da forma de onda é desenhada percorrendo o array de amostras decodificadas uma vez, dividindo-o em tantos blocos quanto houver pixels horizontais, e plotando o valor mínimo e máximo de amostra encontrado em cada bloco como uma barra vertical — a mesma técnica de envoltória de picos usada por todo editor de áudio, porque plotar cada amostra individual (frequentemente 44.100 por segundo) seria tanto um desperdício quanto visualmente indistinguível da envoltória de mínimo/máximo nas resoluções de tela típicas.

Por Que a Saída É WAV, e Não MP3

O resultado cortado é exportado como WAV — um contêiner PCM não compactado que simplesmente reescreve os dados brutos de amostra com um cabeçalho RIFF padrão de 44 bytes descrevendo a taxa de amostragem, a profundidade de bits e o número de canais. Esta é uma troca deliberada e honesta: codificar para um formato compactado como o MP3 exige um codificador psicoacústico completo (o mesmo tipo de algoritmo complexo usado para criar o arquivo originalmente), que os navegadores não expõem nativamente e que exigiria carregar uma biblioteca adicional grande. Em troca, o WAV garante zero perda de geração — cortar dez vezes seguidas nunca degrada o áudio, ao contrário de salvar repetidamente um MP3 com perdas. Se um arquivo menor for necessário depois, o WAV resultante pode ser recompactado com qualquer ferramenta de áudio padrão.

  • O WAV exportado usa a taxa de amostragem do AudioContext (geralmente 44,1kHz ou 48kHz) e profundidade de 16 bits, independentemente da taxa ou profundidade original do arquivo de origem — isso vem de como o decodeAudioData() funciona, não de uma limitação do corte em si.
  • Arquivos muito longos (acima de aproximadamente 30-60 minutos) podem usar quantidade significativa de memória do navegador, já que o buffer decodificado inteiro é mantido em RAM como amostras em ponto flutuante antes do corte.
  • A forma de onda é desenhada apenas a partir do primeiro canal de áudio; o conteúdo estéreo é cortado igualmente em todos os canais, apenas a pré-visualização se simplifica para uma única linha.

Perguntas Frequentes

Por que o arquivo cortado é baixado como WAV em vez de MP3?

A codificação em MP3 exige um algoritmo completo de compressão psicoacústica que os navegadores não expõem nativamente. O WAV simplesmente reescreve as amostras já decodificadas de forma sem perdas, com zero perda de qualidade e sem necessidade de biblioteca extra — se um arquivo menor for necessário depois, compacte o WAV separadamente.

O corte perde alguma qualidade de áudio?

O corte em si não perde — ele apenas copia um intervalo contíguo de amostras decodificadas para um novo buffer, sem recodificação ou compressão. A única ressalva é que o decodeAudioData() decodifica na taxa de amostragem do hardware de áudio do navegador (geralmente 44,1kHz ou 48kHz), reamostrando automaticamente se o arquivo de origem usava uma taxa diferente — este é um comportamento padrão do navegador, não algo exclusivo do corte, e é praticamente imperceptível para uma audição normal.

Meu arquivo de áudio é enviado para um servidor?

Não. A decodificação, a renderização da forma de onda, a pré-visualização de reprodução e o corte final acontecem inteiramente no seu navegador, via Web Audio API — o arquivo nunca sai do seu dispositivo.

Quais formatos de áudio posso enviar?

Qualquer formato suportado pelo decodificador embutido do seu navegador — MP3, WAV, OGG e AAC/M4A funcionam essencialmente em todos os navegadores modernos, já que a mesma função decodeAudioData() que o navegador usa para reproduzir áudio é o que alimenta esta ferramenta.

Posso pré-visualizar a seleção antes de baixar?

Sim — o botão Reproduzir Seleção reproduz exatamente o intervalo entre os marcadores de início e fim, usando o mesmo deslocamento de buffer que o corte final usará, então o que você ouve corresponde exatamente ao que é baixado.

Comentários

Ainda não há comentários — seja o primeiro a escrever um!

Ferramentas Semelhantes