ReceptionBot

Материал из itiswiki
Перейти к: навигация, поиск

ReceptionBot


Artificial Intellegence (AI)[править]

Для создания системы анализа информации нужен искусственный интеллект, который на основе полученной информации будет менять свое поведение, и подстраиваться или наоборот отторгаться от сущностей. Система должна быть самообучаемой для решения нескольких наших задач: сбор и хранение полученной (введённой) информации, распознавание лиц, коммуникация с личностью на основе полученных знаний о субъекте, для функционирования системы необходимо взаимодействие с базой знаний, которая пополняется за счет взаимодействия с пользователями. Обучение модели состоит из двух частей: обучение на тестовой выборке для нахождения ответов для пользователей и обучение без контроля человека, которое будет проходить в результате взаимодействия с пользователем для предоставления информации, наполненной эмоциональной составляющей.


  • Над блоком работают:
  1. Боробов Павел
  2. Минибаев Айнур
  3. Гильмуллин Адель
  4. Ермолаев Александр
  5. Финагин Игорь
  6. Калимуллин Динар
  7. Гайфуллин Айрат
  8. Валиев Тимур
  9. Галимов Халим
  10. Разживин Илья
  11. Сабитов Рамиль
  12. Тележникова Ольга
  13. Шайхетдинов Марат
  14. Шарафутдинов Булат
  15. Мухаметов Артур

Machine learning (ML)[править]

  • Над блоком работают:
  1. Сабирзянов Артур
  2. Салахов Амир
  3. Свалова Ирина

Speech recognition, processing & synthesis[править]

Распознавание речи является способностью машины идентифицировать слова и фразы разговорного языка, конвертировать их в машинно-читабельный формат. Программное обеспечение должно иметь возможность принимать и обрабатывать естественную речь пользователя. Приложение распознавания речи включает маршрутизацию вызовов, преобразование речи в текст, голосовой поиск. Отсутствие данной технологии сделает взаимодействие пользователей с системой невозможным. Технология распознавания речи служит основой для целого ряда приложений, таких как голосовой интерактивный доступ к базе данных, транскрипция широковещательных данных и т.д. Большой словарь распознавания непрерывной речи является ключевой технологией, которую можно использовать для того, чтобы на основе контента иметь доступ к информации в аудио-документах. Модуль Easy Communication должен обеспечивать взаимодействие пользователя с “RBot”:

  1. Записывать голос пользователя в аудиоданные;
  2. Расшифровывать аудиоданные в данные текстового формата;
  3. Отправлять запрос в KnowledgeBase.

Требования[править]

Для программного обеспечения выдвинуты следующие требования к функциональным характеристикам:

  1. Программа должна однозначно идентифицировать текстовую информацию, полученную путём расшифровки аудиовизуальных данных, и перевести ее в текст;
  2. Система должна оставаться в работоспособном состоянии при высоко нагруженном режиме.
  3. Практичность EC заключается в предоставлении пользователю удобной речевой формы воздействия на “говорящую голову”, что ускоряет и упрощает взаимодействие человека с той или иной системой и делает этот вид связи более естественным.

Процесс преобразования речи в текст также называют преобразованием голоса в текст делается в три этапа: Программное обеспечение сначала идентифицирует звуковые сегменты, содержащие речь, определяет язык, на котором говорят, и, наконец, преобразует сегменты речи в текст. Оно включает в себя адаптивные функции, позволяющие транскрипцию шумной речи, такие как речь с фоновой музыкой. В результате обработки речи в текст создается полностью аннотированный XML документ.

Способ реализации[править]

Для реализации данной задачи будет использоваться Google Speech Api, которая будет преобразовывать речь в текст. После данной операции полученный результат будет отправлять запрос к базе знаний (Knowledge Base[1]).

  • Над блоком работают:
  1. Рябцев Олег
  2. Новиков Денис
  3. Пушкарева Татьяна
  4. Закирова Алия
  5. Гилемханов Инсаф
  6. Ситдиков Булат
  7. Ахметгараев Рамиль
  8. Пищулин Владислав
  9. Яруллин Руслан
  10. Сайранов Булат

