Как воспроизвести Base64-аудио
- Вставьте Base64 или URI вида
data:audio/…;base64,в поле Base64 или data URI. Длинные строки можно загрузить кнопкой Открыть файл .txt. При открытии страницы загружен короткий пример WAV из двух нот. - Плеер появляется под сведениями о файле. Длительность показывает продолжительность, как только браузер прочитает заголовок, например
0:03.0. - Имя файла, Расширение и MIME-тип заполняются по найденному формату. При необходимости их можно поменять.
- Нажмите Скачать файл, чтобы сохранить аудио, или Скопировать как data URI, чтобы получить строку для
<audio src>.
Звук декодируется и воспроизводится внутри браузера. Политика безопасности контента (CSP) страницы блокирует все сетевые запросы, кроме счётчика просмотров Cloudflare, так что отсюда запись никуда не может уйти.
Какие форматы играют в браузере
Плеер здесь обычный элемент <audio>, поэтому всё зависит от декодеров, встроенных в браузер. Актуальные версии справляются с большинством форматов:
| Формат | Base64 начинается с | Chrome, Edge, Firefox | Safari |
|---|---|---|---|
| MP3 | SUQz (с тегом ID3), //s, //M | Да | Да |
| WAV с сэмплами PCM | UklGR | Да | Да |
| AAC в M4A | AAAAHGZ0eXBNNEEg и похожие | Да | Да |
| FLAC | ZkxhQw | Да | Да |
| Ogg Vorbis | T2dnUw | Да | С Safari 18.4 |
| Opus в Ogg или WebM | T2dnUw, GkXfo | Да | Частично, зависит от версии и контейнера |
| AMR (старые записи с телефонов) | IyFBTVIK | Нет | Нет |
| WAV с ADPCM или GSM | UklGR | Обычно нет | Обычно нет |
WAV указывает кодек в отдельном поле заголовка, поэтому два файла .wav могут вести себя по-разному. Chrome, например, играет ещё и телефонные WAV в µ-law и A-law, но не ADPCM. Если браузер не может декодировать файл, в строке Длительность будет «н/д», а над плеером появится подсказка: «Ваш браузер не может воспроизвести этот файл AMR. Скачайте его и откройте в медиаплеере.» VLC и ffmpeg справляются со всеми форматами из таблицы.
Аудио внутри видеоконтейнера
Аудио не всегда приходит в аудиоформате. Chrome по умолчанию записывает через MediaRecorder WebM с Opus внутри, а некоторые сервисы упаковывают AAC в файл MP4 без бренда M4A. Тогда инструмент сообщит «Похоже на WebM, а не на аудио.» или «Похоже на MP4, а не на аудио.» и предложит кнопку скачивания с этим расширением, а плеер всё равно работает: в строке размеров будет только аудио. Сохранять такой файл как .webm или .mp4 правильно; большинство аудиоплееров их тоже открывают.
Если инструмент определил просто Binary, но вы знаете кодек, впишите его MIME-тип в поле MIME-тип, например audio/ogg. Превью перестроится с аудиоплеером для этого типа, и догадку можно сразу проверить.
Сырое аудио без заголовка
Некоторые API для речи и голоса возвращают сырые сэмплы, часто 16-битный PCM с частотой 16 или 24 кГц, без заголовка WAV вокруг. У таких байтов нет сигнатуры, поэтому инструмент сообщает «Не похоже на аудио (определено: Binary)», и воспроизвести их нечем. Нужно добавить заголовок с частотой дискретизации, которая указана в документации API; как это сделать в несколько строк на Python, показано на странице Base64 в WAV.
Откуда берётся Base64-аудио
API синтеза речи возвращают озвученный текст полем Base64 в JSON. Экспорты чатов и мессенджеров так же хранят голосовые сообщения. Веб-приложения держат короткие звуки как URI data:audio/… в коде или CSS, а запись из браузера часто уходит на сервер в виде Base64 в JSON-запросе. Чтобы превратить звуковой файл в строку, используйте аудио в Base64.
Как проверить кодек в командной строке
Если файл не воспроизводится, ffprobe назовёт кодек внутри:
base64 -d clip.b64 > clip.bin
ffprobe -v error -show_entries stream=codec_name,sample_rate,channels -of csv=p=0 clip.bin
Для телефонной записи он выведет что-то вроде adpcm_ima_wav,8000,1, и становится понятно, почему браузер сдался. После конвертации в обычный PCM файл играет везде: ffmpeg -i clip.bin -c:a pcm_s16le clip.wav. Больше рецептов для командной строки в статье Base64 в Bash, а подробности о MP3 на странице Base64 в MP3.
Вопросы и ответы
Как воспроизвести аудио из строки Base64?
Вставьте строку в поле выше и нажмите play в появившемся плеере. Подходят и чистый Base64, и URI вида data:audio/…;base64,; формат инструмент определяет по байтам.
Почему Base64-аудио не воспроизводится?
Либо в браузере нет декодера для кодека внутри (например, AMR или WAV с ADPCM или GSM), либо это сырые сэмплы без заголовка файла. Подсказка под плеером скажет, какой у вас случай; подробности в таблице и в разделе о сыром аудио ниже.
Какой MIME-тип указывать для Base64-аудио?
Зависит от формата: audio/mpeg для MP3, audio/wav для WAV, audio/ogg для Ogg Vorbis и Opus, audio/mp4 для M4A, audio/flac для FLAC. После декодирования поле MIME-тип показывает тип, подходящий к найденному формату.
Как узнать длительность Base64-аудио?
Декодируйте его здесь: строка Длительность показывает минуты и секунды, как только браузер прочитает метаданные файла. В коде декодируйте данные в файл и запустите на нём ffprobe -show_entries format=duration.