Så använder du verktyget
- Klistra in Base64-ljudet, eller en data URI som data:audio/mpeg;base64,..., i indatafältet.
- Kontrollera det identifierade formatet och starta uppspelningen i ljudspelaren.
- Ladda ned filen. Den får en filändelse som motsvarar det identifierade formatet, till exempel .mp3 eller .wav.
Avkoda utdata från talsyntes
Talsyntestjänster som svarar med JSON kan inte lägga binärt ljud i svaret, så de kodar det. Google Cloud Text-to-Speech returnerar till exempel talet som en Base64-sträng i ett fält som heter audioContent, i den kodning du begärt, till exempel MP3 eller OGG Opus. Andra röst- och chattbot-API:er använder fält som audio, data eller audio_base64.
Klistra in värdet här för att lyssna på resultatet medan du jämför röster, taltempo eller prompter. Kopiera bara strängen mellan citattecknen. Om du tolkar JSON först slipper du få med citattecken eller escapade tecken som \/.
Ljudformat som identifieras
Formatet känns igen på de första bytena i den avkodade datan, så det spelar ingen roll om MIME-typen saknas eller är fel:
| Format | Signatur | Base64 börjar med |
|---|---|---|
| MP3 | ID3-tagg eller ett MPEG-ramhuvud | SUQz eller oftast // |
| WAV | RIFF ... WAVE | UklGR |
| OGG (Vorbis, Opus) | OggS | T2dnUw |
| FLAC | fLaC | ZkxhQ |
| M4A (AAC) | ftyp-box med märket M4A | varierar (börjar med ett storleksfält) |
Rå PCM: när ljudet inte går att spela upp
Vissa röst-API:er, särskilt realtids- och strömnings-API:er, skickar råa PCM-sampel, ofta 16 bitar mono med 16 eller 24 kHz, helt utan filhuvud. Telefonströmmar innehåller på liknande sätt μ-law-ljud med 8 kHz utan huvud. Utan huvud finns det inget i bytena som berättar vad de är: formatet kan inte identifieras, webbläsare kan inte spela upp datan och det här verktyget kan inte gissa samplingsfrekvensen eller antalet kanaler. Du kan ändå ladda ned de avkodade bytena, men för att höra dem måste du lägga till ett WAV-huvud med parametrarna från API-dokumentationen:
# FFmpeg: 16 bitar 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) # 16-bitarssampel
w.setframerate(24000)
w.writeframes(base64.b64decode(pcm_base64))
Om resultatet låter för snabbt, för långsamt eller som brus stämmer inte samplingsfrekvensen, samplingsstorleken eller byteordningen med datan. När det väl går att spela upp kan Ljud till Base64 koda WAV-filen igen om du behöver den som en sträng.
Vanliga frågor
Varför kan verktyget inte spela upp mitt ljud?
Antingen är datan rå PCM utan huvud (se ovan), eller så stöder din webbläsare inte kodeken. I det senare fallet är den nedladdade filen ändå korrekt och kan öppnas i en mediespelare som VLC.
Mitt API skickar ljudet i många Base64-delar. Hur slår jag ihop dem?
Avkoda varje del till byte och lägg till dem i ordning. Att först slå ihop Base64-strängarna fungerar bara om varje del utom den sista kodar en multipel av 3 byte, och det kan du oftast inte räkna med. Det här verktyget avkodar en sträng i taget, så slå ihop strömmade delar i din egen kod.
Är det avkodade ljudet identiskt med originalet?
Ja. Base64 är förlustfritt, så filen innehåller exakt de byte som kodades, med samma kvalitet och bithastighet. Verktyget varken kodar om eller konverterar ljudet.
Kan jag klistra in en data URI?
data:audio/...;base64, eller rå Base64 utan prefix. Formatet identifieras från de avkodade bytena i båda fallen.Skickas mitt ljud till en server?
Nej. Avkodning, formatidentifiering och uppspelning sker helt i din webbläsare.