Голосовое управление для системы автоматизированного проектирования

Научная статья
  • Гизатуллин Зиннур Марселевич0000-0003-0571-5593Казанский национальный исследовательский технический университет им. А.Н. Туполева-КАИ, Казань, Российская Федерация
  • Нуртдинов Рифат СалаватовичКазанский национальный исследовательский технический университет им. А.Н. Туполева-КАИ, Казань, Российская Федерация
https://doi.org/10.60797/IRJ.2026.169.69
DOI:
https://doi.org/10.60797/IRJ.2026.169.69
EDN:
DAWNDR
Предложена:
06.03.2026
Принята:
06.07.2026
Опубликована:
17.07.2026
Выпуск: № 7 (169), 2026
Выпуск: № 7 (169), 2026
Правообладатель: авторы. Лицензия: Attribution 4.0 International (CC BY 4.0)
24
1
XML
PDF

Аннотация

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

1. Введение

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

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

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

.

Цель данной работы — создание прототипа интерфейса голосового управления для САПР на примере FreeCAD. FreeCAD — популярная САПР с открытым исходным кодом, имеет встроенный Python-интерпретатор и интерфейс scripting API. Из консоли Python или из пользовательских скриптов можно управлять FreeCAD и выполнять все операции, доступные через его графический интерфейс. Это значит, что результат распознавания голоса можно напрямую преобразовывать в вызовы функций FreeCAD через его Python API.

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

2. Методы и принципы исследования

Современные системы голосового управления состоят из подсистем распознавания речи и последующего семантического разбора команд. К ключевым открытым технологиям распознавания речи (ASR-движкам) относятся Vosk, OpenAI Whisper и Mozilla DeepSpeech/Coqui, а также коммерческие облачные сервисы (Google Speech-to-Text, Yandex SpeechKit, Microsoft Azure Speech и др.).

Vosk — легковесный оффлайн-фреймворк на базе Kaldi, поддерживающий более 20 языков, работающий даже на слабых устройствах и без интернет-соединения. Он имеет малый размер языковых моделей и прост в установке, поддерживает потоковое распознавание и предлагает привязки к разным языкам программирования

.

Компания Fraunhofer IDMT представила решение для надёжного управления производственным оборудованием с помощью голоса даже в шумной обстановке, также существуют коммерческие системы вроде Voice2CAD, которые задействуют технологии распознавания речи Microsoft для выполнения команд в AutoCAD, Revit, SolidWorks и других пакетах — фактически озвучивая стандартные горячие клавиши и macros CAD-систем. В работе

описана система VOICE CAD для трёхмерного моделирования голосовыми командами, благодаря которой время выполнения типовых операций сократилось на ~40% по сравнению с традиционным интерфейсом, а точность распознавания команд достигла 92%. Пользователи без опыта работы с CAD смогли приступить к работе с таким голосовым интерфейсом всего за 15 минут обучения, демонстрируя 90%-й уровень удовлетворённости системой.

OpenAI Whisper — нейросетевая модель с открытым кодом, созданная на основе 680 тыс. часов многоязычных аудиоданных. Это самый популярный инструмент транскрибации, обеспечивающий очень высокое качество распознавания. Whisper поддерживает десять языков, обладает повышенной устойчивостью к шумам, акцентам и техническому жаргону, однако модели Whisper требуют до 10 ГБ GPU-памяти и работают партиями по 30-секундным фрагментам, что увеличивает задержку

.

Mozilla DeepSpeech — открытый движок ASR, основанный на движке Baidu Deep Speech. Он обеспечивает потоковое распознавание речи и может работать в реальном времени на GPU и CPU, так же у него есть поддержка TensorFlow Lite для мобильных устройств. DeepSpeech позволяет обучать собственные языковые модели, но набор поддерживаемых языков ограничен, а для подготовки исходных данных требует большое количество времени. В реальных программах DeepSpeech подходит для относительно небольших словарей команд на английском языке и требует постобработки результата

.

Помимо оффлайн-решений, применяются так же облачные сервисы распознавания. Google Speech-to-Text API поддерживает более 125 языков и диалектов и демонстрирует очень высокую точность благодаря большим нейросетевым моделям. Сервис легко интегрируется через REST/gRPC API, может работать в потоковом режиме и адаптироваться под специфическую лексику

. Недостатки облачных решений — необходимость постоянного интернет-соединения, оплата по времени обработки и потенциальные риски конфиденциальности. Для русского языка используют Yandex SpeechKit, облачный API с хорошей поддержкой фоновой речи и словарей русского языка, Microsoft Azure Speech-to-Text и IBM Watson.

После конвертации речи в текст нужно выделить смысл команды. Для этого используются NLP/NLU-библиотеки и платформы. Rasa Open Source — фреймворк на Python для построения диалоговых систем. Rasa позволяет создавать контекстно-зависимые ассистенты и легко подключается к различным каналам

. Snips NLU — легковесная Python-библиотека для извлечения структурированной информации из естественного языка (определения интента и параметров команды)
. NLTK (Natural Language Toolkit) — классический набор Python-библиотек для NLP (токенизация, стемминг, теггинг, парсинг, семантический анализ и др.)
.

Основные характеристики различных подходов к распознаванию речи приведены в таблице 1.

Таблица 1 - Сравнение подходов к распознаванию голосовых команд по ключевым параметрам

Подход/Платформа

Оффлайн

Словарь

Устойчивость к шуму

Гибкость лексики

Облачные сервисы

Нет

Очень большой

Очень высокая

Низкая (фиксированная модель)

Vosk (Kaldi, TDNN-LSTM)

Да

Большой (динамический)

Высокая

Высокая (расширяемый словарь)

Грамматические шаблоны (WFST)

Да

Ограниченный

Средняя

Средняя (фиксированные шаблоны)

При реализации современных систем голосового управления одним из ключевых направлений является обеспечение шумоустойчивости и малой задержки системы

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

3. Основные результаты

Для реализации голосового управления САПР разработан алгоритм, последовательно выполняющий преобразование устной команды пользователя в соответствующее действие в среде FreeCAD. Алгоритм состоит из ряда этапов от захвата звукового сигнала до исполнения команды в САПР. Ниже приведены основные стадии этого процесса:

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

.

2. Распознавание речи. На следующем этапе происходит непосредственное распознавание речи — преобразование последовательности признаков в текстовую последовательность. Для решения данной задачи используется система Vosk, которая базируется на гибридной архитектуре DNN-HMM (глубокая нейронная сеть и скрытая марковская модель). Акустическая модель Vosk представляет собой глубокую нейронную сеть, состоящую из комбинации TDNN (нейронная сеть с временной задержкой) и LSTM (сеть долгой краткосрочной памяти) слоёв

. На вход данной системы подаются MFCC-признаки, а на выходе получаем текстовую транскрипцию голосовой команды.

3. Интерпретация команды. На этапе интерпретации команды в разработанном прототипе используется словарный алгоритм прямого сопоставления. Словарь команд хранится во внешнем JSON-файле commands.json; для каждой команды задаются основное имя, список синонимов и программный код действия. После распознавания речи полученная строка последовательно сравнивается с записями словаря: сначала с основным именем команды, затем с её синонимами. При полном совпадении выбирается соответствующая команда и передаётся на исполнение в FreeCAD. Таким образом, вариативность пользовательских формулировок обеспечивается за счёт заранее добавляемых синонимов, а порог срабатывания в базовой реализации является бинарным: команда выполняется только при точном совпадении распознанной строки с одной из допустимых формулировок. Настройка интерпретации осуществляется редактированием JSON-словаря и списка синонимов через интерфейс программы. Такой подход обеспечивает простоту и предсказуемость работы, однако ограничивает гибкость системы, поскольку она не учитывает смысл свободно сформулированного запроса и зависит от заранее заданного словаря.

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

5. Передача команды в документ САПР. Определив необходимую команду, система передаёт её на выполнение в среду FreeCAD с помощью встроенного Python API. FreeCAD обладает встроенным интерпретатором Python и предоставляет программный доступ ко всем основным функциям системы. Во всех случаях цель заключается в том, чтобы активировать соответствующую функцию FreeCAD так, словно пользователь выбрал её через графический интерфейс, но посредством программного вызова.

