Conversor de Base64 a audio

Pega audio en Base64 de una respuesta de texto a voz, un data URI o una carga JSON. La herramienta identifica el formato, lo reproduce en el navegador y lo guarda como archivo de audio.

Se ejecuta por completo en tu navegador. No se sube nada.

Cómo se usa

  1. Pega el audio en Base64, o un data URI como data:audio/mpeg;base64,..., en el cuadro de entrada.
  2. Comprueba el formato detectado y pulsa reproducir en el reproductor de audio.
  3. Descarga el archivo. Recibe una extensión que corresponde al formato detectado, como .mp3 o .wav.

Decodificar la salida de texto a voz

Los servicios de texto a voz que responden con JSON no pueden incluir audio binario en la respuesta, así que lo codifican. Google Cloud Text-to-Speech, por ejemplo, devuelve la voz como una cadena Base64 en un campo llamado audioContent, con la codificación que hayas solicitado, como MP3 u OGG Opus. Otras API de voz y de chatbots usan campos como audio, data o audio_base64.

Pega aquí el valor para escuchar el resultado mientras comparas voces, velocidades de habla o prompts. Copia solo la cadena que hay entre las comillas; si analizas antes el JSON, evitas arrastrar comillas o caracteres escapados como \/.

Formatos de audio detectados

El formato se reconoce por los primeros bytes de los datos decodificados, así que no importa si el tipo MIME falta o es incorrecto:

FormatoFirmaEl Base64 empieza por
MP3Etiqueta ID3 o cabecera de trama MPEGSUQz o, normalmente, //
WAVRIFF ... WAVEUklGR
OGG (Vorbis, Opus)OggST2dnUw
FLACfLaCZkxhQ
M4A (AAC)Caja ftyp con la marca M4AVariable (empieza por un campo de tamaño)

PCM sin procesar: cuando el audio no se reproduce

Algunas API de voz, sobre todo las de tiempo real y streaming, envían muestras PCM sin procesar, a menudo de 16 bits y mono a 16 o 24 kHz, sin cabecera de archivo. De forma similar, los flujos de telefonía transportan audio μ-law de 8 kHz sin cabecera. Sin cabecera, nada en los bytes indica qué son: el formato no se puede detectar, los navegadores no pueden reproducir los datos y esta herramienta no puede adivinar la frecuencia de muestreo ni el número de canales. Aun así, puedes descargar los bytes decodificados, pero para escucharlos tienes que añadir una cabecera WAV con los parámetros que indique la documentación de la 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)        # muestras de 16 bits
    w.setframerate(24000)
    w.writeframes(base64.b64decode(pcm_base64))

Si el resultado suena demasiado rápido, demasiado lento o como ruido estático, la frecuencia de muestreo, el tamaño de muestra o el orden de bytes no coinciden con los datos. Cuando ya se reproduzca, Audio a Base64 puede volver a codificar el WAV si lo necesitas como cadena.

Preguntas frecuentes

¿Por qué la herramienta no puede reproducir mi audio?

O bien los datos son PCM sin procesar y sin cabecera (consulta la sección anterior), o bien tu navegador no admite el códec. En el segundo caso, el archivo descargado sigue siendo correcto y se abre en un reproductor multimedia como VLC.

Mi API envía el audio en muchos fragmentos Base64. ¿Cómo los combino?

Decodifica cada fragmento a bytes y únelos en orden. Concatenar primero las cadenas Base64 solo funciona si cada fragmento, salvo el último, codifica un múltiplo de 3 bytes, algo con lo que normalmente no puedes contar. Esta herramienta decodifica una cadena cada vez, así que combina los fragmentos recibidos por streaming en tu propio código.

¿El audio decodificado es idéntico al original?

Sí. Base64 no tiene pérdidas, así que el archivo contiene exactamente los bytes que se codificaron, con la misma calidad y tasa de bits. La herramienta no recodifica ni convierte el audio.

¿Puedo pegar un data URI?
Sí. Pega la cadena data:audio/...;base64, completa, o Base64 puro sin prefijo. En ambos casos, el formato se detecta a partir de los bytes decodificados.
¿Se envía mi audio a un servidor?

No. La decodificación, la detección del formato y la reproducción se realizan en tu navegador.