Смекни!
smekni.com

Разработка программного обеспечения для голосового управления трехмерными моделями функционирования промышленных роботов (стр. 15 из 17)

Рассчитываем длину массива. Вызываем функцию избавления от шумов. Вызываем функцию обработки с помощью фильтра. Вызываем функцию обработки в окне Хэмминга. Вызываем функцию выполнения преобразования Фурье. Вызываем функцию проведения клиппирования. Выводим на экран сообщение, что данные успешно обработаны. Выходим из функции.

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

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


3.3 Реализация функции распознавания голосовых команд голосового управления промышленным роботом

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

После этого проводится обработка в окне Хэмминга. График полученный в результате этого преобразования приведен на рис 3.3.

Рисунок 3.3 – График функции, после обработки в окне Хэмминга

Далее выполняется преобразование Фурье для коэффициентов, взвешенных окном Хэмминга После этого производится фильтрация. Затем проводится обратное преобразование Фурье. Далее следует операция клигширования, на основании графика которой делается вывод о том, какое слово было произнесено. На рис. 3.4 приведены графики сигнала для слова «вперёд».


Рисунок 3.5 - Графики сигнала для слова «назад» (а - график вокализованной части сигнала; б - график сигнала после обработки в окне Хэмминга; в -график сигнала после клиппирования)

На рис. 3.6 приведены графики сигнала для слова «стоп».

Рисунок 3.6 – Графики сигнала для слова «стоп» (а - график вокализованной части сигнала; б - график сигнала после обработки в окне Хэмминга; в -график сигнала после клиппирования)

На рис. 3.11 приведены графики сигнала для слова «пять».


Рисунок 3.11 – Графики сигнала для слова «пять» (а - график вокализованной части сигнала; б - график сигнала после обработки в окне Хэмминга; в - график сигнала после клиппирования)

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

3.4 Реализация голосового управления трёхмерными моделями промышленного робота

Библиотека OpenGL представляет собой интерфейс программирования трехмерной графики - это её основное предназначение. Библиотека представляет собой программный интерфейс для аппаратного обеспечения машинной графики. Этот интерфейс состоит приблизительно из 250 отдельных команд (почти 200 команд в ядре OpenGL и еще 50 команд в библиотеке утилит OpenGL), которые используются для того, чтобы определить объекты и операции, необходимые для создания интерактивных трехмерных прикладных программ.

Единицей информации является вершина, из них состоят более сложные объекты. При создании заданной модели необходимо создать вершины, указать, как их соединять (линиями или многоугольниками), установить координаты и параметры камеры и ламп, а библиотека OpenGL создает изображения на экране [16].

Исходя из вышеуказанных причин было принято решение реализовать моделирование функционирования промышленного робота с помощью средств библиотеки OpenGL.

Для создания требуемой модели робота используются различные трехмерные объекты. Каждая трехмерная модель имеет две разновидности: каркас (wireframe) без поверхностных нормалей и объемная модель (solid) с закраской и поверхностными нормалями. При создании программного обеспечения использовались каркасные модели.

Преобразование вида и моделирование сложно связаны в OpenGL и в действительности объединены в одну матрицу видового преобразования (modelview matrix). Существуют три подпрограммы OpenGL для преобразований модели: glTranslate(), glRotate(), glScale().Эти подпрограммы выполняют преобразование объекта (или системы координат) с помощью его параллельного переноса (moving), поворота (rotating), растягивания (stretching), сжатия (shrinking) или зеркального отражения (reflecting). Все три команды эквивалентны созданию соответствующей матрицы параллельного переноса (translation), поворота (rotation) или

масштабирования {scaling), а затем вызову команды glMultMatrixQ с этой матрицей в качестве аргумента. Однако использование этих трех подпрограмм должно быть быстрее использования команды glMultMatrixQ. OpenGL автоматически вычисляет эти матрицы для пользователя [17].

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

Ниже приведена функция, обеспечивающая моделирование функционирования промышленного робота.


void CMain::OnOpenGLFirst()

{glPushMatrixQ;

glTranslatef(k*per,-3.0,0.0);

glRotatef(360.0* vspos/100,0,1,0);

glRotatef(l 80,0,0,1);

glLineWidth(2.0);

glPushMatrix();

glRotatef(90.0,1.0,0.0,0.0);

glColor3f(0.0,0.0,1.0);

auxWireCone(1.5,1.0);

glPopMatrix();

glTranslatef(0.0,-l.0,0.0);

glColor3f(0.0,0.5,0.5);

auxWireCylinder(0.6,4.0);

glPushMatrix();

glTranslatef(0.0,-3.0,0.0);

glRotatef(90.0,1.0,0.0,0.0);

glColor3f(l.0,0.0,0.0);

auxWireCylinder(0.6,2.0);

glRotatef(180.0*hspos/100,0.0,1.0,0.0);

glTranslatef(l.0,0.5,0.0);(3.3)

Преждевсего, перемещаемсцену. Далее задаём вращение вокруг оси ъ. Задаём переменную, которая будет обеспечивать перемещение робота согласно голосовым командам. Запоминаем положение основы робота. Строим его основу – конус, поднимаемся к его вершине. Строим колонну робота и перемещаемся к её вершине, поворачиваемся на 90 градусов относительно оси х. Строим цилиндр – крепление плеча. Задаём движение

плеча горизонтальной прокруткой. Перемещаемся в конец крепления плеча и создаём плечо –- строим призму. Перемещаемся к её концу, поворачиваемся на 90 градусов и создаём цилиндр – локоть. Далее после перемещения к концу этого цилиндра строим призму – основание схвата, поворачиваемся на 90 градусов и строим первый и второй пальцы.

Результат моделирования робота приведен на рис. 3.1

Рисунок 3.1 Результат моделирования функционирования промышленного робота


Выводы

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

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

В работе рассмотрены гомоморфная обработка речи, кодирование речи на основе линейного предсказания и цифровая её обработка в системах речевого общения человека с машиной, особенности различных систем распознавания речи.

Первоначальной задачей являлось создание интерфейса записи и воспроизведения звукового сигнала. Это было выполнено с использованием встроенной библиотеки mmsystem операционной системы Windows. Далее были добавлены функции, обеспечивающие обработку записанного сигнала: выделение вокализованных участков речи, взвешивание коэффициентов дискретного сигнала с помощью окна Хэмминга, преобразование Фурье, фильтрация, обратное преобразование Фурье, а также клиппирование и вычисление кепстра.

На основании проведенного анализа сигнала создана функция распознавания слова-команды. При помощи графической библиотеки OpenGL была обеспечена визуализация выполнения трёхмерной моделью ПР

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

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

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