Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yandex-cloud-examples/yc-speechkit-web-ui
SpeechKit Web UI Example
https://github.com/yandex-cloud-examples/yc-speechkit-web-ui
python3 speech-recognition speechkit yandex-cloud yandex-speechkit-api yandexcloud
Last synced: about 14 hours ago
JSON representation
SpeechKit Web UI Example
- Host: GitHub
- URL: https://github.com/yandex-cloud-examples/yc-speechkit-web-ui
- Owner: yandex-cloud-examples
- License: apache-2.0
- Created: 2024-03-20T11:04:28.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-06-06T13:00:36.000Z (5 months ago)
- Last Synced: 2024-06-07T14:28:01.869Z (5 months ago)
- Topics: python3, speech-recognition, speechkit, yandex-cloud, yandex-speechkit-api, yandexcloud
- Language: Smarty
- Homepage:
- Size: 27.3 MB
- Stars: 0
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SpeechKit Web UI
Данный репозиторий содержит пример веб-приложения, которое обращается к сервису [Yandex SpeechKit](https://cloud.yandex.com/ru/services/speechkit) и отображает его результат в веб-интерфейсе.
Приложение позволяет ознакомиться с возможностями распознавания и синтеза речи, а также с различными параметрами, доступными при синтезе речи:
- Можно выбрать и проверить различные доступные [голоса](https://cloud.yandex.com/ru/docs/speechkit/tts/voices)
- Можно использовать [TTS-разметку](https://cloud.yandex.com/ru/docs/speechkit/tts/markup/tts-markup)Приложение состоит из следующих компонентов:
- Веб-интерфейс – статичный веб-сайт в бакете Object Storage
- Serverless Containers для обработки запросов и отправки их в сервис SpeechKit.Результат синтеза речи сохраняется в бакет.
## Описание модуля
Данный модуль создает следующие ресурсы:
1. Бакет Object Storage
2. Объекты в бакете для работы статичного веб-сайта
2. Два контейнера Serverless Containers
3. API-шлюз
4. Сервисные учетные записи для работы контейнеров
5. Статичный ключ и API-ключ
7. Секрет в [Lockbox](https://cloud.yandex.ru/services/lockbox) для безопасного хранения ключейВ провайдере Terraform используется аутентификация через `key.json` файл. Для развертывания решения, необходима роль `admin` в каталоге, так как создаются сервисные учетные записи и выдаются роли.
При необходимости, измените аутентификацию на [токен](https://cloud.yandex.ru/ru/docs/iam/concepts/authorization/iam-token).## Установка
Чтобы запустить данный модуль, создайте файл с переменными `private.auto.tfvars` и сохраните в него folder_id и cloud_id вашего облака и каталога:
```
cloud_id = "b1g3xxxxxx"
folder_id = "b1g7xxxxxx
```Также [создайте](https://yandex.cloud/ru/docs/iam/operations/authorized-key/create) авторизованный ключ `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
```## Связанные примеры
- [Автоматическое батч-распознавание аудио](https://github.com/yandex-cloud-examples/yc-speechkit-async-recognizer)
- [Пример стриминг распознавания](https://github.com/yandex-cloud-examples/yc-speechkit-streams-recognizer)