Перейти к основному содержанию
LocoPal AiLocoPal Ai
Подключение к APIИнтерфейсы моделей и генерации

Руководство

Интерфейс синтеза речи

Параметры запроса синтеза речи, бинарный ответ и типичные вопросы

Показать Markdown

Интерфейс синтеза речи

Платформа предоставляет интерфейс синтеза речи, совместимый с AI Platform. Доступность зависит от группы текущих API keys и каталога моделей: сначала убедитесь через GET /v1/models, что доступна аудиомодель, и только затем вызывайте этот интерфейс.

Запрос

ПараметрЗначение
МетодPOST
Путь/v1/audio/speech
АутентификацияAuthorization: Bearer <API_KEY>
Заголовки запросаContent-Type: application/json
Ответбинарный аудиофайл (не JSON)

Возвращается бинарный аудиофайл, а не JSON — поэтому с помощью --output (или -o) сразу запишите ответ в файл. При попытке разобрать его как JSON вы получите пустое тело ответа.

Доступные значения voice зависят от текущей модели; не все модели принимают alloy.

Запрос

curl -X POST "$LOCOPAL_BASE_URL/v1/audio/speech" \
  -H "Authorization: Bearer $LOCOPAL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "从 /v1/models 选择的音频模型 ID",
    "input": "欢迎使用 LocoPal Ai。",
    "voice": "alloy",
    "response_format": "mp3"
  }' \
  --output speech.mp3

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

ПараметрТипОписание
modelstringОбязательно. data[].id аудиомодели, возвращённый GET /v1/models.
inputstringОбязательно. Текст для синтеза. Максимальная длина определяется фактической моделью.
voicestringНазвание тембра. Доступные тембры зависят от текущей модели; ориентируйтесь на описание модели.
response_formatstringФормат выходного аудио, например mp3. Поддерживаемые форматы определяются фактической моделью.
speednumberСкорость речи. Поддержка и диапазон значений определяются фактической моделью.

Доступные диапазоны тембров, форматов и скорости речи различаются в зависимости от модели. Не предполагайте, что все модели поддерживают alloy или mp3, и не зашивайте список тембров конкретной модели в код.

Ответ

Успех

В успешном ответе тело содержит бинарные аудиоданные, а не JSON. Просто запишите их в файл или передайте клиенту потоком.

# 保存为文件
curl ... --output speech.mp3

# 检查确实是音频而不是 JSON
file speech.mp3

Ошибка

При ошибке возвращается ответ с кодом не 2xx и объектом error, структура совпадает с интерфейсами моделей:

{
  "error": {
    "code": "invalid_parameter",
    "message": "..."
  }
}

Типичные причины ошибок:

СитуацияПроявлениеДействие
В группе нет аудиомоделиmodel_not_found или модель недоступнаУбедитесь через GET /v1/models, что доступна аудиомодель
Тембр не поддерживается этой модельюinvalid_parameterИспользуйте тембр, поддерживаемый этой моделью
Формат не поддерживается этой модельюinvalid_parameterИспользуйте поддерживаемый response_format
Слишком частые запросыHTTP 429Повторите с задержкой согласно подсказке

Рекомендации по серверной интеграции

Синтез речи — синхронный интерфейс, ответом сразу являются аудиоданные; при интеграции учитывайте:

  1. Не разбирайте ответ как JSON. Сначала проверьте HTTP-статус и Content-Type, и только при ошибке читайте error как JSON;
  2. Не забывайте задавать Content-Type при прямой передаче аудио в браузер, иначе браузер обработает его как текст;
  3. Контролируйте длину input. Слишком длинный текст рекомендуется разбивать на стороне бизнес-логики, синтезировать по частям и затем склеивать, чтобы избежать превышения лимита одного запроса;
  4. Аудиофайлы рекомендуется переносить в собственное хранилище и не полагаться долго на временные результаты, возвращаемые платформой;
  5. Бизнес-бэкенд должен кэшировать часто повторяющиеся результаты синтеза, чтобы избежать повторного списания средств.

Асинхронные аудиозадачи

Помимо этого синхронного интерфейса платформа также предоставляет асинхронную генерацию аудио (например, музыку и звуковые эффекты). Статус и артефакты таких задач запрашиваются в разделе «Журнал задач» консоли; принцип работы аналогичен видеозадачам: после создания сохраните ID задачи и опрашивайте интерфейс запроса до конечного состояния, не создавайте задачу повторно.

Тарификация

Способ тарификации аудиоинтерфейса определяется описанием модели в каталоге моделей: возможна оплата за Token, за вызов или за длительность. Правила тарификации и расчётов см. в разделе Тарификация и счета.

Связанная документация

Эта страница была полезной?

На этой странице