6. Обратная связь и отображение результата. На финальном этапе пользователь получает подтверждение о выполнении команды и её результат. Если команда успешно исполнена, то результат видно непосредственно в среде — например, на модели появляется созданный объект, изменяется геометрия или выполняется другое ожидаемое действие.

Таким образом, формализованная постановка задачи выглядит следующим образом: преобразовать акустический сигнал А в текстовую последовательность: R=SpeeschToText(А); интерпретировать текстовую последовательность в команду: R→Ci; осуществить функциональное отображение команды Ci на конкретную исполняемую функцию f из программного интерфейса САПР: Ci→f∈API. Ограничение на время распознавания голосовой команды для комфортной работы менее 500 мс. При этом необходимо максимизировать функционал качества Q=Nc/Nt, где Nc — количество корректно распознанных и выполненных инженерных команд; Nt — общее количество голосовых команд.

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

UML диаграмма компонентов разработанной системы представлена на рисунке 1.

UML диаграмма компонентов

Рисунок 1 - UML диаграмма компонентов

Основным компонентом представленной диаграммы является исполняемый файл VOICE.exe. Данный компонент реализует весь основной функционал голосового управления и представляет собой приложение, запускаемое на рабочей станции пользователя. Взаимодействие с базой данных осуществляется напрямую из VOICE.exe. Компонент tkinter реализует графический пользовательский интерфейс приложения VOICE.exe. Через этот интерфейс пользователь может управлять списком команд, просматривать историю команд, изменять параметры распознавания речи и настраивать макросы. Взаимодействие между VOICE.exe и tkinter реализовано программно – через вызовы методов библиотеки tkinter для создания и обработки окон, диалогов и пользовательских событий.

Модуль Main отвечает за организацию внутренней логики работы приложения, запуск и контроль всех процессов в VOICE.exe, а также интеграцию внешних библиотек и модулей. Main инициализирует взаимодействие с модулем распознавания речи и с компонентом FreeCAD API.

Для распознавания голосовых команд используется внешняя библиотека vosk.dll (Vosk Speech Recognition). Связь между Main и vosk.dll реализована через вызовы API библиотеки — Main инициирует процесс захвата аудиосигнала, передачи его на распознавание и получения текстового результата.

Для передачи команд непосредственно в FreeCAD используется FreeCAD API. Это компонент, реализующий взаимодействие с FreeCAD через его открытый Python API. VOICE.exe формирует текст команды и передаёт его в FreeCAD API, где команда исполняется непосредственно в CAD-среде.

В составе FreeCAD отдельным компонентом выделен макрос sever.FCMacro, который обеспечивает приём и обработку входящих команд из внешних систем. Связь с этим макросом осуществляется по механизму inter-process communication (обычно — через сокеты или внутренний сервер макроса в FreeCAD), что позволяет получать команды, отправленные из VOICE.exe или других приложений, и обрабатывать их в реальном времени.

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

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

Схема навигации между основными окнами и модулями системы

Рисунок 2 - Схема навигации между основными окнами и модулями системы

Интерфейс модуля «параметры распознавания» демонстрируют функциональное окно, предназначенные для управления параметрами, языком распознавания. Данный интерфейс представлен на рисунке 3.
Окно параметров распознования речи

Рисунок 3 - Окно параметров распознования речи

4. Обсуждение

Пример результат работы голосового интерфейса в системы FreeCAD представлена на рисунке 4.

Главное окно голосового интерфейса и результат исполнения команды «каркас» в FreeCAD

Рисунок 4 - Главное окно голосового интерфейса и результат исполнения команды «каркас» в FreeCAD

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

Для оценки эффективности разработанного прототипа была проведена предварительная экспериментальная апробация на наборе из 10 типовых голосовых команд FreeCAD, состоящих из одного или двух слов. Команды в наборе: «сохранить», «сохранить как», «отменить», «повторить», «каркас», «точки», «только грани», «как есть», «повернуть влево», «повернуть вправо». В эксперименте участвовали 3 диктора: два студента, юноша и девушка, а также один преподаватель мужского пола. Каждая команда произносилась каждым диктором по 10 раз в двух акустических условиях таких как:

1) в комнате преподавателя при отсутствии фоновой речи и выраженных источников шума;

2) в той же комнате при работающем напольном вентиляторе на расстоянии около 2 м, с заявленным уровнем шума не более 46 дБ.

Для записи использовался встроенный микрофон ноутбука Lenovo Legion 5.

Таким образом, на одного диктора приходилось 100 произнесений команд в одном акустическом условии и 200 произнесений в двух условиях. Общий объём выборки составил 600 тестовых произнесений (таблица 2).

Таблица 2 - Сводные результаты распознавания команд

Условие тестирования

Количество произнесений

Корректно распознано

Неверно выбрана другая команда

Команда не распознана

Точность, %

1. Без выраженного фонового шума

​300

​253

​31

​16

​84,3

2. При работе вентилятора

​300

​238

​38

​24

​79,3

Итого

​600

​491

​69

​40

​81,8

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

Под неверным выбором другой команды понималась ситуация, когда вместо произнесённой команды система активировала другую команду из заданного набора. Под нераспознанной командой понималась ситуация, когда команда не была сопоставлена ни с одним элементом словаря и действие не выполнялось.

По результатам эксперимента средняя точность распознавания составила 81,8%. Для данной выборки 95%-й доверительный интервал составляет ±3,1%, то есть итоговая оценка точности составляет 81,8±3,1%. Снижение точности во втором акустическом условии связано с наличием дополнительного фонового шума, что увеличило как количество ошибок замены команды, так и число нераспознанных команд. Полученный результат соответствует общим тенденциям, отмечаемым в литературе для систем распознавания команд с ограниченным словарём, где точность существенно зависит от предметной настройки словаря, акустических условий, качества микрофона и уровня фонового шума. Для Vosk-подобных решений повышение точности достигается, в частности, за счёт адаптации словаря и языковой модели под конкретный домен команд.

На разработанное приложение получено свидетельство о государственной регистрации программы для ЭВМ №2025689922 РФ «Голосовой интерфейс для программы FreeCAD».

5. Заключение

В работе проведен анализ решений в области голосового управления и предложена эффективная комбинации нейросетевых и программных архитектур голосового интерфейса для системы САПР, обеспечивающее надежное распознавание русской речи и выполнение соответствующих команд в режиме реального времени. На основании предложенных архитектур создан прототип интерфейса голосового управления для FreeCAD. На разработанное приложение получено свидетельство о государственной регистрации программы для ЭВМ «Голосовой интерфейс для программы FreeCAD».

В принципе аналогичная интеграция возможна и с другими open-source CAD-системами, однако её сложность определяется доступностью программного интерфейса. Для OpenSCAD интеграция представляется возможной через генерацию .scad-сценариев и запуск в командной строке, поскольку система ориентирована на параметрическое текстовое описание моделей и работу в command-line environment. Для LibreCAD интеграция также принципиально возможна, но требует отдельного адаптера: в актуальной ветке LibreCAD 2.x документированы command line и console tool, тогда как в LibreCAD 3 заявлена возможность Lua-скриптинга. При этом перенос прототипа на LibreCAD и OpenSCAD потребует переработки словаря команд и исполнительного слоя, поскольку LibreCAD ориентирован на 2D-черчение, а OpenSCAD — на сценарное 3D-моделирование, то есть семантика команд и набор доступных операций в них отличаются от FreeCAD.

Перспективой развития предлагаемого подхода голосового управления является переход от словарного голосового интерфейса к интеллектуальной голосовой среде, в которой подключаемый модуль искусственного интеллекта, например YandexGPT или DeepSeek, будет интерпретировать пользовательский запрос с учётом контекста и сопоставлять его с командами не только по точному совпадению, но и по смыслу. Дополнительно предполагается расширение системы до многосредового режима работы, при котором пользователь сможет выбирать приложение для голосового управления. Помимо FreeCAD, в единую оболочку может быть включён уже реализованный модуль голосового управления Microsoft Word, а в дальнейшем — и другие прикладные программы.

Метрика статьи

Просмотров:24
Скачиваний:1
Просмотры
Всего:
Просмотров:24