API потокового синтеза речи (gRPC)
Для синтеза речи вы можете использовать gRPC-протокол. Подробнее о нем читайте в официальной документации.
Запросы на синтез через gRPC передаются на адрес:
smartspeech.sber.ru
Заголовки запросов и ответов для всех шагов одинаковы:
Заголовки запроса
Заголовки ответа
Создание приложения
Для работы с синтезом речи через gRPC вам необходимо создать клиентское приложение. Вы можете использовать любой язык программирования, который есть в библиотеке для работы с gRPC.
При написании приложения используйте proto-файл.
Передача параметров синтеза
При обращении по gRPC-протоколу с запросом синтеза речи клиентское приложение использует метод Synthesis
. В сообщении клиент должен отправить опции синтеза в сообщении типа SynthesisRequest
.
Параметры сообщения:
Получение ответа
Клиент передает текст на вход в составе сообщения SynthesisRequest
. Если запрос обработан успешно, то в теле ответа в поле data
придет бинарное представление синтезированного звука в запрошенном формате. Сервис в ответ передает клиенту сообщения SynthesisResponse
.
Нет необходимости ждать полной обработки всего аудиопотока, вы получаете заголовки ответа в течение секунды, а затем в потоковом режиме приходят бинарные данные.
Заголовки ответа
В качестве заголовка передаются метаданные. Подробнее о читайте в официальной документации gRPC.
Параметры ответа
Возможные форматы
Если запрос обработан успешно, в поле data
возвращаются аудио-чанки в заданном формате.
Значение параметра data | Описание формата |
---|---|
|
|
|
|
|
|
Коды ошибок
Сервис SaluteSpeech сообщает об ошибках стандартными gRPC-статусами, про которые можно подробно прочесть в официальной документации.
Некоторые коды и описание ошибок:
Код | Описание |
---|---|
|
Клиент неправильно заполнил параметры синтеза речи |
|
Не определена модель из запроса |
|
Клиенту недоступно API синтеза речи |
|
Клиент превысил квоту |
|
Слишком много запросов |
|
Ошибка в работе сервиса синтеза речи |
|
Клиент не предоставил, либо предоставил истекший/невалидный |
Пример клиентского приложения
Пример клиентского приложения на Python смотрите по ссылке.