Skip to content
/ Butler Public

Прототип виртуального дворецкого на базе Yandex SpeechKit

Notifications You must be signed in to change notification settings

ladykot/Butler

Repository files navigation

  1. Настройка CLI YandexSpeechKit
  2. Диалог
  3. Установка

Butler – это виртуальный дворецкий, который открывает дверь гостю, если имя есть в списке приглашенных. Для распознавания ответа гостя и синтеза речи дворецкого используются технологии Yandex SpeechKit (YSK).

Настройка CLI YandexSpeechKit

Батлер будет работать, если вы уже установили CLI для работы с YSK и получили токены для отправки запросов. Подробно об этом – в туториале.

Диалог

Прежде чем писать код, давайте представим, как будет выглядеть диалог Батлера с гостем. Возможно, как-то так:

# <стук в дверь>
B: “Привет, чувак! Назови мне только свои имя и фамилию”
G: <Имя>
Если имя в списке:
    “Рад тебя видеть, <имя>, заходь!”
    <дверь открыватеся>
Если имя не в списке:
    “Рад тебя видеть, <имя>, но тебя нет в списке, сорян!”
Если ответ не распознан как текст:
    # чтобы эту ситуацию не учитывать и не перегружать код исключениями, 
    я взяла успешный случай. Гость точно назовет себя, а Батлер – распознает 
    ответ. Будет здорово, если вы сами это сделаете для тренировки.

Для визуализации диалога и прослушивания можно использовать фреймворк для голосовых ассистентов Tortu. Удобно и легко, если диалог имеет множество ветвей.

Создайте готовый аудио-файл с ответом гостя. Сделать это можно через встроенный микрофон на вашем ноутбуке разными инструментами. Для macos подойдет Quick Time Player. Сконвертируйте аудио в формат ogg: audio_guest.ogg. Можно онлайн, например, тут.

Звуковые файлы bell_door и open_door добавят коду реалистичности происходящего :).

Установка

Установим необходимые зависимости:

$ pip install -r requirements.txt

Создадим файл config.py и зададим id_folder и oauth_token:

config.py

import os


def env_set():
    """ Функция задает переменные окружения,
    чтобы использовать их в запросах к API YSK:
    oauth_token (str)
    id_folder (str)

    :return: True
    """
    os.environ["oauth_token"] = "AgAAAAAAH..."
    os.environ["id_folder"] = "b1gdt133..."
    return True

Для записи и чтения iam-токена используется файл iam.txt. При каждом запросе токен будет проверяться на работоспособность и генерироваться, если срок его жизни истек.

About

Прототип виртуального дворецкого на базе Yandex SpeechKit

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages