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 не привязан к частоте дискретизации на стадии кодирования, предполагаемая длительность синтезируемого аудио возвращается в сэмплах указанной частоты дискретизации.
Работает только в поточном режиме.

SsmlVoiceGender

Пол предпочитаемого голоса, которым синтезируется текст.

ИмяЗначениеОписание
SSML_VOICE_GENDER_UNSPECIFIED0Не задан
MALE1Мужской
FEMALE2Женский
NEUTRAL3Нейтральный

Messages

AudioConfig

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

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

ListVoicesRequest

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

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

ListVoicesResponses

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

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

StreamingSynthesizeSpeechResponse

Фрагмент синтезированного аудио по методу StreamingSynthesizeSpeech. См. AudioEncoding = RAW_OPUS для подробностей по работае с кодеком Opus.

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

SynthesisInput

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

ПолеТипОписание
textstringТекст для синтеза.

SynthesizeSpeechRequest

Запрос по методу SynthesizeSpeech.

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

SynthesizeSpeechResponse

Ответ по методу SynthesizeSpeech.

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

Voice

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

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

VoiceSelectionParams

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

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