Konwerter Base64 na audio

Wklej dźwięk w Base64 z odpowiedzi usługi zamiany tekstu na mowę, z data URI lub z danych JSON. Narzędzie rozpoznaje format, odtwarza nagranie w przeglądarce i zapisuje je jako plik audio.

Działa w całości w przeglądarce. Nic nie jest wysyłane.

Jak używać

  1. Wklej dźwięk w Base64 lub data URI, np. data:audio/mpeg;base64,..., w pole wejściowe.
  2. Sprawdź wykryty format i naciśnij przycisk odtwarzania w odtwarzaczu audio.
  3. Pobierz plik. Otrzyma rozszerzenie odpowiadające wykrytemu formatowi, np. .mp3 lub .wav.

Dekodowanie wyniku syntezy mowy

Usługi zamiany tekstu na mowę, które odpowiadają w formacie JSON, nie mogą umieścić w odpowiedzi binarnego dźwięku, więc go kodują. Na przykład Google Cloud Text-to-Speech zwraca mowę jako ciąg Base64 w polu o nazwie audioContent, w wybranym kodowaniu, takim jak MP3 lub OGG Opus. Inne interfejsy API głosowe i chatbotowe używają pól takich jak audio, data lub audio_base64.

Wklej tutaj wartość, aby odsłuchać wynik podczas porównywania głosów, tempa mowy lub promptów. Skopiuj tylko ciąg między cudzysłowami; wcześniejsze sparsowanie JSON pozwala uniknąć przechwycenia cudzysłowów lub znaków ucieczki, takich jak \/.

Wykrywane formaty audio

Format jest rozpoznawany po pierwszych bajtach zdekodowanych danych, więc brakujący lub błędny typ MIME nie ma znaczenia:

FormatSygnaturaPoczątek Base64
MP3Znacznik ID3 lub nagłówek ramki MPEGSUQz lub zwykle //
WAVRIFF ... WAVEUklGR
OGG (Vorbis, Opus)OggST2dnUw
FLACfLaCZkxhQ
M4A (AAC)Blok ftyp z oznaczeniem M4Azmienny (zaczyna się od pola rozmiaru)

Surowe PCM: gdy dźwięk się nie odtwarza

Niektóre interfejsy API głosowe, zwłaszcza działające w czasie rzeczywistym i strumieniowe, wysyłają surowe próbki PCM, często 16-bitowe mono z częstotliwością 16 lub 24 kHz, bez nagłówka pliku. Strumienie telefoniczne podobnie przenoszą dźwięk μ-law 8 kHz bez nagłówka. Bez nagłówka nic w bajtach nie wskazuje, czym one są: formatu nie da się wykryć, przeglądarki nie mogą odtworzyć danych, a to narzędzie nie zgadnie częstotliwości próbkowania ani liczby kanałów. Zdekodowane bajty nadal można pobrać, ale aby je usłyszeć, trzeba dodać nagłówek WAV z parametrami podanymi w dokumentacji API:

# FFmpeg: próbki 16-bitowe 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)        # próbki 16-bitowe
    w.setframerate(24000)
    w.writeframes(base64.b64decode(pcm_base64))

Jeśli wynik brzmi zbyt szybko, zbyt wolno lub jak szum, częstotliwość próbkowania, rozmiar próbki lub kolejność bajtów nie pasuje do danych. Gdy plik już się odtwarza, narzędzie Audio na Base64 może ponownie zakodować plik WAV, jeśli potrzebujesz go w postaci ciągu.

Najczęściej zadawane pytania

Dlaczego narzędzie nie odtwarza dźwięku?

Albo dane to surowe PCM bez nagłówka (patrz wyżej), albo przeglądarka nie obsługuje danego kodeka. W drugim przypadku pobrany plik jest nadal poprawny i otworzy się w odtwarzaczu multimedialnym, takim jak VLC.

API wysyła dźwięk w wielu fragmentach Base64. Jak je połączyć?

Zdekoduj każdy fragment do bajtów i dołączaj je po kolei. Łączenie ciągów Base64 przed dekodowaniem działa tylko wtedy, gdy każdy fragment oprócz ostatniego koduje wielokrotność 3 bajtów, na co zwykle nie można liczyć. To narzędzie dekoduje jeden ciąg naraz, więc fragmenty ze strumienia połącz we własnym kodzie.

Czy zdekodowany dźwięk jest identyczny z oryginałem?

Tak. Base64 jest bezstratny, więc plik zawiera dokładnie te bajty, które zostały zakodowane, z tą samą jakością i przepływnością. Narzędzie nie koduje dźwięku ponownie ani go nie konwertuje.

Czy można wkleić data URI?
Tak. Wklej cały ciąg data:audio/...;base64, albo czysty Base64 bez prefiksu. W obu przypadkach format jest wykrywany na podstawie zdekodowanych bajtów.
Czy dźwięk jest wysyłany na serwer?

Nie. Dekodowanie, wykrywanie formatu i odtwarzanie odbywają się w przeglądarce.