Речь и эмбеддинги
Синтез речи
Заголовок раздела «Синтез речи»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.