Перейти к основному содержанию
POST
/
v1
/
audio
/
transcriptions
Транскрибировать аудио в текст (STT)
curl --request POST \
  --url https://polza.ai/api/v1/audio/transcriptions \
  --header 'Authorization: Bearer <token>' \
  --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
import requests

url = "https://polza.ai/api/v1/audio/transcriptions"

payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\ndata:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAA...\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nwhisper-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nru\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nЭто разговор об искусственном интеллекте\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"response_format\"\r\n\r\njson\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"temperature\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timestamp_granularities%5B0%5D\"\r\n\r\nword\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timestamp_granularities%5B1%5D\"\r\n\r\nsegment\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\nuser-123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chunking_strategy\"\r\n\r\nauto\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"include\"\r\n\r\nlogprobs\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_names%5B0%5D\"\r\n\r\nagent\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_names%5B1%5D\"\r\n\r\ncustomer\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_references\"\r\n\r\n<array>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"stream\"\r\n\r\nfalse\r\n-----011000010111000001101001--"
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "multipart/form-data"
}

response = requests.post(url, data=payload, headers=headers)

print(response.text)
const form = new FormData();
form.append('file', 'data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAA...');
form.append('model', 'whisper-1');
form.append('language', 'ru');
form.append('prompt', 'Это разговор об искусственном интеллекте');
form.append('response_format', 'json');
form.append('temperature', '0');
form.append('timestamp_granularities[0]', 'word');
form.append('timestamp_granularities[1]', 'segment');
form.append('user', 'user-123');
form.append('chunking_strategy', 'auto');
form.append('include', 'logprobs');
form.append('known_speaker_names[0]', 'agent');
form.append('known_speaker_names[1]', 'customer');
form.append('known_speaker_references', '<array>');
form.append('stream', 'false');

const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};

options.body = form;

fetch('https://polza.ai/api/v1/audio/transcriptions', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://polza.ai/api/v1/audio/transcriptions",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\ndata:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAA...\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nwhisper-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nru\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nЭто разговор об искусственном интеллекте\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"response_format\"\r\n\r\njson\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"temperature\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timestamp_granularities%5B0%5D\"\r\n\r\nword\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timestamp_granularities%5B1%5D\"\r\n\r\nsegment\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\nuser-123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chunking_strategy\"\r\n\r\nauto\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"include\"\r\n\r\nlogprobs\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_names%5B0%5D\"\r\n\r\nagent\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_names%5B1%5D\"\r\n\r\ncustomer\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_references\"\r\n\r\n<array>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"stream\"\r\n\r\nfalse\r\n-----011000010111000001101001--",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "Content-Type: multipart/form-data"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://polza.ai/api/v1/audio/transcriptions"

	payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\ndata:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAA...\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nwhisper-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nru\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nЭто разговор об искусственном интеллекте\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"response_format\"\r\n\r\njson\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"temperature\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timestamp_granularities%5B0%5D\"\r\n\r\nword\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timestamp_granularities%5B1%5D\"\r\n\r\nsegment\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\nuser-123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chunking_strategy\"\r\n\r\nauto\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"include\"\r\n\r\nlogprobs\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_names%5B0%5D\"\r\n\r\nagent\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_names%5B1%5D\"\r\n\r\ncustomer\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_references\"\r\n\r\n<array>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"stream\"\r\n\r\nfalse\r\n-----011000010111000001101001--")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://polza.ai/api/v1/audio/transcriptions")
  .header("Authorization", "Bearer <token>")
  .body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\ndata:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAA...\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nwhisper-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nru\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nЭто разговор об искусственном интеллекте\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"response_format\"\r\n\r\njson\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"temperature\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timestamp_granularities%5B0%5D\"\r\n\r\nword\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timestamp_granularities%5B1%5D\"\r\n\r\nsegment\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\nuser-123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chunking_strategy\"\r\n\r\nauto\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"include\"\r\n\r\nlogprobs\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_names%5B0%5D\"\r\n\r\nagent\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_names%5B1%5D\"\r\n\r\ncustomer\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_references\"\r\n\r\n<array>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"stream\"\r\n\r\nfalse\r\n-----011000010111000001101001--")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://polza.ai/api/v1/audio/transcriptions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\ndata:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAA...\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"model\"\r\n\r\nwhisper-1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"language\"\r\n\r\nru\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"prompt\"\r\n\r\nЭто разговор об искусственном интеллекте\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"response_format\"\r\n\r\njson\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"temperature\"\r\n\r\n0\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timestamp_granularities%5B0%5D\"\r\n\r\nword\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timestamp_granularities%5B1%5D\"\r\n\r\nsegment\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"user\"\r\n\r\nuser-123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"chunking_strategy\"\r\n\r\nauto\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"include\"\r\n\r\nlogprobs\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_names%5B0%5D\"\r\n\r\nagent\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_names%5B1%5D\"\r\n\r\ncustomer\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"known_speaker_references\"\r\n\r\n<array>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"stream\"\r\n\r\nfalse\r\n-----011000010111000001101001--"

