Найти тему
eleday Архив

О Ранних Этапах Развития Джавриса

Оглавление

Привет! Сейчас я хочу поделиться всем, что произошло с начала этого лета в плане разработки голосового ассистента Джарвиса или Аси (но об этом позже). Приятного чтения! ☕️

Общая информация, самое начало

Мой Джарвис (по задумке) - это голосовой помощник на Python, задача которого - создавать расписание и распорядок дня для пользователя. На данный момент было написано две версии: JarvisV0 и JannaV0.5. Как мне пришла идея, я расскажу в следующих статьях. Я бы и тут рассказал, но не могу вспомнить...

Началом работы над V1, я считаю 10 июня. Именно тогда в моём Телеграме появились 4 фото - 4 разных состояния Джарвиса.

Джарвисы в обёртке
Джарвисы в обёртке

После, через полчаса, я выложил сообщение об успешном нахождении библиотеки на Python для распознавания речи - Vosk. Текст сообщения:

Хочу поделиться своей находкой - библиотекой Vosk (https://alphacephei.com/vosk/index.ru). Она позволяет распознавать речь. Причём делает это очень неплохо и офлайн. На GitHub (https://github.com/alphacep/vosk-api) можно найти огромное количество примеров (/python/example/). Особенно полезен мне был test_microphone.py. Он слушает микрофон и сразу выводит, что услышал

За этим сообщением пошла активная работа и первая эпоха. Каждый большой этап я буду называть Эпохой.

Первая Эпоха

Сообщения этой эпохи выглядели так:

🟢 Что я сделал за сегодня:
Продвинулся в распознавании речи, а именно чисел. Далее буду работать с голосовым набором даты и времени
#jarvis

За время, пока она шла, я работал с набором занятий в расписание: пользователю необходимо назвать время начала, время конца и название занятия, заполнив таким образом всю неделю. Здесь вводятся именно постоянные занятия, например, девять ноль ноль.. шесть вечера.. работа. После этого файл с расписанием table.txt заполнялся этим самым расписанием. За этой эпохой стоит 18 дней работы, что равно 36 часам, а также 500+ строк кода.

Под конец первой эпохи, я нарисовал такую картинку
Под конец первой эпохи, я нарисовал такую картинку

Вторая Эпоха

За первой эпохой пошла вторая. Что я делал там? В основном писал класс russian, задачей которого было работать с русским языком. На данный момент он имеет две функции: decl() - склонят слова (правда только из родительного в именительный падеж, но это мы опустим), isverb() - возвращает True, если переданное слово - глагол.

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

Сообщения Второй Эпохи
Сообщения Второй Эпохи

Файл второй эпохи setpurpose.py должен был услышанную фразу превратить в цель и срок, например, написать статью за неделю превратилось бы в -n:написать_статью-t:за_неделю, а после в {'name': 'написать_статью', 'time': {время завершения}. Хочу сказать, что этот вариант набора гораздо более продвинутый, чем первый. Тут можно сказать всё одной фразой или набирать поочерёдно, а система подскажет, что делать.

Картинка Третьей Эпохи
Картинка Третьей Эпохи

Третья Эпоха

Началась совсем недавно и сейчас я нахожусь в ней. Файл этой эпохи должен будет услышать фразу в любом виде и превратить её в команду. В данный момент именно этим и занимаюсь. Как разбирать команду лучше всего покажет картинка:

Как разбирать команду
Как разбирать команду

Почему Джарвис или Ася?

Джарвис, как многие знают - имя голосового ассистента Тони Старка из фильмов про железного человека. Почему выбрано именно это название, а не своё? Всё просто. У меня маленький канал, а слово Джарвис в названии видео помогло мне получить первую тысячу просмотров.

Кто такая Ася? Лично мне имя Джарвис не особо нравится, а для вызова ассистента, хотелось бы чего-нибудь полегче и покороче. Как я много раз говорил Джарвис - это ассистент. В итоге: "ассистент" * имя * короткое = Ася. Саму программу можно будет переименовать, но у меня скорее всего будет Ася)

Итоги

Написал за всё это время я немного в масштабах такого проекта, но так много (наверное) ещё никогда мне не приходилось программировать. Дальше - больше. Мой TODO-список растёт быстрее, чем уменьшается. Хочу сделать столько всего, поэтому предлагаю за этим посмотреть. Ютуб, Дзен (подпишись, пожалуйста), Телеграм, Группа тестировщиков. Считаемся в воскресенье)

Спасибо за прочтение и хорошего дня!