Como usar
- Cole o áudio em Base64, ou um data URI como data:audio/mpeg;base64,..., na caixa de entrada.
- Confira o formato detectado e aperte o play no player de áudio.
- Baixe o arquivo. Ele recebe uma extensão compatível com o formato detectado, como .mp3 ou .wav.
Como decodificar a saída de texto para fala
Serviços de conversão de texto em fala que respondem em JSON não podem colocar áudio binário na resposta, então o codificam. O Google Cloud Text-to-Speech, por exemplo, devolve a fala como uma string Base64 em um campo chamado audioContent, na codificação que você solicitou, como MP3 ou OGG Opus. Outras APIs de voz e de chatbot usam campos como audio, data ou audio_base64.
Cole o valor aqui para ouvir o resultado enquanto compara vozes, velocidades de fala ou prompts. Copie apenas a string entre as aspas; interpretar o JSON primeiro evita levar junto aspas ou caracteres escapados como \/.
Formatos de áudio detectados
O formato é reconhecido pelos primeiros bytes dos dados decodificados, então um tipo MIME ausente ou errado não faz diferença:
| Formato | Assinatura | O Base64 começa com |
|---|---|---|
| MP3 | Tag ID3 ou cabeçalho de quadro MPEG | SUQz ou, geralmente, // |
| WAV | RIFF ... WAVE | UklGR |
| OGG (Vorbis, Opus) | OggS | T2dnUw |
| FLAC | fLaC | ZkxhQ |
| M4A (AAC) | Box ftyp com a marca M4A | varia (começa com um campo de tamanho) |
PCM bruto: quando o áudio não toca
Algumas APIs de voz, principalmente as de tempo real e de streaming, enviam amostras PCM brutas, muitas vezes de 16 bits, mono, a 16 ou 24 kHz, sem cabeçalho de arquivo. Fluxos de telefonia também transportam áudio μ-law de 8 kHz sem cabeçalho. Sem um cabeçalho, nada nos bytes indica o que eles são: o formato não pode ser detectado, os navegadores não conseguem reproduzir os dados e esta ferramenta não tem como adivinhar a taxa de amostragem nem o número de canais. Você ainda pode baixar os bytes decodificados, mas, para ouvi-los, precisa adicionar um cabeçalho WAV com os parâmetros da documentação da API:
# FFmpeg: 16 bits little-endian, 24 kHz, mono
ffmpeg -f s16le -ar 24000 -ac 1 -i speech.pcm speech.wav
# Python
import base64, wave
with wave.open('speech.wav', 'wb') as w:
w.setnchannels(1)
w.setsampwidth(2) # amostras de 16 bits
w.setframerate(24000)
w.writeframes(base64.b64decode(pcm_base64))
Se o resultado soar rápido demais, lento demais ou como chiado, a taxa de amostragem, o tamanho da amostra ou a ordem dos bytes não correspondem aos dados. Quando ele tocar, Áudio para Base64 pode codificar o WAV de novo se você precisar dele como string.
Perguntas frequentes
Por que a ferramenta não toca meu áudio?
Ou os dados são PCM bruto sem cabeçalho (veja acima), ou o seu navegador não é compatível com o codec. No segundo caso, o arquivo baixado continua correto e abre em um player de mídia como o VLC.
Minha API envia o áudio em vários pedaços Base64. Como faço para juntá-los?
Decodifique cada pedaço em bytes e junte-os na ordem. Concatenar as strings Base64 primeiro só funciona se cada pedaço, exceto o último, codificar um múltiplo de 3 bytes, algo com que normalmente não dá para contar. Esta ferramenta decodifica uma string por vez, então combine os pedaços recebidos por streaming no seu próprio código.
O áudio decodificado é idêntico ao original?
Sim. O Base64 não tem perdas, então o arquivo contém exatamente os bytes que foram codificados, com a mesma qualidade e a mesma taxa de bits. A ferramenta não recodifica nem converte o áudio.
Posso colar um data URI?
data:audio/...;base64, inteira ou o Base64 puro, sem prefixo. Em ambos os casos, o formato é detectado pelos bytes decodificados.Meu áudio é enviado para um servidor?
Não. A decodificação, a detecção de formato e a reprodução acontecem no seu navegador.