Синтез речи в API v3 REST
Статья создана
Обновлена 27 сентября 2024 г.
SpeechKit REST API v3 можно использовать для синтеза речи, если вам не нужны преимущества gRPC API.
В примере заданы следующие параметры синтеза:
- голос —
marina
- амплуа —
friendly
(дружелюбная) - формат аудио — WAV (значение по умолчанию)
Аутентификация происходит от имени аккаунта на Яндексе или федеративного аккаунта с использованием IAM-токена. Для аутентификации необходим идентификатор каталога, в котором у пользователя есть роль ai.speechkit-tts.user
для работы с сервисом SpeechKit. Если вы используете сервисный аккаунт, передавать в запросе идентификатор каталога не нужно. Подробнее об аутентификации в API SpeechKit см. Аутентификация в API SpeechKit.
cURL
Чтобы повторить пример, потребуется утилита 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
.