Как начать работать со SpeechKit
Если вы хотите попробовать, как сервис синтезирует или распознает речь, воспользуйтесь демо на странице сервиса.
В этом разделе вы научитесь использовать SpeechKit API. Сначала вы создадите аудиофайл из текста, а потом попробуете его распознать.
О стоимости использования сервиса SpeechKit см. Правила тарификации для SpeechKit.
Перед началом работы
Для работы с API SpeechKit необходимо аутентифицироваться со своего аккаунта:
- Получите IAM-токен.
- Получите идентификатор каталога, на который у вашего аккаунта есть роль
ai.speechkit-stt.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 <идентификатор каталога>
- в заголовке
-
- Получите IAM-токен.
- Получите идентификатор каталога, на который у вашего аккаунта есть роль
ai.speechkit-stt.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 -X POST \
-H "Authorization: Bearer ${IAM_TOKEN}" \
--data-urlencode "text=${TEXT}" \
-d "lang=ru-RU&voice=filipp&folderId=${FOLDER_ID}" \
"https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize" > speech.ogg
Где:
TEXT
— текст с примененным URL-кодированием, который нужно распознать.FOLDER_ID
— идентификатор каталога, полученный перед началом работы.IAM_TOKEN
— IAM-токен, полученный перед началом работы.lang
— язык текста.voice
— голос для синтеза речи.speech.ogg
– файл, в который будет записан ответ.
Примечание
Для передачи слов-омографов используйте +
перед ударной гласной: з+амок
, зам+ок
. Чтобы отметить паузу между словами, используйте -
. Ограничение на длину строки: 500 символов.
Синтезированная речь будет записана в файл speech.ogg
в директории, из которой вы выполнили эту команду.
По умолчанию аудио создается в формате OggOpus. Прослушать созданный файл можно в браузере, например в Яндекс.Браузере или Mozilla Firefox.
Подробнее про формат запроса на синтез речи.
Распознавание речи
Сервис позволяет распознавать речь различными способами. В этом разделе используется синхронное распознавание.
Передайте двоичное содержимое аудиофайла в теле запроса, указав в параметрах запроса:
lang
— нужный вам язык распознавания.folderId
— идентификатор каталога, полученный перед началом.
curl -X POST \
-H "Authorization: Bearer ${IAM_TOKEN}" \
--data-binary "@speech.ogg" \
"https://stt.api.cloud.yandex.net/speech/v1/stt:recognize?folderId=${FOLDER_ID}&lang=ru-RU"
В ответе сервис вернет распознанный текст:
{"result":"Я яндекс спичкит я могу превратить любой текст в речь теперь вы можете"}