https://tech.yandex.ru/speechkit/ Для реализации можно использовать новую библиотеку Yandex SpeechKit .
Затраты по времени  :
0)Получение звукового ряда
1)Пройти модерацию на сайте яндекса ,получить Api-ключ (2ч);
2)Написание S2T ,используя данную библиотеку (24ч);
3)Разработка GUI интерфейса и его реализация (24ч);
4)При помощи API сравнение ряда с эталонами(24ч)
5)Выбор эталона(12ч)
6)Тестирование(36ч)
7)Получение звукового ответа(24ч)

  1. Платонов Роман
  2. Мухаметшин Стас
  3. Абдуллин Дамир
  4. Кунцевич Александр
  5. Хафизов Ильнар

Person recognition (PR)[править]

  • Face recognition (FR)

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

  • Эмоциональная составляющая

«Цифровое» и в некотором роде топорное общение без эмоций с устройствами, гаджетами и прочими «роботами» приелось. Людьми стала ощущаться нехватка эмоций у роботов. Поэтому очеловечивание и внедрение эмоций в работу программы по общению с пользователем является одной из главных направлений данной отрасли.
Подходы к решению поставленной задачи состоят в следующем:
1. Построение манеры общения с конкретным индивидуумом:
- распознавание лица и речи определенного человека;
- определение и создание id конкретного распознанного лица;
- занесение в БД по id определенных данных в зависимости от манеры речи, мимики лица;
- построение определенного стиля общения, основанного на логике, выстраивающей тон, громкость и информативность ответа в зависимости от сложившегося характера в базе данных робота, а так же от успеваемости, к примеру, либо от посещаемости, если речь идет об университете;
- изменение «отношения» к студенту в случае улучшения/ухудшения поведения.
2. Мимика
- построение модуля отвечающего за мимику робота;
- выстраивание связей между воспроизведением некоторого текста и мимикой (радость – улыбка, приподнятые брови, морщинки в уголках глаз; недовольство – нахмуренный лоб, «злые брови» и т.д.);
- эмоции, выраженные в мимике в зависимости от того, какой человек начинает контакт с роботом.
3. Ресурсы
- робот подключен к БД больницы/предприятия/университета, откуда и черпает информацию об анамнезе, анализах/работоспособности, активности, производительности труда/успеваемости, посещаемости, активности и т.д.;
-робот имеет собственную БД, которая содержит персональные данные, собираемые роботом в течение общения, к примеру, манера общения, субординация, наличие нецензурной брани и т.д.


  • Основные этапы выполнения задачи:

1.Определение присутствия человека в поле зрения камеры (camera+kinect(опционально)).
1.1. Определение количества людей, находящихся в поле зрения камеры.
1.2. Защита от ложных срабатываний (реагирование только на людей, намеревающихся взаимодействовать с системой; решение проблемы реагирования на проходящих мимо людей, объяснение пользователю, как система будет работать оптимально (границы зоны сканирования,количество людей в поле зрения, поза, положение) )


