Распознавание и синтез речи
Аудиоэндпоинты в формате OpenAI: с ними работают SDK OpenAI (client.audio.transcriptions.create, client.audio.speech.create).
Распознавание речи
POST/api/v1/audio/transcriptions принимает два формата: multipart/form-data (file, model и необязательные language, temperature, response_format — json или verbose_json, timestamp_granularities) или JSON {model, input_audio: {data, format}} с аудио в base64. Файл — до 25 МБ.
curl https://infergate.ru/api/v1/audio/transcriptions \
-H "Authorization: Bearer sk-..." \
-F model="openai/whisper-1" \
-F file=@speech.mp3 \
-F language=ruОтвет — {text, usage}; при verbose_json добавляются язык, длительность, сегменты и слова. Стоимость зависит от модели — за секунду, час или токены; сумма приходит в usage.
{
"text": "Привет! Это пример распознавания речи.",
"usage": { "seconds": 6.4, "cost_rub": 0.018423, "cost": 0.000178, "fx_rate": 103.5 }
}Список моделей — GET/api/v1/audio/transcriptions/models.
Синтез речи
POST/api/v1/audio/speech: поля model, input (текст), voice и необязательные response_format (mp3 или pcm) и speed. Ответ — сам аудиофайл (audio/mpeg или audio/pcm), без JSON.
curl https://infergate.ru/api/v1/audio/speech \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{
"model": "fish-audio/s1",
"input": "Привет! Это синтез речи.",
"voice": "alloy",
"response_format": "mp3"
}' \
--output speech.mp3Стоимость зависит от модели — за символы, байты или аудиотокены. В ответе её нет: списание происходит через несколько секунд и видно в журнале запросов. Список моделей — GET/api/v1/audio/speech/models.