Синтез речи в API v3 REST
SpeechKit REST API v3 можно использовать для синтеза речи, если вам не нужны преимущества gRPC API.
В примере заданы следующие параметры синтеза:
- голос —
marina - амплуа —
friendly(дружелюбная) - формат аудио — WAV (значение по умолчанию)
Аутентификация происходит от имени аккаунта на Яндексе или федеративного аккаунта с использованием IAM-токена. Для аутентификации необходим идентификатор каталога, в котором у пользователя есть роль ai.speechkit-tts.user для работы с сервисом SpeechKit. Если вы используете сервисный аккаунт, передавать в запросе идентификатор каталога не нужно. Подробнее об аутентификации в API SpeechKit см. Аутентификация в API SpeechKit.
Чтобы повторить пример, потребуется утилита jq
-
Создайте файл
request.jsonс параметрами запроса:{"text": "Привет! Я Яндекс Спичк+ит. Я могу превратить любой текст в речь. Теперь и в+ы - можете!", "hints": [{"voice": "marina"}, {"role": "friendly"}]}Где:
text— синтезируемый текст;hints— список параметров синтеза:voice— голос для синтезаrole— амплуа
-
В терминале выполните запрос, указав IAM-токен и идентификатор каталога, который вы будете использовать для работы с SpeechKit:
export FOLDER_ID=<идентификатор_каталога> export IAM_TOKEN=<IAM-токен> curl \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "x-folder-id: $FOLDER_ID" \ --data @request.json https://tts.api.cloud.yandex.net:443/tts/v3/utteranceSynthesis | \ jq -r '.result.audioChunk.data' | \ while read chunk; do base64 -d <<< "$chunk" >> audio.wav; doneГде:
FOLDER_ID— идентификатор каталога, на который у вашего аккаунта есть рольai.speechkit-tts.userили выше. Если вы используете сервисный аккаунт, передавать в запросе идентификатор каталога не нужно.IAM_TOKEN— IAM-токен вашего аккаунта на Яндексе или федеративного аккаунта.
Синтезированная речь вернется в кодировке Base64 и будет записана в файл
audio.wav.