• Распознавание речи
  • Синтез речи
  • Тарифы
  • Использование API
    • Авторизация в API
    • STT: gRPC API
    • TTS: gRPC API
    • LongRunning: gRPC API
    • LongRunning: API загрузки файлов
    • STT: Туториал
    • TTS: Туториал

gRPC API сервиса синтеза речи


Исходная схема: apis_ru/tinkoff/cloud/tts/v1/tts.proto

Services

TextToSpeech

Синтез речи.

Имя методаТип запросаТип ответаОписание
ListVoicesListVoicesRequestListVoicesResponsesНе реализован Метод для получения списка доступных голосов.
SynthesizeSynthesizeSpeechRequestSynthesizeSpeechResponseНе реализован Метод для синтеза аудио.
StreamingSynthesizeSynthesizeSpeechRequestStreamingSynthesizeSpeechResponse streamМетод для потокового синтеза.

Enumerations

AudioEncoding

Формат кодирования аудио. Задаёт и контейнер, и кодек.

ИмяЗначениеОписание
ENCODING_UNSPECIFIED0Не задан - недопустимое значение. Используется в качестве значения по умолчанию для исключения случайных ошибок.
LINEAR161PCM без заголовков с целыми знаковыми 16-битными семплами в линейном распределении.
MULAW3PCM без заголовков с 8-битными семплами в распределении Mu-law (aka PCMU).
ALAW8PCM без заголовков с 8-битными семплами в распределении A-law (aka PCMA).
RAW_OPUS11Фреймы Opus, запакованные в сообщения Protobuf.
ВАЖНО: каждый фрейм Opus запакован в отдельное сообщение с полем
audio_content
.
Т. е. нельзя просто так взять и сконкатенировать фреймы Opus и отправить их одним куском в декодер Opus.
Кроме того, несмотря на то, что Opus не привязан к частоте дискретизации на стадии кодирования, предполагаемая длительность синтезируемого аудио возвращается в семплах указанной частоты дискретизации.
Работает только в потоковом режиме.

Messages

AudioConfig

Конфигурация аудио на выходе

ПолеТипОписание
audio_encodingAudioEncodingФормат кодирования аудио. Задаёт и контейнер, и кодек. Должен задаваться явно.
speaking_ratedoubleИгнорируется на данный момент. Скорость синтезируемого аудио в долях от исходной скорости. Значение по умолчанию:
1.0
.
sample_rate_hertzint32Частота дискретизации аудио на выходе в герцах. Должна задаваться явно.

ListVoicesRequest

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

ПолеТипОписание
language_codestringКод языка для получения списка голосов.

ListVoicesResponses

Ответ со списком голосов.

ПолеТипОписание
voicesVoiceСписок голосов.

StreamingSynthesizeSpeechResponse

Фрагмент синтезированного аудио в методе

StreamingSynthesize
. См.
AudioEncoding = RAW_OPUS
для подробностей по работе с кодеком Opus.

ПолеТипОписание
audio_chunkbytesАудио содержимое: либо семплы в случае с
LINEAR16
,
MULAW
и
ALAW
, либо одиночный фрейм в случае
RAW_OPUS
.

SynthesisInput

Входные данные для синтеза.

ПолеТипОписание
textstringСырой текст для синтеза.
ssmlstringSSML для синтеза.

SynthesizeSpeechRequest

Запрос к методам

Synthesize
и
StreamingSynthesize
.

ПолеТипОписание
inputSynthesisInputВходящие данные для синтеза.
voiceVoiceSelectionParamsПараметры выбора голоса.
audio_configAudioConfigКонфигурация аудио.

SynthesizeSpeechResponse

Ответ в методе

Synthesize
.

ПолеТипОписание
audio_contentbytesАудио содержимое целиком.

Voice

Описание голоса при получении списка доступных голосов.

ПолеТипОписание
language_codesstringКод языка.
namestringНазвание голоса.
natural_sample_rate_hertzint32Исходная частота дискретизации. Т. е. большее значение говорит о более высоком качестве.

VoiceSelectionParams

Конфигурация предпочитаемого голоса для синтеза.

ПолеТипОписание
language_codestringКод предпочитаемого голоса.
namestringЯвно заданное имя голоса.