ВВЕДЕНИЕ 5
1 Анализ предметной области 7
1.1 Описание объекта исследования 7
1.2 Анализ альтернативных решений 7
1.3 Требования к разработке голосового ассистента 10
1.3.1 Разработка пользовательских требований 10
1.3.1.1 Разработка диаграммы Use Case 10
1.3.1.2 Разработка спецификаций вариантов использования 11
1.3.2 Разработка функциональных требований 16
1.3.3 Разработка нефункциональных требований 17
1.4 Выводы 19
2 Проектирование системы 20
2.1 Работа с календарём и почтой 23
2.2 Общие принципы работы с Google API 24
2.3 Дополнительные функции 27
2.4 Использование базы данных 28
2.5 Описание классов 29
2.5.1 Класс VoiceAssistant 30
2.5.1.1 Метод say 30
2.5.1.2 Метод recognize 31
2.5.1.3 Метод identify_command 31
2.5.1.4 Метод identify_date 32
2.5.1.5 Метод ask_event_info 32
2.5.1.6 Метод ask_email_info 33
2.5.1.7 Метод ask 33
2.5.1.8 Метод identify_contact 33
2.5.1.9 Метод greeter 34
2.5.1.10 Метод wakeup_response 35
2.5.2 Класс VAMailGoogle 35
2.5.2.1 Метод create_email 36
2.5.2.2 Метод send_email 37
2.5.2.3 Метод get_unread 37
2.5.3 Класс VACalendarGoogle 37
2.5.3.1 Метод get_events_on_a_day 38
2.5.3.2 Метод add_event 38
2.5.4 Класс VAWeather 39
2.5.4.1 Метод get_weather 40
2.5.5 Классы DBusService 40
2.5.5.1 Класс DBusService (сервер) 40
2.5.5.1.1 Метод client_init 40
2.5.5.1.2 Метод wakeup_call 40
2.5.5.2 Класс DBusService (клиент) 41
2.5.5.2.1 Метод print_text 41
2.6 Выводы 41
3 Функциональные возможности программы 42
3.1 Добавление события 42
3.2 Отправка письма 45
3.3 Непрочитанные сообщения 46
3.4 События на день 47
3.5 Погода 48
3.6 Время 49
3.7 Выводы 50
ЗАКЛЮЧЕНИЕ 51
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 52
ПРИЛОЖЕНИЕ А 54
ПРИЛОЖЕНИЕ Б 64
ПРИЛОЖЕНИЕ В 68
ПРИЛОЖЕНИЕ Г 70
ПРИЛОЖЕНИЕ Д 71
На сегодняшний день многие устройства используют голосовые ассистенты. Они на наших смартфонах и умных колонках в домах. Многие мобильные приложения и операционные системы интегрируют их функционал в свои сервисы.
Так как технологии постоянно развиваются, то это ожидаемо, что рынок голосовых ассистентов будет развиваться совместно с ними. Так согласно исследованию 2015-го года проведённого Gartner к концу 2018 года около 30-ти процентов всех взаимодействий с технологиями будет через «общение» с голосовыми ассистентами [1].
Tractica это агентство по исследованию рынка, которое фокусируется на взаимодействии с технологиями. Их отчёт сообщает, что количество пользователей виртуальных ассистентов (которые они определяют, как автоматизированное программное приложение или платформа, которая помогает человеку, через понимание речи в письменной или устной форме) вырастет с более чем 380 миллионов в мире в 2015 году до 1.8 миллиардов к 2021 году [2]. Ожидаемый рост в бизнес сфере составляет с 155 миллионов пользователей в 2015 году до 843 миллионов к 2021-му году.
Согласно Global Market Insights, Inc в промежуток между 2016 и 2024 годом, доля рынка виртуальный ассистентов будет возрастать ежегодно почти на 35 процентов [3]. Прогнозируется рост использования технологии в таких отраслях как, медицина, автомобильная индустрия, в дополнение к смартфонам и умным колонкам.
У бизнеса есть много причин использовать деловой календарь. Одна из многих это организация событий и встреч и поддержка осведомлённости о них. Деловые календари отлично подходят как для крупного, так и для малого бизнеса, так помогают каждому сотруднику.
Целью данного проекта является разработка системы голосового управления деловым календарём в Ubuntu Linux.
достижения поставленной цели требуется решить следующие провести анализ существующих решений; разработать пользовательские требования; разработать функциональные требования; разработать нефункциональные требования; спроектировать программный продукт; разработать программный продукт.
В результате работы была разработана система голосового управления деловым календарём.
Исходя из выявленных пользовательских требований было решено включить в систему следующий функционал:
• отправка электронных писем;
• получение информации о непрочитанных письмах;
• получение информации о предстоящий встречах на сегодня;
• добавление события;
• получение информации о погоде;
• получение информации о времени.
В ходе разработки было решено разделить приложение на две части:
• графический клиент, реализованный с помощью графической библиотеки gtk+;
• серверная часть, принимающая сигналы от клиента посредствам протокола dbus.
Также было принято решение поместить отельные функции в соответствующие классы, таким образом были созданы:
• класс VAGoogleMail, реализующий весь необходимый функционал для работы с GMail;
• класс VAGoogleCalendar, предоставляющий возможность взаимодействия с api Google Calendar;
• класс VAWeather, реализующий функцию получения данных о погоде в текущем местоположении.
1. Market Trends: Voice as a UI on Consumer Devices — What Do Users Want? [Электронный ресурс] URL: https://www.gartner.com/en/documents/3021226 (дата обращения : 04.06.2019).
2. The Virtual Digital Assistant Market Will Reach $15.8 Billion Worldwide by 2021 [Электронный ресурс] URL: https://www.tractica.com/newsroom/press- releases/the-virtual-digital-assistant-market-will-reach-15-8-billion-worldwide- by-2021/ (дата обращения : 04.06.2019).
3. Intelligent Virtual Assistant Market to grow at a CAGR of 34.9% from 2016 to
2024: Global Market Insights Inc. [Электронный ресурс] URL:
https://www.globenewswire.com/news-
release/2016/12/21/899520/0/en/Intelligent-Virtual-Assistant-Market-to-grow- at-a-CAGR-of-34-9-from-2016-to-2024-Global-Market-Insights-Inc.html (дата обращения : 04.06.2019).
4. Яндекс Алиса [Электронный ресурс] URL: https://alice.yandex.ru/windows
5. Google Assistant SDK [Электронный ресурс] URL: https://developers.google.com/assistant/sdk/ (дата обращения : 04.06.2019).
6. Яндекс.Диалоги [Электронный ресурс] URL: https://dialogs.yandex.ru/
7. Google Actions [Электронный ресурс] URL:
https://developers.google.com/actions/ (дата обращения : 04.06.2019).
8. OAuth 2.0 Scopes for Google APIs [Электронный ресурс] URL:
https://developers.google.com/identity/protocols/googlescopes (дата
обращения : 20.05.2019).
9. OpenWeatherMap документация для получения данных о текущей погоде
[Электронный ресурс] URL: https://openweathermap.org/current (дата
обращения : 20.05.2019).
10. datetime — Basic date and time types [Электронный ресурс] URL: https://docs.python.org/3.7/library/datetime.html (дата обращения : 12.05.2019).
11. Документация Google Mail API [Электронный ресурс] URL: https://developers.google.com/gmail/api/ (дата обращения : 15.05.2019).
12. Поисковые операторы в Gmail [Электронный ресурс] URL: https://support.google.com/mail/answer/7190 (дата обращения : 20.05.2019).
13. Документация Google Calendar API Events функция insert [Электронный
ресурс] URL:
https://developers.google.com/calendar/v3/reference/events/insert (дата
обращения : 14.05.2019).
14.ISO 8601 - Date and time format [Электронный ресурс] URL: https://www.iso.org/iso-8601-date-and-time-format.html (дата обращения : 04.06.2019).
15. Документация Google Calendar API Events функция insert [Электронный ресурс] URL:
https://developers.google.com/calendar/v3/reference/events/insert (дата
обращения : 04.06.2019).