API потокового синтеза речи (gRPC)
Для синтеза речи вы можете использовать gRPC-протокол. Подробнее о нем читайте в официальной документации.
Запросы на синтез через gRPC передаются на адрес:
smartspeech.sber.ru
Заголовки запросов и ответов для всех шагов одинаковы:
Заголовки запроса
Информация об аутентификации с помощью Access Token, переданная через OAuth 2.0.
Пример: Bearer eyJhbGciOi.cCI6IkpXVCJ9.eyJzd.1hcnRzcG.KUkw
Заголовки ответа
Уникальный идентификатор запроса, генерируемый сервером. 36 символов.
Пример: 22345200-abe8-4f60-90c8-0d43c5f6c0f6
Создание приложения
Для работы с синтезом речи через gRPC вам необходимо создать клиентское приложение. Вы можете использовать любой язык программирования, который есть в библиотеке для работы с gRPC.
При написании приложения используйте proto-файл.
Передача параметров синтеза
При обращении по gRPC-протоколу с запросом синтеза речи клиентское приложение использует метод Synthesis
. В сообщении клиент должен отправить опции синтеза в сообщении типа SynthesisRequest
.
Параметры сообщения:
pcm16_se
— 16-битный PCM-поток с одним аудиоканалом, закодированный знаковыми целыми числами. Частота дискретизации берется из параметраvoice
;opus
— ogg-поток с аудиокодеком opus внутри;wav16
— WAV PCM 16bit LE signed с заголовком. Частота дискретизации берется из параметраvoice
.text
;ssml
.
Аудиокодек.
Возможные значения:
Значение по умолчанию — wav16
Формат данных, передаваемых в теле запроса.
Возможные значения:
Значение по умолчанию — text
Текст или SSML-разметка с текстом
Код голоса, например: Nec_24000
. Первая часть означает диктора, вторая — частоту дискретизации аудио.
Модели с частотой 8000 Гц предназначены для использования в телефонии.
Вы можете выбрать голос из раздела Примеры голосов для синтеза или использовать уникальный брендированный голос с помощью сервиса YourVoice.
Получение ответа
Клиент передает текст на вход в составе сообщения SynthesisRequest
. Если запрос обработан успешно, то в теле ответа в поле data
придет бинарное представление синтезированного звука в запрошенном формате. Сервис в ответ передает клиенту сообщения SynthesisResponse
.
Нет необходимости ждать полной обработки всего аудиопотока, вы получаете заголовки ответа в течение секунды, а затем в потоковом режиме приходят бинарные данные.
Заголовки ответа
В качестве заголовка передаются метаданные. Подробнее о читайте в официальной документации gRPC.
Параметры ответа
Чанки аудио в заданном формате
Общая длительность сгенерированного в рамках запроса звука до текущего чанка
Возможные форматы
Если запрос обработан успешно, в поле data
возвращаются аудио-чанки в заданном формате.
Значение параметра data | Описание формата |
---|---|
|
|
|
|
|
|
Коды ошибок
Сервис SaluteSpeech сообщает об ошибках стандартными gRPC-статусами, про которые можно подробно прочесть в официальной документации.
Некоторые коды и описание ошибок:
Код | Описание |
---|---|
|
Клиент неправильно заполнил параметры синтеза речи |
|
Не определена модель из запроса |
|
Клиенту недоступно API синтеза речи |
|
Клиент превысил квоту |
|
Слишком много запросов |
|
Ошибка в работе сервиса синтеза речи |
|
Клиент не предоставил, либо предоставил истекший/невалидный |
Пример клиентского приложения
Пример клиентского приложения на Python смотрите по ссылке.