Перейти к основному содержанию
POST
/
v1
/
audio
/
transcriptions
Транскрибировать аудио в текст (STT)
curl --request POST \
  --url https://polza.ai/api/v1/audio/transcriptions \
  --header 'Content-Type: multipart/form-data' \
  --form 'file=data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAA...' \
  --form model=whisper-1 \
  --form language=ru \
  --form 'prompt=Это разговор об искусственном интеллекте' \
  --form response_format=json \
  --form temperature=0 \
  --form 'timestamp_granularities[0]=word' \
  --form 'timestamp_granularities[1]=segment' \
  --form user=user-123 \
  --form chunking_strategy=auto \
  --form include=logprobs \
  --form 'known_speaker_names[0]=agent' \
  --form 'known_speaker_names[1]=customer' \
  --form 'known_speaker_references=<array>' \
  --form stream=false
{
  "text": "Привет! Это тестовое сообщение.",
  "language": "ru",
  "duration": 10.5,
  "segments": [
    {
      "id": 0,
      "seek": 0,
      "start": 0,
      "end": 5.5,
      "text": "Привет, мир!",
      "tokens": [
        1,
        2,
        3
      ],
      "temperature": 0,
      "avg_logprob": -0.5,
      "compression_ratio": 1.2,
      "no_speech_prob": 0.01
    }
  ],
  "words": [
    {
      "word": "Привет",
      "start": 0,
      "end": 0.5
    }
  ],
  "model": "whisper-1",
  "usage": {
    "durationSeconds": 10.5,
    "cost": 0.01,
    "costRub": 0.01
  }
}
Этот эндпоинт совместим с OpenAI SDK и подходит для быстрой миграции существующего кода. Если вы разрабатываете новый софт — рекомендуем использовать Media API, который предоставляет единый интерфейс для всех медиа-операций.

Доступные модели

МодельIDОписание
Whisper 1openai/whisper-1Классическая модель OpenAI (по умолчанию)
GPT-4o Transcribeopenai/gpt-4o-transcribeУлучшенная транскрибация
GPT-4o Mini Transcribeopenai/gpt-4o-mini-transcribeБыстрая версия

Параметры запроса

ПараметрТипОбязательныйОписание
filestringДаАудиофайл в формате base64 или URL
modelstringНетМодель транскрибации (по умолчанию openai/whisper-1)
languagestringНетКод языка ISO-639-1 (например, “ru”)
temperaturenumberНетТемпература (0-1, по умолчанию 0)
response_formatstringНетФормат ответа (по умолчанию json)
promptstringНетПодсказка для модели
timestamp_granularitiesarrayНетДетализация: “word”, “segment”
streambooleanНетПотоковый режим
userstringНетИдентификатор конечного пользователя

Продвинутые параметры

ПараметрТипОписание
chunking_strategyobjectСтратегия разбивки (для gpt-4o-transcribe)
includearrayДополнительные данные: “logprobs”
known_speaker_namesarrayИмена известных спикеров (макс. 4, для diarized_json)
known_speaker_referencesarrayАудио-примеры голосов спикеров (data URLs)

Форматы ответа

ФорматОписание
jsonПростой JSON с текстом (по умолчанию)
textТолько текст
srtФормат субтитров SRT
vttФормат субтитров WebVTT
verbose_jsonПодробный JSON с сегментами и таймкодами
diarized_jsonJSON с разметкой спикеров

Поддерживаемые форматы

MP3, WAV, M4A, FLAC, OGG, WebM
Максимальный размер файла — 25 MB. Для больших файлов рекомендуется разбивать на части.

Примеры

curl -X POST "https://polza.ai/api/v1/audio/transcriptions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/whisper-1",
    "file": "BASE64_ENCODED_AUDIO",
    "language": "ru"
  }'

Ответ (200)

{
  "text": "Привет, это тестовая запись для проверки транскрибации.",
  "language": "ru",
  "duration": 5.32,
  "segments": [
    {
      "id": 0,
      "start": 0.0,
      "end": 2.5,
      "text": "Привет, это тестовая запись"
    },
    {
      "id": 1,
      "start": 2.5,
      "end": 5.32,
      "text": "для проверки транскрибации."
    }
  ],
  "usage": {
    "durationSeconds": 5.32,
    "cost_rub": 0.15,
    "cost": 0.15
  }
}

Поля ответа

ПолеОписание
textПолный транскрибированный текст
languageОпределённый язык
durationДлительность аудио в секундах
segmentsСегменты с таймкодами (для verbose_json)
wordsСлова с таймкодами (при timestamp_granularities: [“word”])
usageИспользование: durationSeconds, cost_rub, cost

Тело

file
string
обязательно

Аудио файл в формате base64 (data:audio/mp3;base64,...) или URL

Пример:

"data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAA..."

model
string
по умолчанию:whisper-1

ID модели для транскрипции

Пример:

"whisper-1"

language
string

Язык аудио в формате ISO-639-1 (например: ru, en, de)

Пример:

"ru"

prompt
string

Промпт для улучшения контекста транскрипции

Пример:

"Это разговор об искусственном интеллекте"

response_format
enum<string>
по умолчанию:json

Формат ответа

Доступные опции:
json,
text,
srt,
verbose_json,
vtt,
diarized_json
temperature
number
по умолчанию:0

Температура сэмплирования (0-1)

Требуемый диапазон: 0 <= x <= 1
Пример:

0

timestamp_granularities
enum<string>[]

Granularity для временных меток (только для verbose_json)

Доступные опции:
word,
segment
Пример:
["word", "segment"]
user
string

Уникальный идентификатор конечного пользователя для отслеживания и предотвращения злоупотреблений

Пример:

"user-123"

chunking_strategy

Chunking strategy для разбивки аудио (обязателен для gpt-4o-transcribe-diarize при >30 сек)

Доступные опции:
auto
Пример:

"auto"

include
enum<string>[]

Дополнительная информация в ответе (logprobs)

Доступные опции:
logprobs
Пример:
["logprobs"]
known_speaker_names
array[]

Имена известных спикеров (до 4)

Пример:
["agent", "customer"]
known_speaker_references
array[]

Аудио референсы для известных спикеров (data URLs)

stream
boolean

Стриминг ответа (не поддерживается для whisper-1)

Пример:

false

Ответ

text
string
обязательно

Транскрибированный текст

Пример:

"Привет! Это тестовое сообщение."

language
string

Определенный язык аудио (ISO-639-1)

Пример:

"ru"

duration
number

Длительность аудио в секундах

Пример:

10.5

segments
object[]

Сегменты с таймстампами (для verbose_json)

words
object[]

Words с таймстампами (для verbose_json с word granularity)

model
string

ID использованной модели

Пример:

"whisper-1"

usage
object

Информация об использовании

Пример:
{
  "durationSeconds": 10.5,
  "cost": 0.01,
  "costRub": 0.01
}