2.Распознавание лица человека (camera). Возможно объединение с модулем speech analysis с введением весовых коэффициентов для более точной идентификации (опционально, необходимо расширение модуля speech analysis).
2.1. Распознавание лица человека, идентификация. Обеспечить работу ПО в условиях различной освещенности/угла поворота головы, разницы в росте пользователей либо доработка аппаратного обеспечения (подсветка, подвижный кронштейн с камерой) для обеспечения одинаковых условий сканирования в различных возможных условиях. (возможно OpenCV, метод Виолы-Джонса (http://habrahabr.ru/post/133826/) либо другие существующие методы).

  • Список литературы
  1. http://habrahabr.ru/company/synesis/blog/238129/
  2. http://blog.mashape.com/list-of-50-face-detection-recognition-apis/

Testing[править]

  • Над блоком работают:
  1. Юнусова Дания
  2. Малкина Екатерина

Научно-техническая часть проекта[править]

Актуальность[править]

Идея напрямую обращаться к компьютеру не нова, но именно успех приложения Siri для iPhone наконец вывел эту технологию на первый план отрасли. Главным преимуществом естественно-языкового взаимодействия является то, что данная технология имитирует нашу с вами манеру общения, усвоенную каждым еще в раннем детстве.

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

С развитием технологий появляется все больше возможностей для улучшения процесса взаимодействия, однако, не стоит забывать, что человеческие возможности небезграничны, и это относится в том числе и к процессам коммуникации. Шагая навстречу новым моделям взаимодействий, мы одновременно создаем систему знаний. В качестве теоретической базы выступают принципы человеко-машинного взаимодействия.

Согласно модели, разработанной Биллом Верпланком (Bill Verplank), взаимодействие пользователя с любой системой состоит из трех компонентов — человеческих факторов:
1.эффективность восприятия информации: правильно ли мы воспринимаем сигналы системы;
2.принцип обработки информации: правильно ли мы понимаем и обрабатываем эти сигналы;
3.эффективность передачи информации: правильно ли мы вводим результаты обратно в систему.

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

Стоит учесть, что создание автоматизированных систем с дружелюбным интерфейсом – это современный тренд. Данный подход к разработке рассматривает психофизические и социально-психологические аспекты системы «человек-машина», обеспечивая комфортное взаимодействие. Распознавание личности позволяет адаптировать схему общения под конкретного человека, что оптимизирует выдачу информации.

Благодаря голосовым функциям компьютеры становятся членами социума. Их «личности», воспринимаемые пользователем, являются крайне важным аспектом проектирования. К счастью, нам не требуется изобретать велосипед для решения этой задачи.

UX-специалисты уже давно используют образы пользователей для их классификации. Этот подход можно применить и к компьютерам, наделенным даром речи, для определения типа личности, которая моделируется системой. Создание таких образов облегчит работу вовлеченных в создание голосового интерфейса специалистов: копирайтеров, создающих сценарии, разработчиков кодировки для преобразования текста в речь, а также актеров озвучки.

Систему можно запрограммировать на эмпатию, настроив распознавание изменений в речи пользователя — волнения, раздражения или беспокойства. Если пользователь удручен чем-либо, распознавшая это система может переключиться с авторитетного, властного образа (демонстрирующего надежность и внушающего доверие) на образ заботливый и родительский (способный успокоить пользователя).

Система представляет собой виртуального гида. Его целью является распознавание, информирование студентов, преподавателей. А так же сбор информации для базы данных. Пользователь сможет получить информацию, касающуюся учебного процесса: расписание, расположение кабинета, успеваемость и прочее. Гид будет обладать системой распознавания личности для индивидуального подхода. Запрос информации будет осуществляться посредством голосовых команд. Так же устройство будет обладать системой симулирования человеческих эмоций и поведения.

Этот функционал легко внедряется в другие сферы общества:

  •Медицина
•Промышленность
•Торговля
•Транспорт


Функциональность системы[править]

Идентификация личности[править]

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

Распознавание голосовых команд и синтез речи[править]

Взаимодействие с помощью голосовых команд обеспечит ускоренную работу с системой, а так же придаст ощущение разговора с реальной личностью.

Самообучение[править]

Система будет совершенствоваться в процессе работы и сбора данных. Это позволит обеспечить полноценное общение с пользователем. Она будет не только выдавать информацию по запросу, но и обеспечивать студента или преподавателя дополнительными сведениями при общении. К примеру, при идентификации система может напомнить, что сейчас будет пара и назовет номер аудитории.

Эмоции[править]

Мы придадим гиду черты, присущие человеку. Таким образом, пользователь сможет свободнее вести диалог с машиной и будет складываться ощущение общения с реальным человеком.

Ядро системы[править]

Над блоком работают:

   Ткаченко Анастасия.
   Хайруллин Ильнур.

Проект состоит из различных компонентов, которые будут подключаться к ядру. Ядро будет разработано на Unity 3D. Выбор Unity обусловлен тем, что она является кроссплатформенной.

Ядро системы обрабатывает запросы, поступающие от различных компонентов системы, и перенаправляет в другие компоненты, ответственные за их реализацию. Разделение программ на отдельные компоненты следует старому принципу «разделяй и властвуй». При разбиении сложной проблемы на более простые, которые могут быть решены независимо друг от друга, проблема становится более управляемой. Этот инженерный аспект компонентного ПО важен для всех типов приложений, которые состоят из более чем двух сотен строк кода. Конечно, чем больше и сложнее проект, тем более необходима модульность компонентного ПО. Для больших задач модульность становится необходимой также потому, что она делает возможной командную разработку, когда различные члены команды реализуют различные компоненты в одно и то же время.

Компоненты могут разрабатываться параллельно, если заранее ясно определено, что каждый компонент должен предоставлять, так что программист может немедленно использовать интерфейс компонента, который разрабатывается другим сотрудником — даже если его реализация еще не существует. Для того, чтобы так работать, необходимо, чтобы интерфейс компонента был четко определен и полностью отделен от его реализации, которую затем можно считать черным ящиком. Другими словами: нас не заботит, как интерфейс выглядит изнутри, на каком языке программирования он реализован (С++? Компонентный Паскаль? Ассемблер?) или в каком стиле он исполнен (процедурном? функциональном? объектно-ориентированном? «спагетти»?) — до тех пор, пока это является правильной реализацией данного интерфейса.

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

Компонентная реализация может быть заменена новой версией, если ее интерфейс остается прежним. Это делает возможным, например, отсылать клиенту частичные обновления, а не новый выпуск целого приложения (или операционной системы). Следовательно, клиенту можно послать только исправленный или улучшенный компонент.

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

Если к компоненту действительно будет общий интерес, он может быть продан на рынке. Пока эта возможность не столь конкурентоспособна, чтобы давать преимущества производителю компонентов, но она может принести достаточное количество лицензионных отчислений, чтобы быть привлекательной.

Оглядываясь на все те преимущества, которые мы обсудили, мы видим, что большинство разработчиков, то есть, малые и средние компании, не заинтересованы в монолитном ПО. Они могут только выиграть от перехода к компонентному ПО. Но любопытно, что большие компании, которые, казалось бы, больше заинтересованы в сохранении монолитности ПО, также постепенно переходят к компонентному. Возможно, это вызвано тем, что эксплуатация и дальнейшее развитие их «жирных программ» (fatware) уже превратилось в инженерный кошмар, и это настолько серьезно, что даже неограниченные ресурсы здесь не помогут.

Design(Дизайн)[править]

Трехмерное изображение персонажа RBot будет отображать эмоции, логичные в конкретной ситуации, с движением рта при воспроизведении звука, с движениями и поворотами лица на экране, с эмоциональной оценкой. Должны быть показаны естественные движения лица (моргание, движение глаз). Так же должна быть возможность настройки внешнего вида лица.

  • Над блоком работают:
  1. Сулейманова Айгуль
  2. Боронилова Ксения
  3. Бандурина Валерия
  4. Гурьянова Юлия
  5. Шарифуллина Кристина
  6. Фёдорова Софья

User Interface[править]

  • Над блоком работают:
  1. Журавлева Лариса

Modeling (UI)[править]

  • Над блоком работают:
  1. Шарюкова Камилла
  2. Бибарсов Тимур
  3. Блохина Анастасия
  4. Валиева Гульназ
  5. Валиуллин Артур
  6. Зиганшина Гузель
  7. Жукова Ксения

Knowledge Base(База знаний)[править]

База знаний (БЗ; англ. knowledge base, KB) в информатике и исследованиях искусственного интеллекта — это особого рода база данных, разработанная для оперирования знаниями (метаданными). База знаний содержит структурированную информацию, покрывающую некоторую область знаний, для использования кибернетическим устройством (или человеком) с конкретной целью. Современные базы знаний работают совместно с системами поиска информации, имеют классификационную структуру и формат представления знаний. Полноценные базы знаний содержат в себе не только фактическую информацию, но и правила вывода, допускающие автоматические умозаключения о вновь вводимых фактах и, как следствие, осмысленную обработку информации. Область наук об искусственном интеллекте, изучающая базы знаний и методы работы со знаниями, называется инженерией знаний.

База знаний — важный компонент интеллектуальной системы. Наиболее известный класс таких программ — это экспертные системы. Они предназначены для поиска способов решения проблем из некоторой предметной области, основываясь на записях БЗ и на пользовательском описании ситуации

Двумя наиболее важными требованиями к информации, хранящейся в базе знаний интеллектуальной системы, являются:

  • Достоверность конкретных и обобщённых сведений, имеющихся в базе данных;
  • Релевантность информации, получаемой с помощью правил вывода базы знаний.

Ниже перечислены некоторые из особенностей, которые могут (но не обязаны) быть у системы, оперирующей базами знаний.

  • Автоматическое доказательство (вывод). Способность системы выводить новые знания из старых, находить закономерности в БЗ. Часто принимается, что база знаний отличается от базы данных именно наличием механизма вывода.
  • Доказательство заключения. Способность системы после выдачи ответа «объяснить» ход её рассуждений, причем «по первому требованию».
  • Интроспекция. Нахождение противоречий, нестыковок в БЗ, контроль правильной организации БЗ.
  • Машинное обучение. Превращение БЗ в гибкую систему, адаптация к проблемной области. Аналогична человеческой способности «набирать опыт».

База знаний (wikipedia.org)


Cyc

Cyc — проект по созданию объёмной онтологической базы знаний, позволяющей программам решать сложные задачи из области искусственного интеллекта на основе логического вывода и привлечения здравого смысла.

Проект "Cyc"
Cyc.com

Типичным примером знаний в базе являются «Всякое дерево является растением» и «Растения смертны». Если спросить «умирают ли деревья?», машина логического вывода может сделать очевидный вывод и дать правильный ответ. База Знаний содержит более миллиона занесённых туда людьми утверждений, правил и общеупотребительных идей. Они формулируются на языке CycL, который основан на исчислении предикатов и имеет схожий с лиспом синтаксис.

Минусы

  • Чрезмерная сложность системы — без сомнения необходимая в силу энциклопедических амбиций — и соответственно сложность добавления (вручную) данных в систему
  • Проблемы масштабируемости from widespread reification, особенно как константы
  • Неудовлетворительное использование концепции материи, и связанного с этим, различия между внутренними и внешними свойствами
  • Отсутствие вменяемых измерений производительности или сравнений эффективности машины вывода Cyc
  • Нынешняя неполнота системы как в ширину, так и глубину, и связанная с этим сложность в измерении её полноты
  • Недостаток документации
  • Отсутствие неустаревшего онлайнового обучающего материала усложняет изучение системы для новичков
  • Несмотря на своё название система OpenCyc не является полностью открытой: данные доступны для редактирования пользователям, но код недоступен для расширения разработчикам.

Сравнение с конкурентными технологиями[править]

На рынке не существует аналога разрабатываемого нами продукта, но существуют частичные решения: популярные персональные помощники от таких компаний, как Apple (Siri для IPhone), Google (Google Now для Android), Microsoft (Cortana для Windows Phone), менее известные аналоги: Skyvi, Iris, Assistant…; текстовые системы для обращения к базе знаний; приложения, взаимодействующие с пользователем с помощью визуальных эффектов и 3D моделей…

Siri (англ. Speech Interpretation and Recognition Interface) — персональный помощник и вопросно-ответная система, разработанная для iOS. Данное приложение использует обработку естественной речи, чтобы отвечать на вопросы и давать рекомендации. Siri приспосабливается к каждому пользователю индивидуально, изучая его предпочтения в течение долгого времени. Первоначально Siri стало доступно в App Store как приложение для iOS от Siri Inc. Вскоре, 28 апреля 2010 года, Siri Inc. была приобретена Apple Inc. Но ещё до того, как Apple купила Siri, было объявлено, что их программное обеспечение будет доступно для телефонов BlackBerry и телефонов под управлением Android, затем эти планы были отменены из-за покупки. Сейчас Siri — неотъемлемая часть iOS и доступна для большинства устройств, выпускаемых компанией: iPhone (4S и старше), iPad (третьего поколения и старше, а также все устройства линейки iPad mini), iPod touch 5g и Apple Watch. Google Now — персонализированный сервис поиска от Google Inc, реализованный в приложении Google Search для Android и iOS. Google Now использует обработку естественного языка для ответов на вопросы, создания рекомендаций и выполнения различных действий. Отвечая на различные запросы пользователя, Google Now отображает информацию в зависимости от предпочтений пользователя, предсказывая их на основе его привычек и режима дня. Впервые появился в Android 4.1 «Jelly Bean», запущенный 9 июля 2012 и поддерживаемый смартфоном Galaxy Nexus. С 29 апреля 2013 доступен в приложении Google Search для устройств iOS. Приложение выдаёт информацию с учётом текущего местоположения пользователя, его личной информации из календаря, истории поисковых запросов, истории перемещений, истории посещённых страниц и т.д. Интерфейс оформлен в виде так называемых «информационных карточек», число которых на момент реализации достигало 10 и планировалось к увеличению. Пользователь может настроить карточки под свои потребности и удалить ненужные. По словам разработчиков, подобный интерфейс является наиболее удобным для постоянного обновления информации. У всех них присутствует основной функционал персональных помощников, есть и свои особенности, однако у Reception Bot есть ряд уникальных свойств, не имеющих аналогов.

[2]