Как синтезировать речь в SpeechKit API v1
Синтез речи преобразует текст в речь и сохраняет ее в аудиофайл. В этом разделе вы научитесь синтезировать речь из текста с помощью SpeechKit API v1 (REST).
Для работы с API в примере используется утилита cURL
Аутентификация для работы с API
Для работы с API SpeechKit пройдите аутентификацию. Ее способ зависит от типа аккаунта:
- Получите IAM-токен для аккаунта на Яндексе или федеративного аккаунта.
- Получите идентификатор каталога, на который у вашего аккаунта есть роли
ai.speechkit-stt.user
,ai.speechkit-tts.user
или выше. -
При обращении к SpeechKit через API в каждом запросе передавайте полученные параметры:
-
Для API v1 и API v2:
Указывайте IAM-токен в заголовке
Authorization
в следующем формате:Authorization: Bearer <IAM-токен>
Идентификатор каталога указывайте в теле запроса в параметре
folderId
. -
Для API v3:
- в заголовке
Authorization
указывайте IAM-токен; - в заголовке
x-folder-id
указывайте идентификатор каталога.
Authorization: Bearer <IAM-токен> x-folder-id <идентификатор_каталога>
- в заголовке
-
SpeechKit поддерживает два способа аутентификации с сервисным аккаунтом:
-
С помощью IAM-токена:
-
Полученный IAM-токен передавайте в заголовке
Authorization
в следующем формате:Authorization: Bearer <IAM-токен>
-
С помощью API-ключей.
Используйте API-ключи, если у вас нет возможности автоматически запрашивать IAM-токен.
-
Полученный API-ключ передавайте в заголовке
Authorization
в следующем формате:Authorization: Api-Key <API-ключ>
Не указывайте в запросах идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.
В примере ниже аутентификация выполняется от имени аккаунта на Яндексе.
Выполните запрос
Отправьте запрос на преобразование текста в речь:
read -r -d '' TEXT << EOM
Я Яндекс Спичк+ит.
Я могу превратить любой текст в речь.
Теперь и в+ы — можете!
EOM
export FOLDER_ID=<идентификатор_каталога>
export IAM_TOKEN=<IAM-токен>
curl
--request POST \
--header "Authorization: Bearer ${IAM_TOKEN}" \
--data-urlencode "text=${TEXT}" \
--data "lang=ru-RU&voice=filipp&folderId=${FOLDER_ID}" \
"https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize" > speech.ogg
Где:
FOLDER_ID
— идентификатор каталога, полученный ранее.IAM_TOKEN
— IAM-токен, полученный ранее.TEXT
— текст с примененным URL-кодированием, который нужно распознать.lang
— язык текста.voice
— голос для синтеза речи.speech.ogg
– файл, в который будет записан ответ.
Примечание
Для передачи слов-омографов используйте +
перед ударной гласной: з+амок
, зам+ок
. Чтобы отметить паузу между словами, используйте -
. Ограничение на длину строки: 5000 символов.
Синтезированная речь будет записана в файл speech.ogg
в папке, из которой вы выполнили эту команду.
По умолчанию аудио создается в формате OggOpus
См. подробнее описание формата запроса на синтез речи.