Что тут?
Что-то вроде умного дома с модульной структурой, чатботом,
блекджеком и шлюхами
Что сейчас делается?
Инфраструктура самой системы, стандартная библиотека, тесты и обработка ошибок. Это не прибавляет толком никакого функционала, и делается для того, чтобы потом можно было этот самый функционал быстро и качественно реализовать.
Чего особенного оно уже умеет?
Может быстро откликаться на ключевую фразу (не обращаясь к гуглу или кому-то еще), спасибо pocketsphinx. Может использовать буфер выделенного текста (*nix only).
Как это установить?
К первой релизной версии я подготовлю автоматический установщик. Работать оно будет под linux в полном объеме (с уклоном на Fedora), а поддержка остальных ОС не гарантируется.
[+] TCP/IP Socket
[-] DLNA
[-] MPRIS2
[-] libtorrent / libaria2
[-] D-Bus
[+] xsel / pbcopy
[=] PushBullet
[-] Google Календарь
[+] Вконтакте
[-] QIWI и кредитки
[-] sms-reg и подобное
[-] GPG / GnuPG
[-] XMPP
[-] Google Search | Yandex Search | Duck Duck Go
[-] Prosto Pleer | Youtube
[-] Gracenote | Shazam | SoundHound | acoustid
[-] Weather.com | Forecast.io | Openweathermap | Narodmon
[+] Base64, hex
[+] Google Speech API | Yandex Speech API
[-] UPNP (https://gist.github.com/acacio/1603181)
[+] Локальная голосовая активация
[+] Распознавание речи
[+] Text-to-speech
[+] Преобразование строк
[*] Загрузчик
[+] Тесты себя
[+] Тесты модулей
[+] Составление графа зависимостей модулей
[+] Опциональные зависимости
[+] Зависимость от файлов
[+] Зависимость от npm-модулей
[-] Зависимость от ОС
[-] Кастомные проверки скриптом
[*] Шаблоны языков (lib.dict)
[+] Проверка фразы
[+] Выделение единиц фразы
[+] Символ-джокер
[+] Генерация фразы
[-] Скрепление шаблонов
[*] "Понимание" человеческих языков
[*] Разбор предложений (/esparser)
[-] Генерация фраз
[*] Система уведомлений
[+] Pushbullet
[-] СМС
[-] E-mail
[*] Система общения
[+] TCP
[+] vk.com
[-] irc
[-] xmpp
[-] Сенсоры
[-] Погода
[-] Мониторы
[-] Наличие людей в комнате
[-] IDLE
[*] Read-only хранилище данных
[+] Настройки
[-] Базы знаний
[-] Wikidata
[-] Cyc
[-] Freebase
[-] Персональное хранилище данных
[-] Кэш (RAM-хранилище)
[-] Локальное RDF-хранилище
[-] Привязки к облакам
[-] Google Keep
[-] Evernote
[-] Dropbox
[-] Mega.io
[-] Pastebin
[-] Контроль доступа к персональной информации
[*] Вспомогательные API
[*] lib.support
[+] io
[+] action
[+] notify
[+] memory
[+] lang
[+] brain
[+] sense
[*] etc
[-] privateMemory
[+] core.io
[+] core.action
[+] core.namespace
[+] core.notify
[+] core.brain
[+] core.memory
[-] core.privateMemory
[*] Базовые библиотеки
[+] Шаблоны языков - lib.dict
[*] Обработка языков на основе деревьев (/esparser)
[-] Статистическая обработка языков (word2vec?)
[*] Документация по API
IO
- связь, позволяющая передавать логические утверждения (пример: голосовой интерфейс, чат) в обе стороныSense
- источники информации (поиск, текст на экране aka xsel, погода, вики), у которых можно запросить текущее состояниеNotify
- уведомления, позволяющие передавать произвольные данные, априори не требующие ответа (push уведомления, запись в буфер выделенного текста иксов aka xsel)Action
- действия, которые может совершить ии (управление медиа, светом, системой)Memory
- read-only хранилища информации (как и произвольной, так и логических утверждений и шаблонов)PrivateMemory
- хранилища персональной информации ИИ.Security
- политики доступа к информацииParser
- парсеры произвольных данных, то же что и Action, но действия выполняются над некоторыми даннымиLang
- преобразует внутренний формат в человекопонятный и наоборотBrain
- реагирует на поступающую информациюCore
- функции ядраLib
- вспомогательные фичиData
- источники произвольных данных и медиаMonitor
- отслеживает события
Модули
core.[brain|lang|action|...]
загружаются после всех модулей выбраной категории, так что если нужно добавить в зависимости все модули, например,brain.*
, то следует добавить один толькоcore.brain
.
Все действия выполняются в терминале:
- Установить пакеты nodejs, xsel при помощи встроенного пакетного менеджера. Если у вас Ubuntu, то это делается командой
sudo apt-get install nodejs xsel
, если Fedora, тоsudo dnf install nodejs xsel
. Для других дистрибутивов аналогично, и если у вас, например, Arch, то вы сами знаете, что делать. - Скачать этот репозиторий командой
git clone https://github.com/paulll/tosterbot
- Войти в папку с программой
cd tosterbot
- Запустить программу командой
node ./loader.js
Для управления светом так же нужна настройка arduino:
- Запустить Arduino IDE
- Подключить Arduino к компьютеру usb-проводом
- Записать сниппет из файла
lightctl.ino
в корне репозитория - Подключить реле ко второму, третьему, GND и +5V пинам.