Audio API предоставляет две конечные точки для преобразования аудио в текст:
- transcriptions - транскрибирует аудио на том же языке
- translations - переводит и транскрибирует аудио на английский язык
- gpt-4o-transcribe - высококачественная модель для транскрибации
- gpt-4o-mini-transcribe - оптимизированная версия с хорошим балансом скорости и качества
- gpt-4o-transcribe-diarize - модель с разделением по говорящим (диаризацией)
- whisper-1 - классическая модель с полной поддержкой функций
Новые модели GPT-4o поддерживают ограниченный набор параметров и только формат json.
Поддерживаются следующие форматы: mp3, mp4, mpeg, mpga, m4a, wav, webm.
Максимальный размер файла: 25 МБ.
curl --request POST \\ --url "https://api.proxyapi.ru/openai/v1/audio/transcriptions" \\ --header "Authorization: Bearer <КЛЮЧ>" \\ --header "Content-Type: multipart/form-data" \\ --form file=@/path/to/file/audio.mp3 \\ --form model=gpt-4o-transcribe
curl --request POST \\ --url "https://api.proxyapi.ru/openai/v1/audio/transcriptions" \\ --header "Authorization: Bearer <КЛЮЧ>" \\ --header "Content-Type: multipart/form-data" \\ --form file=@/path/to/file/speech.mp3 \\ --form model=gpt-4o-transcribe \\ --form prompt="Следующий разговор - лекция о последних разработках OpenAI, GPT-4.5 и будущем ИИ."
curl --request POST \\ --url "https://api.proxyapi.ru/openai/v1/audio/transcriptions" \\ --header "Authorization: Bearer <КЛЮЧ>" \\ --header "Content-Type: multipart/form-data" \\ --form file=@/path/to/file/meeting.mp3 \\ --form model=gpt-4o-transcribe-diarize \\ --form response_format=diarized_json
Для эндпоинта /translations обязательно указывайте response_format=verbose_json.
curl --request POST \\ --url "https://api.proxyapi.ru/openai/v1/audio/translations" \\ --header "Authorization: Bearer <КЛЮЧ>" \\ --header "Content-Type: multipart/form-data" \\ --form file=@/path/to/file/russian.mp3 \\ --form model=whisper-1 \\ --form response_format=verbose_json
curl --request POST \\ --url "https://api.proxyapi.ru/openai/v1/audio/transcriptions" \\ --header "Authorization: Bearer <КЛЮЧ>" \\ --header "Content-Type: multipart/form-data" \\ --form file=@example.wav \\ --form model=gpt-4o-mini-transcribe \\ --form stream=True
ProxyAPI поддерживает не все форматы ответа, доступные в оригинальном OpenAI API. Форматы text, srt и vtt не поддерживаются ни на одном из эндпоинтов.
json- JSON с текстом транскрипции (по умолчанию)verbose_json- подробный JSON с временными метками (толькоwhisper-1)diarized_json- JSON с разделением по говорящим (толькоgpt-4o-transcribe-diarize)
verbose_json- единственный поддерживаемый формат, обязателен
Для получения временных меток используйте модель whisper-1 с параметром timestamp_granularities:
transcription = client.audio.transcriptions.create( file=audio_file, model="whisper-1", response_format="verbose_json", timestamp_granularities=["word"] # или ["segment"] или ["word", "segment"] )
API поддерживает тот же набор языков, что и модель Whisper, включая русский, английский, французский, немецкий, китайский, японский и многие другие.
Полный список: африкаанс, арабский, армянский, азербайджанский, белорусский, боснийский, болгарский, каталанский, китайский, хорватский, чешский, датский, голландский, английский, эстонский, финский, французский, галисийский, немецкий, греческий, иврит, хинди, венгерский, исландский, индонезийский, итальянский, японский, каннада, казахский, корейский, латышский, литовский, македонский, малайский, маратхи, маори, непальский, норвежский, персидский, польский, португальский, румынский, русский, сербский, словацкий, словенский, испанский, суахили, шведский, тагальский, тамильский, тайский, турецкий, украинский, урду, вьетнамский и валлийский.
Для улучшения распознавания специальных терминов и аббревиатур используйте параметр prompt:
transcription = client.audio.transcriptions.create( model="whisper-1", file=audio_file, prompt="OpenAI, ChatGPT, GPT-4, API, машинное обучение, нейронные сети" )
Для дополнительной обработки транскрипции используйте GPT-4 для исправления ошибок и улучшения форматирования.
Для файлов больше 25 МБ разбивайте их на части:
from pydub import AudioSegment song = AudioSegment.from_mp3("long_audio.mp3") ten_minutes = 10 * 60 * 1000 # PyDub работает с миллисекундами first_10_minutes = song[:ten_minutes] first_10_minutes.export("audio_part1.mp3", format="mp3")
- Максимальный размер файла: 25 МБ
- Перевод поддерживается только на английский язык
/translationsработает только сresponse_format=verbose_json- Временные метки доступны только для модели
whisper-1 - Потоковая транскрибация не поддерживается в
whisper-1