Перейти к содержимому

Речь и эмбеддинги

POST /v1/audio/speech возвращает аудиофайл целиком, синхронно.

speech = client.audio.speech.create(
model="tts-1",
voice="nova",
input="Здравствуйте! Ваш заказ собран и ждёт в пункте выдачи.",
)
speech.write_to_file("out.mp3")
Поле Описание
input Текст, обязательное
model tts-1 принимается для совместимости; можно указать конкретную модель из каталога
voice alloy, echo, fable, nova, shimmer и другие — список в поле voices каталога. Неизвестный голос молча заменяется на голос по умолчанию
response_format Формат аудио
speed Скорость речи

Тарификация — по длине входного текста, за 1000 символов. Длительность полученного аудио на цену не влияет, так что считать бюджет можно заранее, до вызова.

POST /v1/audio/transcriptions принимает multipart/form-data.

Окно терминала
curl https://api.mixen.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $MIXEN_API_KEY" \
-F file=@meeting.m4a \
-F model=whisper-1 \
-F language=ru
Поле Описание
file Аудиофайл, обязательное
model whisper-1 для совместимости
language Код языка; без него определяется автоматически
response_format По умолчанию json

Цена — за минуту аудио.

POST /v1/embeddings — векторы для поиска, кластеризации и RAG.

vec = client.embeddings.create(
model="text-embedding-3-small",
input=["первый документ", "второй документ"],
)
print(len(vec.data), len(vec.data[0].embedding))

Принимаются text-embedding-3-small, text-embedding-3-large и text-embedding-ada-002. Поле input — строка или массив строк; массивом дешевле и быстрее, чем циклом по одному.

Цена — за миллион входных токенов.

Синтез и распознавание требуют область audio, эмбеддинги — embeddings. Ключ без нужной области получит 403.