diff --git a/Crysis2 Sounds/FTP-СОЕДИНЕНИЕ УСТАНОВЛЕНО.wav b/Crysis2 Sounds/FTP-СОЕДИНЕНИЕ УСТАНОВЛЕНО.wav new file mode 100644 index 0000000..3bdfa81 Binary files /dev/null and b/Crysis2 Sounds/FTP-СОЕДИНЕНИЕ УСТАНОВЛЕНО.wav differ diff --git a/Crysis2 Sounds/ВОПРОС.wav b/Crysis2 Sounds/ВОПРОС.wav new file mode 100644 index 0000000..cd01508 Binary files /dev/null and b/Crysis2 Sounds/ВОПРОС.wav differ diff --git a/Crysis2 Sounds/ВОСКЛИЦАНИЕ.wav b/Crysis2 Sounds/ВОСКЛИЦАНИЕ.wav new file mode 100644 index 0000000..24ed836 Binary files /dev/null and b/Crysis2 Sounds/ВОСКЛИЦАНИЕ.wav differ diff --git a/Crysis2 Sounds/ВОССТАНОВЛЕНИЕ.wav b/Crysis2 Sounds/ВОССТАНОВЛЕНИЕ.wav new file mode 100644 index 0000000..0dea541 Binary files /dev/null and b/Crysis2 Sounds/ВОССТАНОВЛЕНИЕ.wav differ diff --git a/Crysis2 Sounds/ВХОД В WINDOWS.wav b/Crysis2 Sounds/ВХОД В WINDOWS.wav new file mode 100644 index 0000000..6c43af8 Binary files /dev/null and b/Crysis2 Sounds/ВХОД В WINDOWS.wav differ diff --git a/Crysis2 Sounds/ВХОДЯЩИЙ ЗВОНОК.wav b/Crysis2 Sounds/ВХОДЯЩИЙ ЗВОНОК.wav new file mode 100644 index 0000000..8709c43 Binary files /dev/null and b/Crysis2 Sounds/ВХОДЯЩИЙ ЗВОНОК.wav differ diff --git a/Crysis2 Sounds/ВЫБРАТЬ.wav b/Crysis2 Sounds/ВЫБРАТЬ.wav new file mode 100644 index 0000000..2989bf6 Binary files /dev/null and b/Crysis2 Sounds/ВЫБРАТЬ.wav differ diff --git a/Crysis2 Sounds/ВЫХОД ИЗ WINDOWS (2).wav b/Crysis2 Sounds/ВЫХОД ИЗ WINDOWS (2).wav new file mode 100644 index 0000000..f952e29 Binary files /dev/null and b/Crysis2 Sounds/ВЫХОД ИЗ WINDOWS (2).wav differ diff --git a/Crysis2 Sounds/ВЫХОД ИЗ WINDOWS.wav b/Crysis2 Sounds/ВЫХОД ИЗ WINDOWS.wav new file mode 100644 index 0000000..3b3b7a2 Binary files /dev/null and b/Crysis2 Sounds/ВЫХОД ИЗ WINDOWS.wav differ diff --git a/Crysis2 Sounds/ЗАБЛОКИРОВАНО ВСПЛЫВАЮЩЕЕ ОКНО.wav b/Crysis2 Sounds/ЗАБЛОКИРОВАНО ВСПЛЫВАЮЩЕЕ ОКНО.wav new file mode 100644 index 0000000..bfb0eb6 Binary files /dev/null and b/Crysis2 Sounds/ЗАБЛОКИРОВАНО ВСПЛЫВАЮЩЕЕ ОКНО.wav differ diff --git a/Crysis2 Sounds/ЗАВЕРШЕНИЕ ПЕЧАТИ.wav b/Crysis2 Sounds/ЗАВЕРШЕНИЕ ПЕЧАТИ.wav new file mode 100644 index 0000000..b6a7cdd Binary files /dev/null and b/Crysis2 Sounds/ЗАВЕРШЕНИЕ ПЕЧАТИ.wav differ diff --git a/Crysis2 Sounds/ЗАВЕРШЕНИЕ РАБОТЫ WINDOWS (2).wav b/Crysis2 Sounds/ЗАВЕРШЕНИЕ РАБОТЫ WINDOWS (2).wav new file mode 100644 index 0000000..26f4d66 Binary files /dev/null and b/Crysis2 Sounds/ЗАВЕРШЕНИЕ РАБОТЫ WINDOWS (2).wav differ diff --git a/Crysis2 Sounds/ЗАВЕРШЕНИЕ РАБОТЫ WINDOWS.wav b/Crysis2 Sounds/ЗАВЕРШЕНИЕ РАБОТЫ WINDOWS.wav new file mode 100644 index 0000000..0e7519a Binary files /dev/null and b/Crysis2 Sounds/ЗАВЕРШЕНИЕ РАБОТЫ WINDOWS.wav differ diff --git a/Crysis2 Sounds/ЗАКОНЧИТЬ ОБЗОР.wav b/Crysis2 Sounds/ЗАКОНЧИТЬ ОБЗОР.wav new file mode 100644 index 0000000..36ceccb Binary files /dev/null and b/Crysis2 Sounds/ЗАКОНЧИТЬ ОБЗОР.wav differ diff --git a/Crysis2 Sounds/ЗАКРЫТИЕ ПРОГРАММЫ.wav b/Crysis2 Sounds/ЗАКРЫТИЕ ПРОГРАММЫ.wav new file mode 100644 index 0000000..65ed8d4 Binary files /dev/null and b/Crysis2 Sounds/ЗАКРЫТИЕ ПРОГРАММЫ.wav differ diff --git a/Crysis2 Sounds/ЗВЕЗДОЧКА.wav b/Crysis2 Sounds/ЗВЕЗДОЧКА.wav new file mode 100644 index 0000000..a34d8f4 Binary files /dev/null and b/Crysis2 Sounds/ЗВЕЗДОЧКА.wav differ diff --git a/Crysis2 Sounds/ИЗМЕНЕНИЕ ТЕМЫ WINDOWS.wav b/Crysis2 Sounds/ИЗМЕНЕНИЕ ТЕМЫ WINDOWS.wav new file mode 100644 index 0000000..2630fed Binary files /dev/null and b/Crysis2 Sounds/ИЗМЕНЕНИЕ ТЕМЫ WINDOWS.wav differ diff --git a/Crysis2 Sounds/КОНТРОЛЬ УЧЕТНЫХ ЗАПИСЕЙ WINDOWS.wav b/Crysis2 Sounds/КОНТРОЛЬ УЧЕТНЫХ ЗАПИСЕЙ WINDOWS.wav new file mode 100644 index 0000000..2666960 Binary files /dev/null and b/Crysis2 Sounds/КОНТРОЛЬ УЧЕТНЫХ ЗАПИСЕЙ WINDOWS.wav differ diff --git a/Crysis2 Sounds/КОПИРОВАНИЕ - ПЕРЕМЕЩЕНИЕ ЗАВЕРШЕНО.wav b/Crysis2 Sounds/КОПИРОВАНИЕ - ПЕРЕМЕЩЕНИЕ ЗАВЕРШЕНО.wav new file mode 100644 index 0000000..09b89cc Binary files /dev/null and b/Crysis2 Sounds/КОПИРОВАНИЕ - ПЕРЕМЕЩЕНИЕ ЗАВЕРШЕНО.wav differ diff --git a/Crysis2 Sounds/КРИТИЧЕСКАЯ ОШИБКА.wav b/Crysis2 Sounds/КРИТИЧЕСКАЯ ОШИБКА.wav new file mode 100644 index 0000000..2e772a1 Binary files /dev/null and b/Crysis2 Sounds/КРИТИЧЕСКАЯ ОШИБКА.wav differ diff --git a/Crysis2 Sounds/НАЧАТЬ ОБЗОР.wav b/Crysis2 Sounds/НАЧАТЬ ОБЗОР.wav new file mode 100644 index 0000000..d54f059 Binary files /dev/null and b/Crysis2 Sounds/НАЧАТЬ ОБЗОР.wav differ diff --git a/Crysis2 Sounds/ОБНАРУЖЕН КАНАЛ.wav b/Crysis2 Sounds/ОБНАРУЖЕН КАНАЛ.wav new file mode 100644 index 0000000..e2a4be0 Binary files /dev/null and b/Crysis2 Sounds/ОБНАРУЖЕН КАНАЛ.wav differ diff --git a/Crysis2 Sounds/ОБНАРУЖЕН ПОСТАВЩИК УСЛУГ ПОИСКА (2).wav b/Crysis2 Sounds/ОБНАРУЖЕН ПОСТАВЩИК УСЛУГ ПОИСКА (2).wav new file mode 100644 index 0000000..68a0e25 Binary files /dev/null and b/Crysis2 Sounds/ОБНАРУЖЕН ПОСТАВЩИК УСЛУГ ПОИСКА (2).wav differ diff --git a/Crysis2 Sounds/ОБНАРУЖЕН ПОСТАВЩИК УСЛУГ ПОИСКА.wav b/Crysis2 Sounds/ОБНАРУЖЕН ПОСТАВЩИК УСЛУГ ПОИСКА.wav new file mode 100644 index 0000000..1347364 Binary files /dev/null and b/Crysis2 Sounds/ОБНАРУЖЕН ПОСТАВЩИК УСЛУГ ПОИСКА.wav differ diff --git a/Crysis2 Sounds/ОТКЛЮЧЕНИЕ УСТРОЙСТВА.wav b/Crysis2 Sounds/ОТКЛЮЧЕНИЕ УСТРОЙСТВА.wav new file mode 100644 index 0000000..a9c159b Binary files /dev/null and b/Crysis2 Sounds/ОТКЛЮЧЕНИЕ УСТРОЙСТВА.wav differ diff --git a/Crysis2 Sounds/ОТКРЫТИЕ ПРОГРАММЫ.wav b/Crysis2 Sounds/ОТКРЫТИЕ ПРОГРАММЫ.wav new file mode 100644 index 0000000..9bb7439 Binary files /dev/null and b/Crysis2 Sounds/ОТКРЫТИЕ ПРОГРАММЫ.wav differ diff --git a/Crysis2 Sounds/ОЧИСТКА КОРЗИНЫ.wav b/Crysis2 Sounds/ОЧИСТКА КОРЗИНЫ.wav new file mode 100644 index 0000000..99d8cc7 Binary files /dev/null and b/Crysis2 Sounds/ОЧИСТКА КОРЗИНЫ.wav differ diff --git a/Crysis2 Sounds/ОШИБКА ПОДКЛЮЧЕНИЯ УСТРОЙСТВА (2).wav b/Crysis2 Sounds/ОШИБКА ПОДКЛЮЧЕНИЯ УСТРОЙСТВА (2).wav new file mode 100644 index 0000000..e055e3a Binary files /dev/null and b/Crysis2 Sounds/ОШИБКА ПОДКЛЮЧЕНИЯ УСТРОЙСТВА (2).wav differ diff --git a/Crysis2 Sounds/ОШИБКА ПОДКЛЮЧЕНИЯ УСТРОЙСТВА.wav b/Crysis2 Sounds/ОШИБКА ПОДКЛЮЧЕНИЯ УСТРОЙСТВА.wav new file mode 100644 index 0000000..9e40ded Binary files /dev/null and b/Crysis2 Sounds/ОШИБКА ПОДКЛЮЧЕНИЯ УСТРОЙСТВА.wav differ diff --git a/Crysis2 Sounds/ОШИБКА ПРОГРАММЫ.wav b/Crysis2 Sounds/ОШИБКА ПРОГРАММЫ.wav new file mode 100644 index 0000000..c677233 Binary files /dev/null and b/Crysis2 Sounds/ОШИБКА ПРОГРАММЫ.wav differ diff --git a/Crysis2 Sounds/ОШИБКА ФАКСА.wav b/Crysis2 Sounds/ОШИБКА ФАКСА.wav new file mode 100644 index 0000000..d21b986 Binary files /dev/null and b/Crysis2 Sounds/ОШИБКА ФАКСА.wav differ diff --git a/Crysis2 Sounds/ПЕРЕДАЧА ЗАВЕРШЕНА.wav b/Crysis2 Sounds/ПЕРЕДАЧА ЗАВЕРШЕНА.wav new file mode 100644 index 0000000..f295615 Binary files /dev/null and b/Crysis2 Sounds/ПЕРЕДАЧА ЗАВЕРШЕНА.wav differ diff --git a/Crysis2 Sounds/ПОДКЛЮЧЕНИЕ УСТРОЙСТВА.wav b/Crysis2 Sounds/ПОДКЛЮЧЕНИЕ УСТРОЙСТВА.wav new file mode 100644 index 0000000..ea0d10f Binary files /dev/null and b/Crysis2 Sounds/ПОДКЛЮЧЕНИЕ УСТРОЙСТВА.wav differ diff --git a/Crysis2 Sounds/ПОИСК ЗАВЕРШЕН.wav b/Crysis2 Sounds/ПОИСК ЗАВЕРШЕН.wav new file mode 100644 index 0000000..fbdf15c Binary files /dev/null and b/Crysis2 Sounds/ПОИСК ЗАВЕРШЕН.wav differ diff --git a/Crysis2 Sounds/РАЗВЕРТЫВАНИЕ.wav b/Crysis2 Sounds/РАЗВЕРТЫВАНИЕ.wav new file mode 100644 index 0000000..7651051 Binary files /dev/null and b/Crysis2 Sounds/РАЗВЕРТЫВАНИЕ.wav differ diff --git a/Crysis2 Sounds/РАСКРЫТИЕ ВСПЛЫВАЮЩЕГО МЕНЮ.wav b/Crysis2 Sounds/РАСКРЫТИЕ ВСПЛЫВАЮЩЕГО МЕНЮ.wav new file mode 100644 index 0000000..3d1c3f7 Binary files /dev/null and b/Crysis2 Sounds/РАСКРЫТИЕ ВСПЛЫВАЮЩЕГО МЕНЮ.wav differ diff --git a/Crysis2 Sounds/РАСПАКОВКА ЗАВЕРШЕНА.wav b/Crysis2 Sounds/РАСПАКОВКА ЗАВЕРШЕНА.wav new file mode 100644 index 0000000..360a100 Binary files /dev/null and b/Crysis2 Sounds/РАСПАКОВКА ЗАВЕРШЕНА.wav differ diff --git a/Crysis2 Sounds/СВЕРТЫВАНИЕ.wav b/Crysis2 Sounds/СВЕРТЫВАНИЕ.wav new file mode 100644 index 0000000..0297860 Binary files /dev/null and b/Crysis2 Sounds/СВЕРТЫВАНИЕ.wav differ diff --git a/Crysis2 Sounds/СИГНАЛ НИЗКОГО ЗАРЯДА БАТАРЕЙ.wav b/Crysis2 Sounds/СИГНАЛ НИЗКОГО ЗАРЯДА БАТАРЕЙ.wav new file mode 100644 index 0000000..50b4a4f Binary files /dev/null and b/Crysis2 Sounds/СИГНАЛ НИЗКОГО ЗАРЯДА БАТАРЕЙ.wav differ diff --git a/Crysis2 Sounds/СИГНАЛ ПОЛНОЙ РАЗРЯДКИ БАТАРЕЙ.wav b/Crysis2 Sounds/СИГНАЛ ПОЛНОЙ РАЗРЯДКИ БАТАРЕЙ.wav new file mode 100644 index 0000000..2c7aeb0 Binary files /dev/null and b/Crysis2 Sounds/СИГНАЛ ПОЛНОЙ РАЗРЯДКИ БАТАРЕЙ.wav differ diff --git a/Crysis2 Sounds/СИСТЕМНОЕ УВЕДОМЛЕНИЕ.wav b/Crysis2 Sounds/СИСТЕМНОЕ УВЕДОМЛЕНИЕ.wav new file mode 100644 index 0000000..b8a915e Binary files /dev/null and b/Crysis2 Sounds/СИСТЕМНОЕ УВЕДОМЛЕНИЕ.wav differ diff --git a/Crysis2 Sounds/УВЕДОМЛЕНИЕ О ПОЛУЧЕНИИ ПОЧТЫ.wav b/Crysis2 Sounds/УВЕДОМЛЕНИЕ О ПОЛУЧЕНИИ ПОЧТЫ.wav new file mode 100644 index 0000000..7eef2fe Binary files /dev/null and b/Crysis2 Sounds/УВЕДОМЛЕНИЕ О ПОЛУЧЕНИИ ПОЧТЫ.wav differ diff --git a/Crysis2 Sounds/УВЕДОМЛЕНИЕ О ПРИХОДЕ ФАКСА.wav b/Crysis2 Sounds/УВЕДОМЛЕНИЕ О ПРИХОДЕ ФАКСА.wav new file mode 100644 index 0000000..29eba6b Binary files /dev/null and b/Crysis2 Sounds/УВЕДОМЛЕНИЕ О ПРИХОДЕ ФАКСА.wav differ diff --git a/Crysis2 Sounds/УДАЛЕНИЕ ЗАВЕРШЕНО.wav b/Crysis2 Sounds/УДАЛЕНИЕ ЗАВЕРШЕНО.wav new file mode 100644 index 0000000..73ce1e5 Binary files /dev/null and b/Crysis2 Sounds/УДАЛЕНИЕ ЗАВЕРШЕНО.wav differ diff --git a/Crysis2 Sounds/УПАКОВКА ЗАВЕРШЕНА (2).wav b/Crysis2 Sounds/УПАКОВКА ЗАВЕРШЕНА (2).wav new file mode 100644 index 0000000..185a422 Binary files /dev/null and b/Crysis2 Sounds/УПАКОВКА ЗАВЕРШЕНА (2).wav differ diff --git a/Crysis2 Sounds/УПАКОВКА ЗАВЕРШЕНА.wav b/Crysis2 Sounds/УПАКОВКА ЗАВЕРШЕНА.wav new file mode 100644 index 0000000..cd2ff2d Binary files /dev/null and b/Crysis2 Sounds/УПАКОВКА ЗАВЕРШЕНА.wav differ diff --git a/Crysis2 Sounds/ФАКС ОТПРАВЛЕН.wav b/Crysis2 Sounds/ФАКС ОТПРАВЛЕН.wav new file mode 100644 index 0000000..d92aac4 Binary files /dev/null and b/Crysis2 Sounds/ФАКС ОТПРАВЛЕН.wav differ diff --git a/Jarvis Sound Pack/used/Да сэр(второй).wav b/Jarvis Sound Pack/used/Да сэр(второй).wav new file mode 100644 index 0000000..fd889b1 Binary files /dev/null and b/Jarvis Sound Pack/used/Да сэр(второй).wav differ diff --git a/Jarvis Sound Pack/used/Да сэр.wav b/Jarvis Sound Pack/used/Да сэр.wav new file mode 100644 index 0000000..af80afc Binary files /dev/null and b/Jarvis Sound Pack/used/Да сэр.wav differ diff --git a/Jarvis Sound Pack/used/Есть.wav b/Jarvis Sound Pack/used/Есть.wav new file mode 100644 index 0000000..af33414 Binary files /dev/null and b/Jarvis Sound Pack/used/Есть.wav differ diff --git a/Jarvis Sound Pack/used/Загружаю сэр.wav b/Jarvis Sound Pack/used/Загружаю сэр.wav new file mode 100644 index 0000000..d42baf5 Binary files /dev/null and b/Jarvis Sound Pack/used/Загружаю сэр.wav differ diff --git a/Jarvis Sound Pack/used/Запрос выполнен сэр.wav b/Jarvis Sound Pack/used/Запрос выполнен сэр.wav new file mode 100644 index 0000000..7e163f4 Binary files /dev/null and b/Jarvis Sound Pack/used/Запрос выполнен сэр.wav differ diff --git a/Jarvis Sound Pack/used/К вашим услугам сэр.wav b/Jarvis Sound Pack/used/К вашим услугам сэр.wav new file mode 100644 index 0000000..0f438db Binary files /dev/null and b/Jarvis Sound Pack/used/К вашим услугам сэр.wav differ diff --git a/Jarvis Sound Pack/used/Как пожелаете .wav b/Jarvis Sound Pack/used/Как пожелаете .wav new file mode 100644 index 0000000..9ba3794 Binary files /dev/null and b/Jarvis Sound Pack/used/Как пожелаете .wav differ diff --git a/Jarvis Sound Pack/used/Отключаю питание.wav b/Jarvis Sound Pack/used/Отключаю питание.wav new file mode 100644 index 0000000..103b3c4 Binary files /dev/null and b/Jarvis Sound Pack/used/Отключаю питание.wav differ diff --git a/Jarvis Sound Pack/Включилось аварийное резервное питание.wav b/Jarvis Sound Pack/Включилось аварийное резервное питание.wav new file mode 100644 index 0000000..b7b9965 Binary files /dev/null and b/Jarvis Sound Pack/Включилось аварийное резервное питание.wav differ diff --git a/Jarvis Sound Pack/Восточное побережье.wav b/Jarvis Sound Pack/Восточное побережье.wav new file mode 100644 index 0000000..c4908f4 Binary files /dev/null and b/Jarvis Sound Pack/Восточное побережье.wav differ diff --git a/Jarvis Sound Pack/Вы создали новый элемент.wav b/Jarvis Sound Pack/Вы создали новый элемент.wav new file mode 100644 index 0000000..8ebd4f7 Binary files /dev/null and b/Jarvis Sound Pack/Вы создали новый элемент.wav differ diff --git a/Jarvis Sound Pack/Выхожу на грид оракл.wav b/Jarvis Sound Pack/Выхожу на грид оракл.wav new file mode 100644 index 0000000..4e18a52 Binary files /dev/null and b/Jarvis Sound Pack/Выхожу на грид оракл.wav differ diff --git a/Jarvis Sound Pack/Да, это поможет вам оставаться незамеченным.wav b/Jarvis Sound Pack/Да, это поможет вам оставаться незамеченным.wav new file mode 100644 index 0000000..a2e6717 Binary files /dev/null and b/Jarvis Sound Pack/Да, это поможет вам оставаться незамеченным.wav differ diff --git a/Jarvis Sound Pack/Джарвис - приветствие (Песня целиком).wav b/Jarvis Sound Pack/Джарвис - приветствие (Песня целиком).wav new file mode 100644 index 0000000..59c70df Binary files /dev/null and b/Jarvis Sound Pack/Джарвис - приветствие (Песня целиком).wav differ diff --git a/Jarvis Sound Pack/Джарвис - приветствие 2.wav b/Jarvis Sound Pack/Джарвис - приветствие 2.wav new file mode 100644 index 0000000..3e03046 Binary files /dev/null and b/Jarvis Sound Pack/Джарвис - приветствие 2.wav differ diff --git a/Jarvis Sound Pack/Джарвис - приветствие.wav b/Jarvis Sound Pack/Джарвис - приветствие.wav new file mode 100644 index 0000000..359699a Binary files /dev/null and b/Jarvis Sound Pack/Джарвис - приветствие.wav differ diff --git a/Jarvis Sound Pack/Для полетов на другие планеты слелует усовершенствовать экзосистемы.wav b/Jarvis Sound Pack/Для полетов на другие планеты слелует усовершенствовать экзосистемы.wav new file mode 100644 index 0000000..19f408f Binary files /dev/null and b/Jarvis Sound Pack/Для полетов на другие планеты слелует усовершенствовать экзосистемы.wav differ diff --git a/Jarvis Sound Pack/Другой информации нет.wav b/Jarvis Sound Pack/Другой информации нет.wav new file mode 100644 index 0000000..ca6cf3f Binary files /dev/null and b/Jarvis Sound Pack/Другой информации нет.wav differ diff --git a/Jarvis Sound Pack/Еще один заряд израсходован.wav b/Jarvis Sound Pack/Еще один заряд израсходован.wav new file mode 100644 index 0000000..0575f7b Binary files /dev/null and b/Jarvis Sound Pack/Еще один заряд израсходован.wav differ diff --git a/Jarvis Sound Pack/Заряд батареи, %/11 %.wav b/Jarvis Sound Pack/Заряд батареи, %/11 %.wav new file mode 100644 index 0000000..41e2a1d Binary files /dev/null and b/Jarvis Sound Pack/Заряд батареи, %/11 %.wav differ diff --git a/Jarvis Sound Pack/Заряд батареи, %/2 %.wav b/Jarvis Sound Pack/Заряд батареи, %/2 %.wav new file mode 100644 index 0000000..c4fee76 Binary files /dev/null and b/Jarvis Sound Pack/Заряд батареи, %/2 %.wav differ diff --git a/Jarvis Sound Pack/Заряд батареи, %/7 %.wav b/Jarvis Sound Pack/Заряд батареи, %/7 %.wav new file mode 100644 index 0000000..10c25a4 Binary files /dev/null and b/Jarvis Sound Pack/Заряд батареи, %/7 %.wav differ diff --git a/Jarvis Sound Pack/Заряд батареи, %/Сэр, энергия 19 %.wav b/Jarvis Sound Pack/Заряд батареи, %/Сэр, энергия 19 %.wav new file mode 100644 index 0000000..b14febb Binary files /dev/null and b/Jarvis Sound Pack/Заряд батареи, %/Сэр, энергия 19 %.wav differ diff --git a/Jarvis Sound Pack/Заряд батареи, %/Энергия 13%.wav b/Jarvis Sound Pack/Заряд батареи, %/Энергия 13%.wav new file mode 100644 index 0000000..52c550d Binary files /dev/null and b/Jarvis Sound Pack/Заряд батареи, %/Энергия 13%.wav differ diff --git a/Jarvis Sound Pack/Заряд батареи, %/Энергия 15 %.wav b/Jarvis Sound Pack/Заряд батареи, %/Энергия 15 %.wav new file mode 100644 index 0000000..14539dc Binary files /dev/null and b/Jarvis Sound Pack/Заряд батареи, %/Энергия 15 %.wav differ diff --git a/Jarvis Sound Pack/Заряд батареи, %/Энергия 48% и падает сэр.wav b/Jarvis Sound Pack/Заряд батареи, %/Энергия 48% и падает сэр.wav new file mode 100644 index 0000000..f96d8bc Binary files /dev/null and b/Jarvis Sound Pack/Заряд батареи, %/Энергия 48% и падает сэр.wav differ diff --git a/Jarvis Sound Pack/Импортирую установки, начинаю калибровку виртуальной среды.wav b/Jarvis Sound Pack/Импортирую установки, начинаю калибровку виртуальной среды.wav new file mode 100644 index 0000000..c7c26a1 Binary files /dev/null and b/Jarvis Sound Pack/Импортирую установки, начинаю калибровку виртуальной среды.wav differ diff --git a/Jarvis Sound Pack/К сожалению его невозможно синтезировать.wav b/Jarvis Sound Pack/К сожалению его невозможно синтезировать.wav new file mode 100644 index 0000000..1dbce84 Binary files /dev/null and b/Jarvis Sound Pack/К сожалению его невозможно синтезировать.wav differ diff --git a/Jarvis Sound Pack/К сожалению устройство которое сохраняет вам жизнь в то же время убивает вас.wav b/Jarvis Sound Pack/К сожалению устройство которое сохраняет вам жизнь в то же время убивает вас.wav new file mode 100644 index 0000000..ac7ebf1 Binary files /dev/null and b/Jarvis Sound Pack/К сожалению устройство которое сохраняет вам жизнь в то же время убивает вас.wav differ diff --git a/Jarvis Sound Pack/Мы подключены и готовы.wav b/Jarvis Sound Pack/Мы подключены и готовы.wav new file mode 100644 index 0000000..f918c76 Binary files /dev/null and b/Jarvis Sound Pack/Мы подключены и готовы.wav differ diff --git a/Jarvis Sound Pack/Мы работаем над проектом сэр 2.wav b/Jarvis Sound Pack/Мы работаем над проектом сэр 2.wav new file mode 100644 index 0000000..264649b Binary files /dev/null and b/Jarvis Sound Pack/Мы работаем над проектом сэр 2.wav differ diff --git a/Jarvis Sound Pack/Начинаю автоматическую сборку.wav b/Jarvis Sound Pack/Начинаю автоматическую сборку.wav new file mode 100644 index 0000000..459b304 Binary files /dev/null and b/Jarvis Sound Pack/Начинаю автоматическую сборку.wav differ diff --git a/Jarvis Sound Pack/Начинаю диагностику системы (второй).wav b/Jarvis Sound Pack/Начинаю диагностику системы (второй).wav new file mode 100644 index 0000000..cb9931b Binary files /dev/null and b/Jarvis Sound Pack/Начинаю диагностику системы (второй).wav differ diff --git a/Jarvis Sound Pack/Начинаю диагностику системы.wav b/Jarvis Sound Pack/Начинаю диагностику системы.wav new file mode 100644 index 0000000..54935c8 Binary files /dev/null and b/Jarvis Sound Pack/Начинаю диагностику системы.wav differ diff --git a/Jarvis Sound Pack/О чем я думал, обычно у нас все веселенькое.wav b/Jarvis Sound Pack/О чем я думал, обычно у нас все веселенькое.wav new file mode 100644 index 0000000..15c12fa Binary files /dev/null and b/Jarvis Sound Pack/О чем я думал, обычно у нас все веселенькое.wav differ diff --git a/Jarvis Sound Pack/Образ создан (второй).wav b/Jarvis Sound Pack/Образ создан (второй).wav new file mode 100644 index 0000000..f3a1c2f Binary files /dev/null and b/Jarvis Sound Pack/Образ создан (второй).wav differ diff --git a/Jarvis Sound Pack/Образ создан.wav b/Jarvis Sound Pack/Образ создан.wav new file mode 100644 index 0000000..88101be Binary files /dev/null and b/Jarvis Sound Pack/Образ создан.wav differ diff --git a/Jarvis Sound Pack/Отключаю питание, начинаю диагностику системы.wav b/Jarvis Sound Pack/Отключаю питание, начинаю диагностику системы.wav new file mode 100644 index 0000000..8213635 Binary files /dev/null and b/Jarvis Sound Pack/Отключаю питание, начинаю диагностику системы.wav differ diff --git a/Jarvis Sound Pack/Отслеживание звонка не завершено.wav b/Jarvis Sound Pack/Отслеживание звонка не завершено.wav new file mode 100644 index 0000000..ccffbfd Binary files /dev/null and b/Jarvis Sound Pack/Отслеживание звонка не завершено.wav differ diff --git a/Jarvis Sound Pack/Очень тонкое замечание сэр.wav b/Jarvis Sound Pack/Очень тонкое замечание сэр.wav new file mode 100644 index 0000000..6db6a12 Binary files /dev/null and b/Jarvis Sound Pack/Очень тонкое замечание сэр.wav differ diff --git a/Jarvis Sound Pack/Поздравляю сэр.wav b/Jarvis Sound Pack/Поздравляю сэр.wav new file mode 100644 index 0000000..6b208b2 Binary files /dev/null and b/Jarvis Sound Pack/Поздравляю сэр.wav differ diff --git a/Jarvis Sound Pack/Предлагаемый элемент может стать безвредной заменой палладию.wav b/Jarvis Sound Pack/Предлагаемый элемент может стать безвредной заменой палладию.wav new file mode 100644 index 0000000..5f1bb10 Binary files /dev/null and b/Jarvis Sound Pack/Предлагаемый элемент может стать безвредной заменой палладию.wav differ diff --git a/Jarvis Sound Pack/Приближается мисс поттс =).wav b/Jarvis Sound Pack/Приближается мисс поттс =).wav new file mode 100644 index 0000000..15486f8 Binary files /dev/null and b/Jarvis Sound Pack/Приближается мисс поттс =).wav differ diff --git a/Jarvis Sound Pack/Проверка завершена.wav b/Jarvis Sound Pack/Проверка завершена.wav new file mode 100644 index 0000000..298e96f Binary files /dev/null and b/Jarvis Sound Pack/Проверка завершена.wav differ diff --git a/Jarvis Sound Pack/Район Нью-Йорка, Манхэттэн и окрестности.wav b/Jarvis Sound Pack/Район Нью-Йорка, Манхэттэн и окрестности.wav new file mode 100644 index 0000000..7320b88 Binary files /dev/null and b/Jarvis Sound Pack/Район Нью-Йорка, Манхэттэн и окрестности.wav differ diff --git a/Jarvis Sound Pack/Рассказ про Ивана Ванко.wav b/Jarvis Sound Pack/Рассказ про Ивана Ванко.wav new file mode 100644 index 0000000..1ebf233 Binary files /dev/null and b/Jarvis Sound Pack/Рассказ про Ивана Ванко.wav differ diff --git a/Jarvis Sound Pack/Реактор не предназначен для длительных полетов.wav b/Jarvis Sound Pack/Реактор не предназначен для длительных полетов.wav new file mode 100644 index 0000000..86a75da Binary files /dev/null and b/Jarvis Sound Pack/Реактор не предназначен для длительных полетов.wav differ diff --git a/Jarvis Sound Pack/Реактор принял модифицированное ядро.wav b/Jarvis Sound Pack/Реактор принял модифицированное ядро.wav new file mode 100644 index 0000000..d515510 Binary files /dev/null and b/Jarvis Sound Pack/Реактор принял модифицированное ядро.wav differ diff --git a/Jarvis Sound Pack/Сканирование макета завершено.wav b/Jarvis Sound Pack/Сканирование макета завершено.wav new file mode 100644 index 0000000..ff1c34d Binary files /dev/null and b/Jarvis Sound Pack/Сканирование макета завершено.wav differ diff --git a/Jarvis Sound Pack/Создать визуальный образ по новым спецификациям.wav b/Jarvis Sound Pack/Создать визуальный образ по новым спецификациям.wav new file mode 100644 index 0000000..46539d8 Binary files /dev/null and b/Jarvis Sound Pack/Создать визуальный образ по новым спецификациям.wav differ diff --git a/Jarvis Sound Pack/Сохранить его в центральной базе данных Stark Industries.wav b/Jarvis Sound Pack/Сохранить его в центральной базе данных Stark Industries.wav new file mode 100644 index 0000000..f0a0e41 Binary files /dev/null and b/Jarvis Sound Pack/Сохранить его в центральной базе данных Stark Industries.wav differ diff --git a/Jarvis Sound Pack/Судя по всему, использование костюма железного человека усугубляет ваше состояние.wav b/Jarvis Sound Pack/Судя по всему, использование костюма железного человека усугубляет ваше состояние.wav new file mode 100644 index 0000000..52a2ead Binary files /dev/null and b/Jarvis Sound Pack/Судя по всему, использование костюма железного человека усугубляет ваше состояние.wav differ diff --git a/Jarvis Sound Pack/Сэр, вы под прицелом, нужен обманный маневр.wav b/Jarvis Sound Pack/Сэр, вы под прицелом, нужен обманный маневр.wav new file mode 100644 index 0000000..4d1ec3d Binary files /dev/null and b/Jarvis Sound Pack/Сэр, вы под прицелом, нужен обманный маневр.wav differ diff --git a/Jarvis Sound Pack/Сэр, для реальной попытки полета не просчитаны еще террабайты данных.wav b/Jarvis Sound Pack/Сэр, для реальной попытки полета не просчитаны еще террабайты данных.wav new file mode 100644 index 0000000..73d683d Binary files /dev/null and b/Jarvis Sound Pack/Сэр, для реальной попытки полета не просчитаны еще террабайты данных.wav differ diff --git a/Jarvis Sound Pack/Сэр, не будете дергаться больно не будет.wav b/Jarvis Sound Pack/Сэр, не будете дергаться больно не будет.wav new file mode 100644 index 0000000..86b3657 Binary files /dev/null and b/Jarvis Sound Pack/Сэр, не будете дергаться больно не будет.wav differ diff --git a/Jarvis Sound Pack/Сэр, похоже его костюм может летать.wav b/Jarvis Sound Pack/Сэр, похоже его костюм может летать.wav new file mode 100644 index 0000000..c53f8c3 Binary files /dev/null and b/Jarvis Sound Pack/Сэр, похоже его костюм может летать.wav differ diff --git a/Jarvis Sound Pack/У вас на исходе и время, и варианты решения проблемы.wav b/Jarvis Sound Pack/У вас на исходе и время, и варианты решения проблемы.wav new file mode 100644 index 0000000..76ed0cd Binary files /dev/null and b/Jarvis Sound Pack/У вас на исходе и время, и варианты решения проблемы.wav differ diff --git a/Jarvis Sound Pack/Я перезагрузился сэр.wav b/Jarvis Sound Pack/Я перезагрузился сэр.wav new file mode 100644 index 0000000..78453f3 Binary files /dev/null and b/Jarvis Sound Pack/Я перезагрузился сэр.wav differ diff --git a/Jarvis Sound Pack/Я провел симуляции со всеми известными элементами.wav b/Jarvis Sound Pack/Я провел симуляции со всеми известными элементами.wav new file mode 100644 index 0000000..82985d6 Binary files /dev/null and b/Jarvis Sound Pack/Я провел симуляции со всеми известными элементами.wav differ diff --git a/config.py b/config.py index f926c06..5659f5c 100644 --- a/config.py +++ b/config.py @@ -1,14 +1,47 @@ -VA_NAME = 'Кеша' +VA_NAME = 'Jarvis' -VA_VER = "2.0" +VA_VER = "3.0" -VA_ALIAS = ('кеша', 'кеш', 'инокентий', 'иннокентий', 'кишун', 'киш', 'кишаня', 'кешечка', 'кэш', 'кэша') +VA_ALIAS = ('джарвис', 'кеша', 'кеш', 'инокентий', 'иннокентий', 'кишун', 'киш', 'кишаня', 'кешечка', 'кэш', 'кэша') VA_TBR = ('скажи', 'покажи', 'ответь', 'произнеси', 'расскажи', 'сколько') +MICROPHONE_INDEX = 0 # ID микрофона (можете просто менять ID пока при запуске не отобразится нужный) + +CHROME_PATH = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s' + +OPENAI_TOKEN = "<ТУТ ТОКЕН CHAT-GPT>" + VA_CMD_LIST = { - "help": ('список команд', 'команды', 'что ты умеешь', 'твои навыки', 'навыки'), - "ctime": ('время', 'текущее время', 'сейчас времени', 'который час'), - "joke": ('расскажи анекдот', 'рассмеши', 'шутка', 'расскажи шутку', 'пошути', 'развесели'), - "open_browser": ('открой браузер', 'запусти браузер', 'открой гугл хром', 'гугл хром') + "open_browser": ('открой браузер', 'запусти браузер', 'открой гугл хром', 'гугл хром'), + "open_youtube": ('открой ютуб', 'ютуб', 'запусти ютуб'), + "open_google": ('открой гугл', 'гугл', 'запусти гугл'), + + "sound_off": ('выключи звук', 'беззвучный режим', 'режим без звука', 'отключи звук'), + "sound_on": ('включи звук', 'режим со звуком', 'верни звук'), + + "thanks": ('спасибо', 'молодец', 'респект', 'ты супер', 'отличная работа', 'ты крут', 'ты большой молодец', 'ты реально крут', 'ты афигенный'), + + "stupid": ('ты дурак', 'ты дебил', 'ты глупый', 'ты тупой'), + + "gaming_mode_off": ("рабочий режим", "вернись в рабочий режим", "переключись на компьютер", "обратно на компьютер", "отключи игровой режим", "выйди из игрового режима", "вернись на компьютер", "выход с игрового режима", "рабочее пространство", "вернись в игровой режим", "выключи игровой режим"), + "gaming_mode_on": ("включи игровой режим", "перейди в игровой режим", "я хочу поиграть", "переключись на телевизор"), + + "music": ('давай музыку', 'музыка', "яндекс музыка", "включи музыку", "открой музыку", "послушаем музыку", "хочу музыку", "врубай музло", "включи что-то послушать", "давай что-то послушаем"), + "music_off": ('выключи музыку', 'отруби музыку', 'убери музыку', 'отключи музыку', 'закрой музыку', 'останови музыку', 'хватит музыки'), + "music_save": ('сохрани трек', 'мне нравится трек', 'сохрани песню', 'мне нравится песня', 'добавь трек в избранное', 'добавь песню в избранное', 'запомни мелодию', 'запомни трек', 'запомни песню', 'добавь мелодию в избранное', 'сохрани то что сейчас играет', 'добавь то что сейчас играет в избранное', 'лайкни трек', 'лайкни мелодию', 'лайкни песню'), + + "music_next": ('следующий трек', "следующая мелодия", "следующая песня", "переключи трек", "переключи музыку", "переключи мелодию", "переключи песню", "следующая музыка"), + "music_prev": ('предыдущая музыка', 'предыдущий трек', "предыдущая мелодия", "предыдущая песня", "верни трек", "верни мелодию", "верни песню", "верни прошлый трек", "верни прошлую мелодию", "верни прошлую песню", "верни прошлую музыку", "верни то что играло", "давай предыдущий трек", "переключи музыку обратно", "переключи на прошлый трек", "переключи на прошлую мелодию", "переключи на прошлую песню"), + + "switch_to_headphones": ('переключи на наушники', 'включи наушники', 'перейди на наушники', 'давай звук в наушники', 'давай звук на наушники', 'переключи звук в наушники', 'переключи звук на наушники', + 'переключи на кракены', 'включи кракены', 'перейди на кракены', 'давай звук в кракены', 'давай звук на кракены', 'переключи звук в кракены', 'переключи звук на кракены'), + "switch_to_dynamics": ('переключи на динамики', 'включи динамики', 'перейди на динамики', 'давай звук в динамики', 'давай звук на динамики', 'переключи звук в динамики', 'переключи звук на динамики', + 'переключи на колонки', 'включи колонки', 'перейди на колонки', 'давай звук в колонки', 'давай звук на колонки', 'переключи звук в колонки', 'переключи звук на колонки'), + + "off": ('выключись', "вырубись", "завершить работу", "закройся", "отключись", "заверши свою работу", "на сегодня хватит", "выгрузи себя из памяти", "ты мне надоел", "пора спать"), + + # "help": ('список команд', 'команды', 'что ты умеешь', 'твои навыки', 'навыки'), + # "ctime": ('время', 'текущее время', 'сейчас времени', 'который час'), + # "joke": ('расскажи анекдот', 'рассмеши', 'шутка', 'расскажи шутку', 'пошути', 'развесели') } \ No newline at end of file diff --git a/custom-commands/Next music.ahk b/custom-commands/Next music.ahk new file mode 100644 index 0000000..e0c9a12 --- /dev/null +++ b/custom-commands/Next music.ahk @@ -0,0 +1,19 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +Process, Exist, Y.Music.exe +If ErrorLevel = 0 +{ +; APP IS NOT RUNNING +} +Else +{ +; APP IS RUNNING +;MsgBox, Already running +Run C:\Users\Abraham\Documents\WinStoreApps\YandexMusic +sleep 100 +Send, {Ctrl down}f{Ctrl up} +} +Return \ No newline at end of file diff --git a/custom-commands/Next music.exe b/custom-commands/Next music.exe new file mode 100644 index 0000000..ceed05b Binary files /dev/null and b/custom-commands/Next music.exe differ diff --git a/custom-commands/Prev music.ahk b/custom-commands/Prev music.ahk new file mode 100644 index 0000000..f86c2c6 --- /dev/null +++ b/custom-commands/Prev music.ahk @@ -0,0 +1,19 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +Process, Exist, Y.Music.exe +If ErrorLevel = 0 +{ +; APP IS NOT RUNNING +} +Else +{ +; APP IS RUNNING +;MsgBox, Already running +Run C:\Users\Abraham\Documents\WinStoreApps\YandexMusic +sleep 100 +Send, {Ctrl down}b{Ctrl up} +} +Return \ No newline at end of file diff --git a/custom-commands/Prev music.exe b/custom-commands/Prev music.exe new file mode 100644 index 0000000..420d246 Binary files /dev/null and b/custom-commands/Prev music.exe differ diff --git a/custom-commands/Run browser.ahk b/custom-commands/Run browser.ahk new file mode 100644 index 0000000..ffbd042 --- /dev/null +++ b/custom-commands/Run browser.ahk @@ -0,0 +1,6 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +Run C:/Program Files (x86)/Google/Chrome/Application/chrome.exe \ No newline at end of file diff --git a/custom-commands/Run browser.exe b/custom-commands/Run browser.exe new file mode 100644 index 0000000..5b6c6ff Binary files /dev/null and b/custom-commands/Run browser.exe differ diff --git a/custom-commands/Run google.ahk b/custom-commands/Run google.ahk new file mode 100644 index 0000000..77b1837 --- /dev/null +++ b/custom-commands/Run google.ahk @@ -0,0 +1,6 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +Run C:/Program Files (x86)/Google/Chrome/Application/chrome.exe "https://google.com" \ No newline at end of file diff --git a/custom-commands/Run google.exe b/custom-commands/Run google.exe new file mode 100644 index 0000000..163051b Binary files /dev/null and b/custom-commands/Run google.exe differ diff --git a/custom-commands/Run music.ahk b/custom-commands/Run music.ahk new file mode 100644 index 0000000..5b231a8 --- /dev/null +++ b/custom-commands/Run music.ahk @@ -0,0 +1,41 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +Process, Exist, Y.Music.exe +If ErrorLevel = 0 +{ +; APP IS NOT RUNNING +; Run https://music.yandex.ru/home +Run C:\Users\Abraham\Documents\WinStoreApps\YandexMusic +; Autoplay +sleep 3000 +Send, {Ctrl down}p{Ctrl up} +sleep 10 + +; Open full +Loop, 4 +{ +Send, {Tab} +sleep 10 +} + +Send, {Enter} +sleep 1500 + +Loop, 7 +{ +Send, {Down} +sleep 50 +} + +sleep 1000 +Send, {Enter} +} +Else +{ +; APP IS RUNNING +;MsgBox, Already running +} +Return \ No newline at end of file diff --git a/custom-commands/Run music.exe b/custom-commands/Run music.exe new file mode 100644 index 0000000..e021034 Binary files /dev/null and b/custom-commands/Run music.exe differ diff --git a/custom-commands/Run youtube.ahk b/custom-commands/Run youtube.ahk new file mode 100644 index 0000000..077677e --- /dev/null +++ b/custom-commands/Run youtube.ahk @@ -0,0 +1,6 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +Run C:/Program Files (x86)/Google/Chrome/Application/chrome.exe "https://youtube.com" \ No newline at end of file diff --git a/custom-commands/Run youtube.exe b/custom-commands/Run youtube.exe new file mode 100644 index 0000000..0758a5e Binary files /dev/null and b/custom-commands/Run youtube.exe differ diff --git a/custom-commands/Save music.ahk b/custom-commands/Save music.ahk new file mode 100644 index 0000000..3cb0e6d --- /dev/null +++ b/custom-commands/Save music.ahk @@ -0,0 +1,19 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +Process, Exist, Y.Music.exe +If ErrorLevel = 0 +{ +; APP IS NOT RUNNING +} +Else +{ +; APP IS RUNNING +;MsgBox, Already running +Run C:\Users\Abraham\Documents\WinStoreApps\YandexMusic +sleep 100 +Send, {Ctrl down}l{Ctrl up} +} +Return \ No newline at end of file diff --git a/custom-commands/Save music.exe b/custom-commands/Save music.exe new file mode 100644 index 0000000..31e0147 Binary files /dev/null and b/custom-commands/Save music.exe differ diff --git a/custom-commands/Stop music.ahk b/custom-commands/Stop music.ahk new file mode 100644 index 0000000..ff950ea --- /dev/null +++ b/custom-commands/Stop music.ahk @@ -0,0 +1,6 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +Process, Close, Y.Music.exe \ No newline at end of file diff --git a/custom-commands/Stop music.exe b/custom-commands/Stop music.exe new file mode 100644 index 0000000..e8a5d2e Binary files /dev/null and b/custom-commands/Stop music.exe differ diff --git a/custom-commands/Switch back to workspace.ahk b/custom-commands/Switch back to workspace.ahk new file mode 100644 index 0000000..c9ca23e --- /dev/null +++ b/custom-commands/Switch back to workspace.ahk @@ -0,0 +1,16 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +; Step 1. Close steam. +WinKill, AHK_exe Steam.exe +Process, Close, Steam.exe + +; Step 2. Switch monitor profile. +RunWait C:\MonitorProfileSwitcher\MonitorSwitcher.exe -load:"C:\Users\Abraham\AppData\Roaming\MonitorSwitcher\Profiles\Workspace.xml" + +Sleep, 7000 + +; Step 3. Switch audio device to Luna Edifier. +Run, nircmd setdefaultsounddevice "Luna Edifier" 1 \ No newline at end of file diff --git a/custom-commands/Switch back to workspace.exe b/custom-commands/Switch back to workspace.exe new file mode 100644 index 0000000..f1164ee Binary files /dev/null and b/custom-commands/Switch back to workspace.exe differ diff --git a/custom-commands/Switch to dynamics.ahk b/custom-commands/Switch to dynamics.ahk new file mode 100644 index 0000000..f4b5430 --- /dev/null +++ b/custom-commands/Switch to dynamics.ahk @@ -0,0 +1,6 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +Run, nircmd setdefaultsounddevice "Luna Edifier" 1 \ No newline at end of file diff --git a/custom-commands/Switch to dynamics.exe b/custom-commands/Switch to dynamics.exe new file mode 100644 index 0000000..e47c8a4 Binary files /dev/null and b/custom-commands/Switch to dynamics.exe differ diff --git a/custom-commands/Switch to gaming mode.ahk b/custom-commands/Switch to gaming mode.ahk new file mode 100644 index 0000000..e8f1967 --- /dev/null +++ b/custom-commands/Switch to gaming mode.ahk @@ -0,0 +1,19 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +; Step 1. Close steam. +WinKill, AHK_exe Steam.exe +Process, Close, Steam.exe + +; Step 2. Switch monitor profile. +RunWait C:\MonitorProfileSwitcher\MonitorSwitcher.exe -load:"C:\Users\Abraham\AppData\Roaming\MonitorSwitcher\Profiles\Gaming.xml" + +Sleep, 7000 + +; Step 3. Switch audio device to LG TV. +Run, nircmd setdefaultsounddevice "LG TV" 1 + +; Step 4. Run Steam big picture. +Run, steam://open/bigpicture \ No newline at end of file diff --git a/custom-commands/Switch to gaming mode.exe b/custom-commands/Switch to gaming mode.exe new file mode 100644 index 0000000..9f5a84d Binary files /dev/null and b/custom-commands/Switch to gaming mode.exe differ diff --git a/custom-commands/Switch to headphones.ahk b/custom-commands/Switch to headphones.ahk new file mode 100644 index 0000000..d05b68b --- /dev/null +++ b/custom-commands/Switch to headphones.ahk @@ -0,0 +1,6 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. + +Run, nircmd setdefaultsounddevice "Razer Kraken" 1 \ No newline at end of file diff --git a/custom-commands/Switch to headphones.exe b/custom-commands/Switch to headphones.exe new file mode 100644 index 0000000..c506d8d Binary files /dev/null and b/custom-commands/Switch to headphones.exe differ diff --git a/custom-commands/nircmd.exe b/custom-commands/nircmd.exe new file mode 100644 index 0000000..e606a83 Binary files /dev/null and b/custom-commands/nircmd.exe differ diff --git a/main.py b/main.py index fb0ae65..45cdbae 100644 --- a/main.py +++ b/main.py @@ -1,28 +1,160 @@ -# КЕША 2.0 +# КЕША 3.0 (aka Jarvis) +""" + ВНИМАНИЕ!!! + Пока что это максимально сырой прототип. + Позже будет опубликована нормальная версия с удобной установкой и поддержкой всего чего только можно. + А пока что, код ниже к вашим услугам, сэр :) -import config -import stt -import tts -from fuzzywuzzy import fuzz -import datetime -from num2t4ru import num2text -import webbrowser + @TODO: + 0. Адекватная архитектура кода, собрать всё и переписать from the ground up. + 1. Задержка воспроизведения звука на основе реальной длительности .wav файла (прогружать при запуске?) + 2. Speech to intent? + 3. Отключать self listening protection во время воспроизведения с наушников. + 4. Указание из списка или по имени будет реализовано позже. +""" + +import os import random +import pvporcupine +import simpleaudio as sa +from pvrecorder import PvRecorder +from rich import print +import vosk +import sys +import queue +import json +import struct +import config +from fuzzywuzzy import fuzz +import tts +import datetime +from num2t4ru import num2text +import subprocess +import time -print(f"{config.VA_NAME} (v{config.VA_VER}) начал свою работу ...") +from ctypes import POINTER, cast +from comtypes import CLSCTX_ALL, COMObject +from pycaw.pycaw import ( + AudioUtilities, + IAudioEndpointVolume +) + +import openai +from gpytranslate import SyncTranslator + +CDIR = os.getcwd() + +# init translator +t = SyncTranslator() + +# init openai +openai.api_key = config.OPENAI_TOKEN + +# PORCUPINE +porcupine = pvporcupine.create( + access_key='H2JhXpfLdGYG2wMqvc61tipo0uKZQvwkEfA26CAQQe5n1y7zfZGneQ==', + keywords=['jarvis'], + sensitivities=[1] +) +# print(pvporcupine.KEYWORDS) + +# VOSK +model = vosk.Model("model_small") +samplerate = 16000 +device = config.MICROPHONE_INDEX +kaldi_rec = vosk.KaldiRecognizer(model, samplerate) +q = queue.Queue() + + +def gpt_answer(message): + model_engine = "text-davinci-003" + max_tokens = 128 # default 1024 + prompt = t.translate(message, targetlang="en") + completion = openai.Completion.create( + engine=model_engine, + prompt=prompt.text, + max_tokens=max_tokens, + temperature=0.5, + top_p=1, + frequency_penalty=0, + presence_penalty=0 + ) + + translated_result = t.translate(completion.choices[0].text, targetlang="ru") + return translated_result.text + + +# play(f'{CDIR}\\sound\\ok{random.choice([1, 2, 3, 4])}.wav') +def play(phrase, wait_done=True): + global recorder + filename = f"{CDIR}\\sound\\" + + if phrase == "greet": # for py 3.8 + filename += f"greet{random.choice([1, 2, 3])}.wav" + elif phrase == "ok": + filename += f"ok{random.choice([1, 2, 3])}.wav" + elif phrase == "not_found": + filename += "not_found.wav" + elif phrase == "thanks": + filename += "thanks.wav" + elif phrase == "run": + filename += "run.wav" + elif phrase == "stupid": + filename += "stupid.wav" + elif phrase == "ready": + filename += "ready.wav" + elif phrase == "off": + filename += "off.wav" + + if wait_done: + recorder.stop() + + wave_obj = sa.WaveObject.from_wave_file(filename) + wave_obj.play() + + if wait_done: + # play_obj.wait_done() + # time.sleep((len(wave_obj.audio_data) / wave_obj.sample_rate) + 0.5) + # print("END") + time.sleep(0.8) + recorder.start() + + +def q_callback(indata, frames, time, status): + if status: + print(status, file=sys.stderr) + q.put(bytes(indata)) def va_respond(voice: str): - print(voice) - if voice.startswith(config.VA_ALIAS): - # обращаются к ассистенту - cmd = recognize_cmd(filter_cmd(voice)) + global recorder + print(f"Распознано: {voice}") - if cmd['cmd'] not in config.VA_CMD_LIST.keys(): - tts.va_speak("Что?") + cmd = recognize_cmd(filter_cmd(voice)) + + print(cmd) + + if len(cmd['cmd'].strip()) <= 0: + return False + elif cmd['percent'] < 70 or cmd['cmd'] not in config.VA_CMD_LIST.keys(): + # play("not_found") + # tts.va_speak("Что?") + if fuzz.ratio(voice.join(voice.split()[:1]).strip(), "скажи") > 75: + gpt_result = gpt_answer(voice) + recorder.stop() + tts.va_speak(gpt_result) + time.sleep(1) + recorder.start() + return False else: - execute_cmd(cmd['cmd']) + play("not_found") + time.sleep(1) + + return False + else: + execute_cmd(cmd['cmd'], voice) + return True def filter_cmd(raw_voice: str): @@ -50,7 +182,7 @@ def recognize_cmd(cmd: str): return rc -def execute_cmd(cmd: str): +def execute_cmd(cmd: str, voice: str): if cmd == 'help': # help text = "Я умею: ..." @@ -70,12 +202,130 @@ def execute_cmd(cmd: str): 'ЭсКьюЭль запрос заходит в бар, подходит к двум столам и спрашивает .. «м+ожно присоединиться?»', 'Программист это машина для преобразования кофе в код'] + play("ok", True) + tts.va_speak(random.choice(jokes)) elif cmd == 'open_browser': - chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s' - webbrowser.get(chrome_path).open("http://python.org") + subprocess.Popen([f'{CDIR}\\custom-commands\\Run browser.exe']) + play("ok") + + elif cmd == 'open_youtube': + subprocess.Popen([f'{CDIR}\\custom-commands\\Run youtube.exe']) + play("ok") + + elif cmd == 'open_google': + subprocess.Popen([f'{CDIR}\\custom-commands\\Run google.exe']) + play("ok") + + elif cmd == 'music': + subprocess.Popen([f'{CDIR}\\custom-commands\\Run music.exe']) + play("ok") + + elif cmd == 'music_off': + subprocess.Popen([f'{CDIR}\\custom-commands\\Stop music.exe']) + time.sleep(0.2) + play("ok") + + elif cmd == 'music_save': + subprocess.Popen([f'{CDIR}\\custom-commands\\Save music.exe']) + time.sleep(0.2) + play("ok") + + elif cmd == 'music_next': + subprocess.Popen([f'{CDIR}\\custom-commands\\Next music.exe']) + time.sleep(0.2) + play("ok") + + elif cmd == 'music_prev': + subprocess.Popen([f'{CDIR}\\custom-commands\\Prev music.exe']) + time.sleep(0.2) + play("ok") + + elif cmd == 'sound_off': + play("ok", True) + + devices = AudioUtilities.GetSpeakers() + interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None) + volume = cast(interface, POINTER(IAudioEndpointVolume)) + volume.SetMute(1, None) + + elif cmd == 'sound_on': + devices = AudioUtilities.GetSpeakers() + interface = devices.Activate(IAudioEndpointVolume._iid_, CLSCTX_ALL, None) + volume = cast(interface, POINTER(IAudioEndpointVolume)) + volume.SetMute(0, None) + + play("ok") + + elif cmd == 'thanks': + play("thanks") + + elif cmd == 'stupid': + play("stupid") + + elif cmd == 'gaming_mode_on': + play("ok") + subprocess.check_call([f'{CDIR}\\custom-commands\\Switch to gaming mode.exe']) + play("ready") + + elif cmd == 'gaming_mode_off': + play("ok") + subprocess.check_call([f'{CDIR}\\custom-commands\\Switch back to workspace.exe']) + play("ready") + + elif cmd == 'switch_to_headphones': + play("ok") + subprocess.check_call([f'{CDIR}\\custom-commands\\Switch to headphones.exe']) + time.sleep(0.5) + play("ready") + + elif cmd == 'switch_to_dynamics': + play("ok") + subprocess.check_call([f'{CDIR}\\custom-commands\\Switch to dynamics.exe']) + time.sleep(0.5) + play("ready") + + elif cmd == 'off': + play("off", True) + + porcupine.delete() + exit(0) -# начать прослушивание команд -stt.va_listen(va_respond) \ No newline at end of file +# `-1` is the default input audio device. +recorder = PvRecorder(device_index=config.MICROPHONE_INDEX, frame_length=porcupine.frame_length) +recorder.start() +print('Using device: %s' % recorder.selected_device) + +print(f"Jarvis (v3.0) начал свою работу ...") +play("run") +time.sleep(0.5) + +ltc = time.time() - 1000 + +while True: + try: + pcm = recorder.read() + keyword_index = porcupine.process(pcm) + + if keyword_index >= 0: + recorder.stop() + play("greet", True) + print("Yes, sir.") + recorder.start() # prevent self recording + ltc = time.time() + + while time.time() - ltc <= 10: + pcm = recorder.read() + sp = struct.pack("h" * len(pcm), *pcm) + + if kaldi_rec.AcceptWaveform(sp): + if va_respond(json.loads(kaldi_rec.Result())["text"]): + ltc = time.time() + + break + + except Exception as err: + print(f"Unexpected {err=}, {type(err)=}") + raise diff --git a/main_old.py b/main_old.py new file mode 100644 index 0000000..fb0ae65 --- /dev/null +++ b/main_old.py @@ -0,0 +1,81 @@ +# КЕША 2.0 + +import config +import stt +import tts +from fuzzywuzzy import fuzz +import datetime +from num2t4ru import num2text +import webbrowser +import random + + +print(f"{config.VA_NAME} (v{config.VA_VER}) начал свою работу ...") + + +def va_respond(voice: str): + print(voice) + if voice.startswith(config.VA_ALIAS): + # обращаются к ассистенту + cmd = recognize_cmd(filter_cmd(voice)) + + if cmd['cmd'] not in config.VA_CMD_LIST.keys(): + tts.va_speak("Что?") + else: + execute_cmd(cmd['cmd']) + + +def filter_cmd(raw_voice: str): + cmd = raw_voice + + for x in config.VA_ALIAS: + cmd = cmd.replace(x, "").strip() + + for x in config.VA_TBR: + cmd = cmd.replace(x, "").strip() + + return cmd + + +def recognize_cmd(cmd: str): + rc = {'cmd': '', 'percent': 0} + for c, v in config.VA_CMD_LIST.items(): + + for x in v: + vrt = fuzz.ratio(cmd, x) + if vrt > rc['percent']: + rc['cmd'] = c + rc['percent'] = vrt + + return rc + + +def execute_cmd(cmd: str): + if cmd == 'help': + # help + text = "Я умею: ..." + text += "произносить время ..." + text += "рассказывать анекдоты ..." + text += "и открывать браузер" + tts.va_speak(text) + pass + elif cmd == 'ctime': + # current time + now = datetime.datetime.now() + text = "Сейч+ас " + num2text(now.hour) + " " + num2text(now.minute) + tts.va_speak(text) + + elif cmd == 'joke': + jokes = ['Как смеются программисты? ... ехе ехе ехе', + 'ЭсКьюЭль запрос заходит в бар, подходит к двум столам и спрашивает .. «м+ожно присоединиться?»', + 'Программист это машина для преобразования кофе в код'] + + tts.va_speak(random.choice(jokes)) + + elif cmd == 'open_browser': + chrome_path = 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s' + webbrowser.get(chrome_path).open("http://python.org") + + +# начать прослушивание команд +stt.va_listen(va_respond) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 6bf8259..b771287 100644 Binary files a/requirements.txt and b/requirements.txt differ diff --git a/sound/greet1.wav b/sound/greet1.wav new file mode 100644 index 0000000..af80afc Binary files /dev/null and b/sound/greet1.wav differ diff --git a/sound/greet2.wav b/sound/greet2.wav new file mode 100644 index 0000000..0f438db Binary files /dev/null and b/sound/greet2.wav differ diff --git a/sound/greet3.wav b/sound/greet3.wav new file mode 100644 index 0000000..fd889b1 Binary files /dev/null and b/sound/greet3.wav differ diff --git a/sound/not_found.wav b/sound/not_found.wav new file mode 100644 index 0000000..085ade2 Binary files /dev/null and b/sound/not_found.wav differ diff --git a/sound/off.wav b/sound/off.wav new file mode 100644 index 0000000..103b3c4 Binary files /dev/null and b/sound/off.wav differ diff --git a/sound/ok1.wav b/sound/ok1.wav new file mode 100644 index 0000000..af33414 Binary files /dev/null and b/sound/ok1.wav differ diff --git a/sound/ok2.wav b/sound/ok2.wav new file mode 100644 index 0000000..d42baf5 Binary files /dev/null and b/sound/ok2.wav differ diff --git a/sound/ok3.wav b/sound/ok3.wav new file mode 100644 index 0000000..7e163f4 Binary files /dev/null and b/sound/ok3.wav differ diff --git a/sound/ready.wav b/sound/ready.wav new file mode 100644 index 0000000..f918c76 Binary files /dev/null and b/sound/ready.wav differ diff --git a/sound/run.wav b/sound/run.wav new file mode 100644 index 0000000..efaf078 Binary files /dev/null and b/sound/run.wav differ diff --git a/sound/stupid.wav b/sound/stupid.wav new file mode 100644 index 0000000..6db6a12 Binary files /dev/null and b/sound/stupid.wav differ diff --git a/sound/thanks.wav b/sound/thanks.wav new file mode 100644 index 0000000..a3b898c Binary files /dev/null and b/sound/thanks.wav differ