В статье [1] рассматривается формула интегральной характеристики δ, описывающая величину достижения роботом поставленной воспитательной цели при заданном воспитании робота:
,
где j – порядковый номер воспитательного такта, i – порядковый номер компонента вектора, A – цель воспитания робота, R – вектор воспитаний робота, полученных в результате возникших у него эмоций в ответ на раздражающий стимул.
Вектор воспитаний робота, полученный на такте с номером j, имеет вид
Цель статьи – сформулировать и построить математическую модель темперамента робота. По полученной модели выполнить программную реализацию и верификацию.
Математическая модель темперамента робота
Рассмотрим вектор воспитаний робота в отношении группы роботов. Пусть у нас имеется k роботов в группе:
(1)
В монографии [2] описывается элементарная эмоция [3] в виде гармонической функции
где t – текущий момент времени, tj–1 – момент времени начала действия элементарной эмоции, tj – момент времени окончания действия элементарной эмоции, j – номер такта.
Тогда, элементарное воспитание робота в виде гармонической функции будет вычисляться следующим образом:
(2)
Преобразуем формулу интегральной характеристики δ для группы роботов:
. (3)
В работах [4, 5] предлагается формула преобладающего темперамента робота относительно группы роботов:
где .
Преобразуем формулу преобладающего темперамента робота для случая, когда робот обладает комплексными эмоциями [6].
Подставим формулу элементарного воспитания робота в виде функции (2) в формулу интегральной характеристики δ для группы роботов (3)
(4)
Найдем первую производную формулы (4). По теореме о производной интеграла по верхнему пределу [7] – интеграл с переменным верхним пределом является первообразной для подынтегральной функции. Получим
Вторая производная от формулы (4) будет равна
Получим формулу темперамента робота:
. (5)
В качестве величины, характеризующей темперамент группы роботов, будем рассматривать нормированный вектор темпераментов роботов:
. (6)
Рис. 1. Список роботов в группе
Программа вычисления преобладающего темперамента по звуковому сигналу
Введем следующее допущение: чем больше преобладающий темперамент робота, тем громче робот произносит фразы, т.е. тем больше амплитуда звуковой волны, которая исходит из динамиков робота, произносящего звуки.
Темперамент робота будем вычислять согласно соотношениям (5) и (6). В качестве группы роботов, произносящих фразы с различной амплитудой голоса, используем аудиозаписи голосов известных людей, размещенные в интернете.
Опишем программу, вычисляющую преобладающий темперамент робота по амплитуде звукового сигнала относительно этой группы.
После запуска программы открывается окно, изображенное на рис. 1.
Главный экран разделен на 2 части.
Слева выводится список роботов в группе. Это заранее записанные звуковые файлы, продолжительность звучания 5 с, всего 50 звуковых файлов. Состав группы формировался случайным образом. Так как знаменитости из группы роботов, относительно которых вычисляется темперамент, часто дают интервью, то сформировать звуковую базу данных не составило большого труда. Запись одного файла выглядела следующим образом: выбирался фрагмент интервью, где человек непрерывно говорит на протяжении 5 с, и запускался на одном ноутбуке, в это же время на другом ноутбуке запускалась запись звука. Ноутбуки были расположены экранами друг к другу и стояли вплотную. Такое расположение примерно соответствует тому, как человек будет располагаться при использовании данной программы.
Также на левой стороне главной формы программы имеются две кнопки, которые предоставляют следующие возможности. Кнопка «Темперамент» позволяет рассчитать темперамент робота, который находится в соответствующем списке. Для этого необходимо выбрать работа, кликнув на его имя в левой части экрана, и нажать на кнопку «Темперамент». В правой части экрана отобразится темперамент робота и его численное значение. Пример работы данной кнопки изображен на рис. 2.
Чтобы удалить робота из базы данных, необходимо выбрать робота в списке и нажать кнопку «Удалить». Это может понадобиться, например, если потребуется убрать робота с самым большим темпераментом или если был сохранен некорректно записанный звуковой файл.
С правой стороны описана краткая инструкция по использованию программы. Там же отображается темперамент и его численное значение. Чтобы определить тип темперамента и его численное значение, необходимо нажать кнопку «Старт». На месте формы, где отображается темперамент, появится слово «Говорите», что свидетельствует о том, что нужно начать говорить.
Рис. 2. Пример второй формы программы
Рис. 3. Добавление темперамента в базу данных
Программа автоматически остановит запись после 5 с и выведет темперамент и его числовое значение, как изображено на рис. 2. Полученная запись не попадает сразу же в аудио базу данных. Чтобы ее сохранить, необходимо нажать кнопку «Добавить». После этого появится дополнительное окно (рис. 3). В нем предлагается ввести имя робота, чтобы при последующем использовании программы, его было проще найти.
Когда пользователь введет имя робота, то он должен нажать кнопку «Добавить» в этом же окне, и аудио файл будет сохранен, а робот появится в списке в левой части экрана. Если до сохранения повторно нажать кнопку «Старт», то начнется запись нового файла, а предыдущий будет потерян.
Опишем алгоритм работы программы вычисления преобладающего темперамента робота по амплитуде его голоса:
1. После того как пользователь нажимает кнопку «Старт», создается файл формата wav, в который записывается звуковой сигнал, поступающий на микрофон.
2. В отдельном программном потоке запускается таймер, который позволяет завершить запись звукового сигнала через 5 с после ее начала.
3. Записанный файл разделяется на отрезки по 50 мс. На этих отрезках считается среднее значение амплитуды звукового сигнала.
4. Полученный массив амплитуд используется для вычисления темперамента в группе роботов.
5. Тип преобладающего темперамента определяется согласно таблице.
Соответствие типа темперамента его численному значению
Тип преобладающего темперамента робота |
Интервалы изменения робота численного значения темперамента |
Меланхолик |
(0; 0,3) |
Флегматик |
(0,3; 0,5) |
Сангвиник |
(0,5; 0,8) |
Холерик |
(0,8; 1) |
Если численное значение темперамента больше 1, то роботу присваивается значение «Не определен» в качестве темперамента.
1) Полученное значение выводится на экран и при необходимости может быть сохранено в БД и использовано при следующей эксплуатации программы.
Численное значение преобладающего темперамента робота рассчитывается только один раз, после чего сохраняется в базе данных. При первом запуске приложения рассчитывается численное значение темперамента для всех звуковых файлов, которые находятся в папке ./data/audio. Изначально приложение содержит 50 аудиофайлов, как было сказано выше, с фрагментами интервью известных людей.
В качестве языка программирования был выбран Java [8], так как он обладает следующими преимуществами:
1) кроссплатформенность. Программа может быть скомпилирована под различные платформы (Linux, Windows);
2) наличие API для работы со звуком;
3) наличие инструментов для создания интерфейса десктопного приложения;
4) наличие полной документации и развитого сообщества разработчиков;
5) относительная простота разработки;
6) наличие удобной и бесплатной среды разработки.
Для хранения данных используется база h2. Так как любая база данных справится с задачами приложения, то была выбрана база с самым низким порогом вхождения. Для внедрения зависимости применяется фреймворк spring boot, как самый популярный. Для создания графического интерфейса была использована платформа JavaFX [9].
Заключение
Соотношения для вычисления преобладающего темперамента с помощью описанной выше программы были верифицированы натурными экспериментами под контролем практикующих психологов. Результаты верификации показали точность определения типа преобладающего темперамента человека, равную 85 %. В экспериментах приняли участие 68 чел. Таким образом, предложенный алгоритм позволяет быстро определять с достаточной точностью тип преобладающего темперамента объекта по амплитуде звуковой волны его голоса. В качестве практического применения предложенных моделей преобладающего темперамента и программы вычисления темперамента можно предложить, например, их использование при определении рода служебных функций при трудоустройстве человека или оценки величины психологического возбуждения человека: если численное значение его преобладающего темперамента превосходит его темперамент при предварительном тестировании в спокойном состоянии, то это может говорить о значительном стрессовом состоянии респондента, если же вычисленный темперамент значительно превышает единицу, то можно говорить о том, что человек близок к психологическому срыву или уже находится в неадекватном состоянии.