ym88659208ym87991671
HTTP API синхронного синтеза речи сервиса SaluteSpeech | Документация для разработчиков

API синхронного синтеза речи (HTTP)

Обновлено 14 декабря 2023

Чтобы синтезировать речь, отправьте POST-запрос с параметрами синтеза и токеном, а также текстом для синтеза в теле запроса. Текст может быть в формате UTF8 или в виде SSML-разметки.

Максимальный размер тела запроса — 4 000 символов, включая пробелы и SSML-разметку.

В случае успешной обработки в ответе вы получите бинарное представление синтезированного звука в запрошенном формате.

Запрос

Отправьте запрос на адрес:

https://smartspeech.sber.ru/rest/v1/text:synthesize

Заголовки запроса

Authorization
required
string <Bearer <Access token>>

Информация об аутентификации, переданная через OAuth 2.0.
Пример: Bearer eyJhbGciOi.cCI6IkpXVCJ9.eyJzd.1hcnRzcG.KUkw

Content-Type
required
string

Формат данных, передаваемых в теле запроса.
Возможные значения:

  • application/text — текст в теле запроса передается в формате UTF8, например: Привет из 1984!;
  • application/ssml — текст в теле запроса передается в формате SSML-разметки, например: <speak>За'мок на замке</speak>
{
  • "Authorization": "string",
  • "Content-Type": "string"
}

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

format
string

Формат синтезируемого аудио.
Возможные значения:

  • wav16;
  • pcm16;
  • opus;
  • alaw.

Значение по умолчанию — wav16

voice
string

Код голоса, первая часть означает диктора, вторая - частоту дискретизации аудио. Пример: Nec_24000.
Модели с частотой 8000 Гц предназначены для использования в телефонии.
Вы можете выбрать голос из раздела Примеры голосов для синтеза или использовать уникальный брендированный голос с помощью сервиса YourVoice

{
  • "format": "string",
  • "voice": "string"
}

Возможные форматы аудио

ФорматОписание

wav16

Возвращается WAV PCM 16bit LE signed с заголовком.

Частота дискретизации берется из параметра voice. Значение параметра длины синтеза в заголовке — 0xFFFF, т. к. в момент форматирования заголовка невозможно знать длину синтезируемого звука.

Один фрейм звука — 16 бит, однако HTTP не гарантирует, что будет прочитано четное количество байт на каждый чанк. Учитывайте это при имплементации клиента

pcm16

Возвращается WAV PCM 16bit LE signed без заголовка.

Частота дискретизации берется из параметра voice.

Один фрейм звука — 16 бит, однако HTTP не гарантирует, что будет прочитано четное количество байт на каждый чанк. Учитывайте это при имплементации клиента

opus

Возвращается opus в контейнере ogg.

Используется variable bitrate. Качество звука почти такое же, как и при audio/x-wav или audio/x-pcm, но объем в несколько раз меньше

alaw

Возвращается ALAW или А-закон без заголовка.

Алгоритм сжатия звуковых данных с потерей информации

Пример запроса

curl -H "Authorization: Bearer eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4R0NNIiwidHlwIjoiSldUIn0..2EpRX7W33f8Bn7eL.uXPQt0QXDFPNKaC6uADyF24hiiYxVkdQI0G1AXV3YHaTyFWYnVbeIbw_aR8No8eiZaUbzlwT05HvUcKp.6df0vRM3DcDZmxWfwYcVUA" /
-H "Content-Type: application/text" /
--data-binary "Текст для синтеза" "https://smartspeech.sber.ru/rest/v1/text:synthesize?format=opus&voice=May_24000" > out.opus

Ответ

Если запрос обработан успешно, в ответе возвращается код 200, а тело ответа содержит бинарное представление синтезированного звука в запрошенном формате.

Нет необходимости ждать полной обработки всего аудиопотока, вы получаете заголовки ответа в течение секунды, а затем в потоковом режиме приходят бинарные данные. Для потоковой передачи аудио в теле ответа используется Transfer-Encoding: chunked (см. RFC).

Заголовки ответа

X-Request-ID
required
string

Уникальный ID запроса, генерируемый сервером. 36 символов.
Пример: 22345200-abe8-4f60-90c8-0d43c5f6c0f6

Content-Type
required
string

MIME аудиоформата синтезируемого аудио.
Возможные значения:

  • audio/x-wav;
  • audio/x-pcm;bit=16;rate=<частота дискретизации>;
  • audio/ogg;codecs=opus
{
  • "X-Request-ID": "string",
  • "Content-Type": "string"
}

В случае ошибки заголовок Content-Type имеет формат application/json.

Параметры ответа

При успешном запросе вы получаете в ответ HTTP-код 200.

Значение параметра formatОписание формата

wav16

audio/x-wav

pcm16

audio/x-pcm; bit=16; rate=<частота дискретизации>

opus

audio/ogg; codecs=opus

alaw

audio/x-pcm;bit=16;rate=<частота дискретизации>

Коды ошибок

КодОписание
400Ошибка в параметрах запроса.
Пример {"status": 400, "message": "Id must not be empty"}
401Не предоставлен токен для аутентификации.
Пример {"status": 401, "message": "Unauthorized"}
402Требуется оплатить сервис.
Пример {"status": 402, "message": "Payment Required"}
429Слишком много запросов.
Пример {"status": 429, "message": "Too Many Requests"}
500Внутренняя ошибка сервиса.
Пример {"status": 500, "message": "Internal Server Error"}
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.