Данный репозиторий содержит пример веб-приложения, которое обращается к сервису Yandex SpeechKit и отображает его результат в веб-интерфейсе.
Приложение позволяет ознакомиться с возможностями распознавания и синтеза речи, а также с различными параметрами, доступными при синтезе речи:
- Можно выбрать и проверить различные доступные голоса
- Можно использовать TTS-разметку
Приложение состоит из следующих компонентов:
- Веб-интерфейс – статичный веб-сайт в бакете Object Storage
- Serverless Containers для обработки запросов и отправки их в сервис SpeechKit.
Результат синтеза речи сохраняется в бакет.
Данный модуль создает следующие ресурсы:
- Бакет Object Storage
- Объекты в бакете для работы статичного веб-сайта
- Два контейнера Serverless Containers
- API-шлюз
- Сервисные учетные записи для работы контейнеров
- Статичный ключ и API-ключ
- Секрет в Lockbox для безопасного хранения ключей
В провайдере Terraform используется аутентификация через key.json
файл. Для развертывания решения, необходима роль admin
в каталоге, так как создаются сервисные учетные записи и выдаются роли.
При необходимости, измените аутентификацию на токен.
Чтобы запустить данный модуль, создайте файл с переменными private.auto.tfvars
и сохраните в него folder_id и cloud_id вашего облака и каталога:
cloud_id = "b1g3xxxxxx"
folder_id = "b1g7xxxxxx
Также создайте авторизованный ключ key.json
и сохраните в папку, рядом с другими .tf файлами.
После этого, можно установить модуль Terraform:
terraform init
terraform apply
После установки, будут отображены следующие Outputs:
api-gw = "https://d5dclvvxxx.apigw.yandexcloud.net"
bucket = "https://speechbench-xxx.website.yandexcloud.net"
Необходимо открыть ссылку bucket в веб-браузере. В веб-приложении есть две вкладки, соответствующие возможностям TTS и STT. Первый запрос может занимает больше времени, так как в этот момент запускается контейнер в первый раз.
Результаты синтеза сохраняются в бакет, в директории audio
, а последнее полученное аудио, в случае успеха, доступно для прослушивания на веб-сайте.
Аудиофайлы, отправленные на распознавание, сохраняются в директории upload
. Результаты распознавания выводятся в веб-интерфейсе: в виде JSON ответа, и в виде просуммированного ключа text
из JSON ответа, для каждого из аудио-каналов.
Перед удалением, не забудьте очистить созданный бакет (иначе процесс удаления прервется):
terraform destroy