На обложке — художественная иллюстрация из исходного материала 361.Robotics о голосовом управлении.

Одна команда проходит через несколько систем

Фраза «подними руку» кажется одним действием. В голосовом интерфейсе её можно разложить на отдельные шаги:

  1. Микрофон получает звук.
  2. Аудиопоток поступает на компьютер, который обрабатывает речь.
  3. Распознаватель переводит речь в текст.
  4. Программа определяет намерение: разговор это или команда из разрешённого набора.
  5. Контроллер проверяет состояние робота и принимает либо отклоняет команду.
  6. Система сообщает результат выполнения.

Голосовой ответ — отдельная часть: синтез речи превращает подготовленный текст в звук. Произнесённое роботом «хорошо» само по себе ещё не подтверждает, что движение завершилось.

Ниже — редакционный разбор трёх статей Антона Якимова о работе с Walker Tienkung в лаборатории 361.Robotics. Наблюдения относятся к описанной в них установке; они помогают понять устройство голосового управления, но не заменяют проверку другого робота.

Микрофон подключён, а звука нет

В разборе потери микрофона использовалась беспроводная петличка с USB-приёмником. Приёмник подключили к доступному компьютеру робота, а обработка речи работала на другом. Между ними звук передавался по сети.

Здесь есть несколько разных соединений: микрофон с приёмником, приёмник с компьютером, передача звука между компьютерами. В описанной установке при выключенном передатчике USB-приёмник оставался подключённым и продолжал передавать поток цифровых нулей. Поэтому проверка «виден ли микрофон системе» отвечала лишь на часть вопроса.

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

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

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

Распознавание речи часто обозначают ASR: это преобразование аудио в текст. Оно ещё не определяет, какое действие допустимо выполнить.

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

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

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

Команда понятна, но робот ещё не готов

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

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

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

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

Что фиксировать при разборе сбоя

Начните с конкретного эпизода: кто и какую фразу произнёс, что услышал оператор в ответ и что сделал робот. Затем сопоставьте наблюдение с последовательностью обработки.

  1. Входящий звук: есть ли запись нужной фразы на входе распознавателя, нет ли тишины и обрыва.
  2. Результат распознавания: какой текст получился и отличается ли он от произнесённого.
  3. Выбранное намерение: какую команду определила программа; не приняла ли разговор за запрос движения.
  4. Состояние управления: разрешалось ли действие в этот момент, требовалось ли подтверждение.
  5. Результат: принято ли действие контроллером, выполнено ли оно и что система сообщила человеку.

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

С чего начать знакомство с голосовым управлением

Сначала полезно увидеть весь путь команды и только затем выбирать модель распознавания. Потерю звука, неверный текст, неправильное намерение и отказ контроллера нельзя объяснить одним показателем «робот понимает речь».

Технические детали, примеры ошибок и решения конкретной установки собраны в трёх исходных материалах:

Другие материалы о платформах и работе лаборатории — в разделе «Гуманоидные роботы». Новые наблюдения и видео публикуем в Telegram-канале 361.Robotics.