Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Простой голосовой ассистент, умеющий выполнять пользовательские команды.

License

Notifications You must be signed in to change notification settings

AlmazCode/Assistent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

7 Commits

Repository files navigation

ASSISTENT

Легенький ассистент, который может выполнять пользовательские команды.

Установка

Для начала работы установите необходимые библиотеки:

pip install -r requirements.txt

Запуск

Запустите main.py. Вас встретит ассистент с именем "Джарвис". Имя можно изменить в файле config.py в переменной ASSISTENT_NAME. Ассистент попросит у вас разрешение на добавление в автозагрузку Windows, чтобы при запуске системы ассистент мог самостоятельно запускаться. Ассистент работает только на Windows.

Встроенные команды

Ассистент поддерживает множество встроенных команд, таких как: открыть браузер, сделать запрос в Википедию, установить таймер и т.д. Запустив файл all_commands.py, вы увидите в консоли все возможные команды, которые ассистент сможет понять.

Добавление новых слов

У ассистента есть два важных файла: dataset.py, в котором хранится список слов, которые ассистент сможет понимать, и config.py, в котором строится иерархия команд для их последующего парсинга и выполнения.

Чтобы добавить поддерживаемое слово в датасет, нужно в словаре dataset создать новый ключ, который будет хранить ваши слова. Например, чтобы ассистент понимал слово "машина", создайте ключ "CAR" и добавьте в него список слов:

"CAR": [
 "машина",
 "тачка",
]

Создание новых команд

Теперь, чтобы когда вы говорите одно из слов из ключа "CAR", и ассистент выполняет команду, вам нужно будет создать в config.py последовательность ключей, после которых выполнится функция. Например:

"CAR": {
 ELSE: [tools.tts, "Феррари - классная машина!"]
}

Здесь мы вписываем наш ключ как вход в команду, и далее, используя константу ELSE, вписываем в квадратных скобках функцию, которая будет выполнена, и ее аргументы. В нашем случае это встроенная функция tts из модуля tools, которая преобразует текст в речь.

Использование ELSE

ELSE - это функция, которая выполнится, если парсер не нашел в ключе еще ключа, который бы продолжал иерархию. То есть, имея такую команду:

"HI": {
 "HOW MUCH COST": {
 "FERRARI":
 FUNC: [tools.tts, "Цена варьируется."]
 }
 ELSE: [tools.tts, "Привет!"]
}

В данной команде теперь два варианта пути: если пользователь скажет "привет, сколько стоит феррари", то ассистент скажет "Цена варьируется.", иначе поприветствует пользователя. ELSE позволяет ассистенту реагировать на неполные или неизвестные команды, предоставляя более гибкую и адаптивную систему команд. Это может быть особенно полезно при обработке естественного языка, где пользователи могут выразить одну и ту же команду разными способами.

Использование FUNC

FUNC используется только с CONTENT или CONTENT_TO_END. В остальных случаях функцию с аргументами указывать в ключе, или ELSE если это корневой ключ. FUNC работает по следующему принципу:

  • CONTENT: набор слов (которые не обязательно должны быть в датасете), которые пойдут в аргументы функции. Например:
"SAY": {
 CONTENT: None
 FUNC: tools.tts
}

В данном примере, если пользователь скажет: "скажи привет",то ассистент скажет "Привет". Здесь мы в CONTENT записываем None, говоря парсеру, что дальше не нужно идти, и это конечная точка контента.

  • CONTENT_TO_END: передаст один аргумент в функцию, но это будут слова, начиная с ключа, после которого он идет. Например:
"SAY": {
 CONTENT_TO_END: None
 FUNC: tools.tts
}

Теперь, если пользователь скажет "привет скажи ...", то все последующие слова, пока парсер не уткнется в конец, перейдут в один аргумент.

Небольшой пример

Для примера можно посмотреть на команду, которая реализует выбор случайного числа из двух чисел:

"RANDOM": {
 "NUM": {
 "FROM": {
 CONTENT: {
 "BEFORE": CONTENT
 }
 }
 },
 FUNC: tools.print_random
}

About

Простой голосовой ассистент, умеющий выполнять пользовательские команды.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /