Mode d’emploi
- Collez l’audio Base64, ou un data URI comme data:audio/mpeg;base64,..., dans la zone de saisie.
- Vérifiez le format détecté et lancez la lecture dans le lecteur audio.
- Téléchargez le fichier. Il reçoit une extension correspondant au format détecté, comme .mp3 ou .wav.
Décoder la sortie d’une synthèse vocale
Les services de synthèse vocale qui répondent en JSON ne peuvent pas placer d’audio binaire dans la réponse : ils l’encodent donc. Google Cloud Text-to-Speech, par exemple, renvoie la voix sous forme de chaîne Base64 dans un champ nommé audioContent, dans l’encodage demandé, comme MP3 ou OGG Opus. D’autres API vocales et de chatbot utilisent des champs comme audio, data ou audio_base64.
Collez la valeur ici pour écouter le résultat pendant que vous comparez des voix, des débits de parole ou des prompts. Copiez uniquement la chaîne entre les guillemets ; analyser d’abord le JSON évite de récupérer des guillemets ou des caractères échappés comme \/.
Formats audio détectés
Le format est reconnu grâce aux premiers octets des données décodées, si bien qu’un type MIME absent ou erroné n’a aucune importance :
| Format | Signature | Début du Base64 |
|---|---|---|
| MP3 | Balise ID3 ou en-tête de trame MPEG | SUQz ou généralement // |
| WAV | RIFF ... WAVE | UklGR |
| OGG (Vorbis, Opus) | OggS | T2dnUw |
| FLAC | fLaC | ZkxhQ |
| M4A (AAC) | Boîte ftyp avec la marque M4A | variable (commence par un champ de taille) |
PCM brut : quand l’audio refuse de se lire
Certaines API vocales, notamment celles en temps réel et en streaming, envoient des échantillons PCM bruts, souvent en 16 bits mono à 16 ou 24 kHz, sans en-tête de fichier. Les flux de téléphonie transportent de la même manière de l’audio μ-law à 8 kHz sans en-tête. Sans en-tête, rien dans les octets n’indique ce qu’ils représentent : le format ne peut pas être détecté, les navigateurs ne peuvent pas lire les données et cet outil ne peut pas deviner la fréquence d’échantillonnage ni le nombre de canaux. Vous pouvez tout de même télécharger les octets décodés, mais pour les écouter, il faut ajouter un en-tête WAV avec les paramètres indiqués dans la documentation de l’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) # échantillons de 16 bits
w.setframerate(24000)
w.writeframes(base64.b64decode(pcm_base64))
Si le résultat semble trop rapide, trop lent ou ressemble à un grésillement, la fréquence d’échantillonnage, la taille des échantillons ou l’ordre des octets ne correspond pas aux données. Une fois le son lisible, Audio en Base64 peut réencoder le WAV si vous en avez besoin sous forme de chaîne.
Questions fréquentes
Pourquoi l’outil ne lit-il pas mon audio ?
Soit les données sont du PCM brut sans en-tête (voir ci-dessus), soit votre navigateur ne prend pas en charge le codec. Dans le second cas, le fichier téléchargé reste correct et s’ouvre dans un lecteur multimédia comme VLC.
Mon API envoie l’audio en plusieurs morceaux Base64. Comment les assembler ?
Décodez chaque morceau en octets et ajoutez-les bout à bout dans l’ordre. Concaténer d’abord les chaînes Base64 ne fonctionne que si chaque morceau, sauf le dernier, encode un multiple de 3 octets, ce sur quoi on ne peut généralement pas compter. Cet outil décode une seule chaîne à la fois : assemblez donc les morceaux reçus en streaming dans votre propre code.
L’audio décodé est-il identique à l’original ?
Oui. Base64 est sans perte : le fichier contient exactement les octets qui ont été encodés, avec la même qualité et le même débit. L’outil ne réencode ni ne convertit l’audio.
Puis-je coller un data URI ?
data:audio/...;base64, complète, ou du Base64 brut sans préfixe. Dans les deux cas, le format est détecté à partir des octets décodés.Mon audio est-il envoyé à un serveur ?
Non. Le décodage, la détection du format et la lecture se font entièrement dans votre navigateur.