response = http.request(request)
puts response.read_body
{
  "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,
    "cost_rub": 0.01
  }
}
Этот эндпоинт совместим с OpenAI SDK и подходит для быстрой миграции существующего кода. Если вы разрабатываете новый софт — рекомендуем использовать Media API, который предоставляет единый интерфейс для всех медиа-операций.

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

МодельIDОписание
Whisper 1openai/whisper-1Классическая модель OpenAI (по умолчанию). Поддерживает verbose_json, srt, vtt, пословные/посегментные таймстампы
Whisper Large V3openai/whisper-large-v3Улучшенная multilingual-модель OpenAI. Форматы: json, text, verbose_json
Whisper Large V3 Turboopenai/whisper-large-v3-turboУскоренная версия Large V3. Форматы: json, text, verbose_json
GPT-4o Transcribeopenai/gpt-4o-transcribeВысокое качество. Форматы: json, text. Поддерживает include: ["logprobs"]
GPT-4o Mini Transcribeopenai/gpt-4o-mini-transcribeБыстрая/дешёвая. Форматы: json, text. Поддерживает include: ["logprobs"]
Google Chirp 3google/chirp-3STT от Google. Форматы: json, text
Qwen3 ASR Flashqwen/qwen3-asr-flash-2026-02-10Быстрая multilingual-модель от Qwen. Форматы: json, text
Voxtral Mini Transcribemistralai/voxtral-mini-transcribeSTT от Mistral AI. Форматы: json, text
Parakeet TDT 0.6B v3nvidia/parakeet-tdt-0.6b-v3Лёгкая и быстрая модель от NVIDIA. Форматы: json, text
ElevenLabs STTelevenlabs/speech-to-textSTT от ElevenLabs. Поддерживает диаризацию через diarized_json
Тарификация STT — посекундная (per_second), по длительности аудио.

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

ПараметрТипОбязательныйОписание
filestringДаАудиофайл: base64 (data:audio/mp3;base64,...) или URL
modelstringНетМодель транскрибации (по умолчанию openai/whisper-1)
languagestringНетISO-639-1: auto (по умолчанию), ru, en, de, fr, es, it, pt, pl, uk, nl, sv, da, fi, cs, sk, ro, bg, hr, el, tr, ar, hi, zh, ja, ko, id
temperaturenumberНетТемпература (0–1, по умолчанию 0). В основном для whisper-1
response_formatenumНетjson (по умолчанию), text, srt, verbose_json, vtt, diarized_json
promptstringНетКонтекст транскрипции, до ~2048 символов. Не поддерживается для gpt-4o-transcribe-diarize
timestamp_granularitiesstring[]Нетword, segment (можно оба). Только whisper-1 + verbose_json
chunking_strategy'auto' | objectНетСтратегия разбивки. Обязателен для gpt-4o-transcribe-diarize при аудио > 30 сек
includestring[]Нетlogprobs. Только gpt-4o-transcribe и gpt-4o-mini-transcribe
known_speaker_namesstring[]НетИмена известных спикеров, до 4. Только для диаризации
known_speaker_referencesstring[]НетАудио-референсы спикеров (data-URL). Только для диаризации
streambooleanНетСтриминг ответа. Не поддерживается для whisper-1
userstringНетИдентификатор конечного пользователя

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

  • openai/whisper-1json, text, srt, verbose_json, vtt
  • openai/gpt-4o-transcribe, openai/gpt-4o-mini-transcribejson, text
  • openai/gpt-4o-transcribe-diarizejson, text, diarized_json
  • elevenlabs/speech-to-text → стандартный набор + diarized_json

