Синтез речи в 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
.