Объект chunking_strategy типа server_vad

ПолеТипДиапазонНазначение
type'server_vad'обязателен
prefix_padding_msnumber≥ 0паддинг перед сегментом, мс
silence_duration_msnumber≥ 0длительность тишины для разрыва, мс
thresholdnumber0–1порог громкости (VAD)
Либо строкой: "chunking_strategy": "auto".

Диаризация (gpt-4o-transcribe-diarize)

Модель gpt-4o-transcribe-diarize возвращает разбивку по спикерам. Используйте response_format: "diarized_json".
При аудио длительностью более 30 секунд параметр chunking_strategy обязателен. Без него запрос вернёт ошибку 400.
Опционально можно заранее «обучить» диаризатор на конкретные голоса:
  • known_speaker_names — массив имён, до 4. Имена используются как метки спикеров.
  • known_speaker_references — массив data-URL с короткими аудио-примерами тех же спикеров.

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

MP3, WAV, M4A, FLAC, OGG, WebM.
Лимит размера тела — около 15 МБ. На больших файлах возможен 502. Для больших аудио разбивайте файл на части.

Примеры

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"
  }'
import requests
import base64

with open('audio.mp3', 'rb') as f:
    audio_base64 = base64.b64encode(f.read()).decode('utf-8')

response = requests.post(
    'https://polza.ai/api/v1/audio/transcriptions',
    headers={'Authorization': 'Bearer YOUR_API_KEY'},
    json={
        'model': 'openai/whisper-1',
        'file': audio_base64,
        'language': 'ru'
    }
)

data = response.json()
print(data['text'])
const fs = require('fs');

const audioFile = fs.readFileSync('audio.mp3');
const audioBase64 = audioFile.toString('base64');

const response = await fetch('https://polza.ai/api/v1/audio/transcriptions', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    model: 'whisper-1',
    file: audioBase64,
    language: 'ru'
  })
});

const data = await response.json();
console.log(data.text);

Пример с диаризацией

curl -X POST "https://polza.ai/api/v1/audio/transcriptions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-transcribe-diarize",
    "file": "BASE64_ENCODED_AUDIO",
    "response_format": "diarized_json",
    "chunking_strategy": "auto",
    "known_speaker_names": ["agent", "client"]
  }'

Ответ (200)

response_format: json (по умолчанию)

{
  "text": "Привет! Это тестовое сообщение.",
  "language": "ru",
  "duration": 10.5,
  "model": "whisper-1",
  "usage": { "durationSeconds": 10.5, "cost": 0.11, "cost_rub": 0.11 }
}

response_format: verbose_json (только whisper-1)

{
  "text": "Привет, мир!",
  "language": "ru",
  "duration": 5.5,
  "model": "whisper-1",
  "segments": [
    {
      "id": 0,
      "seek": 0,
      "start": 0.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.0, "end": 0.5 }
  ],
  "usage": { "durationSeconds": 5.5, "cost": 0.06, "cost_rub": 0.06 }
}
Поле words появляется, только если указан timestamp_granularities: ["word"].

response_format: diarized_json (gpt-4o-transcribe-diarize)

{
  "task": "transcribe",
  "duration": 27.4,
  "text": "agent: Привет!\nclient: Здравствуйте!",
  "segments": [
    {
      "id": "seg_001",
      "start": 0.0,
      "end": 4.7,
      "text": "Привет, как дела?",
      "speaker": "agent",
      "type": "transcript.text.segment"
    }
  ],
  "model": "gpt-4o-transcribe-diarize",
  "usage": { "durationSeconds": 27, "cost": 0.27, "cost_rub": 0.27 }
}

response_format: text / srt / vtt

Поле text содержит результат — plain text либо готовые субтитры в формате SRT/VTT. Поля segments/words отсутствуют.

Поля ответа

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

Авторизации

Authorization
string
header
обязательно

API ключ передаётся в заголовке: Authorization: Bearer <POLZA_AI_API_KEY>

Тело

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,
  "cost_rub": 0.01
}