Ты стоишь у работающего клетевого стана. Шум — под 90 децибел, металлический пол вибрирует так, что зудят подошвы ботинок. Обходчик зажимает тангенту гарнитуры костной проводимости и кричит: «Задир на шейке вала, давит масло из-под фланца насоса эн-вэ-пять». В красивых презентациях эта фраза мгновенно ложится структурированным тикетом в ERP-систему. В реальности она разлетается в труху на первом же акустическом фильтре. Распознавание речи в цеху на 90 дБ: ASR для нарядов и обходов, который работает без интернета — звучит как задача на стыке магии и слабоумия, пока не начнёшь ковырять инженерию руками.
В Morana Labs мы ежедневно катим индустриальный ИИ, edge-вычисления и high-load инференс строго на железе заказчика. Данные не покидают периметр. Мы видим, как красивые облачные решения ложатся под первой же серьезной нагрузкой. Попытки притащить консьюмерские голосовые технологии на тяжелое производство всегда заканчиваются одинаково. Итог один. Оно не работает.
Рассмотрим базовый подход. Берете универсальное облачное API или нетронутый Whisper, цепляете микрофон с активным шумоподавлением и отправляете сотрудника в цех. На чистых тестовых записях в офисе всё искрится. В бою система дохнет. Широкополосный промышленный шум, лязг металла и шипение пневматики забивают высокочастотные согласные. Универсальная акустическая модель теряет акустическую опору и лихорадочно обращается к своей языковой модели, которая обучалась на подкастах. А Википедия ничего не знает про аббревиатуры конкретного цеха и сленговые названия узлов. В результате насос «НВ-5» распознаётся как «не выть пять», а «задир» — как «за дверь».
К тому же, сеть на производстве — это всегда боль. Даже если служба ИБ чудесным образом разрешит стримить переговоры диспетчеров и параметры критического оборудования на внешние сервера (спойлер: не разрешит), вас добьет физика. Задержка ответа облака на нестабильном цеховом Wi-Fi делает push-to-talk бесполезным. Обходчик диктует проблему, ждёт ответа, пакеты теряются, таймаут. On-prem инференс обязателен. Без компромиссов.
Распознавание речи в цеху на 90 дБ: ASR для нарядов и обходов, который работает без интернета
Чтобы заставить speech-AI слышать сквозь грохот, приходится строить многоступенчатый локальный пайплайн. Классические спектральные гейты отправляются в мусорку сразу — вместе с монотонным гулом станка они отрезают половину полезных формант речи. Человек такую обрезанную запись кое-как поймёт. Нейросеть — нет. Архитектура боевого on-prem решения всегда состоит из трех независимых слоев:
- Потоковая очистка аудио от индустриальных шумов на базе компактных сетей.
- Кастомная акустическая модель, дообученная на локальных акцентах и зажатая в рамки словаря цеха.
- Легковесный NER-модуль, который превращает сырой текст в структурированные поля наряда.
import torch
import torchaudio
from df.enhance import enhance, init_df
from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq
# 1. Очистка аудио от шумов через потоковую модель
model_df, state_df, _ = init_df()
audio, sr = torchaudio.load("raw_mic_input.wav")
clean_audio = enhance(model_df, state_df, audio)
# 2. Инференс локального ASR
processor = AutoProcessor.from_pretrained("whisper-toir-edge")
model = AutoModelForSpeechSeq2Seq.from_pretrained("whisper-toir-edge").to("cuda")
# Сужаем лучевой поиск под жесткий словарь цеха
forced_ids = processor.get_decoder_prompt_ids(language="ru", task="transcribe") Чистый звук — это лишь половина дела. Базовый алгоритм всё равно споткнётся об отраслевую лексику. Мастера называют транспортерную ленту «кишкой», а задвижку — «бабочкой». Система обязана мапить это в номенклатуру без запинок. Диалект и специфический жаргон требуют сбора собственных, грязных аудиоданных с конкретной площадки. Приходится дообучать акустику на тяжёлых акцентах, а поверх накидывать жёсткий граф (WFST) или кастомный n-gram. Этот ограничитель физически не даст нейросети сгенерировать слова вне отраслевого словаря.
Дальше вступает в игру парсинг. Текст — это ещё не наряд. Вы получили строку: «на дробилке номер два сдох подшипник». Обычная регулярка здесь ломается. Нужна модель для извлечения сущностей, которая выдернет класс дефекта, номер узла и таймстемп. Только тогда интеграция связки голос-ТОиР срабатывает без ручного ввода и кардинально ускоряет обходы оборудования.
Где всё это крутится? Вы не запустите конкурентные потоки тяжёлой модели на умных часах. Либо вы ставите сервер с мощными GPU в локальном ЦОДе завода и тянете аудио по закрытой сети, либо, если связь в галереях падает окончательно, тащите инференс прямо на edge-устройства — в защищенные планшеты обходчиков или носимые хабы.
Магии не существует. Честный трейд-офф выглядит так: на 95 дБ и при сильном акценте диктора даже эталонно оттюненый ASR иногда ошибается. Вы не можете просто пробормотать дефект в микрофон и забыть. Жизненно необходим контур подтверждения. Система распарсила голос, и обходчик обязан увидеть результат на экране планшета или услышать через TTS в наушнике, чётко сказав: «Подтверждаю».
Голосовой ИИ — это шикарный инструмент для фиксации дефектов, заполнения чек-листов и сокращения рутины. Но это не замена письменному наряду-допуску на критичных операциях. Там, где ошибка стоит жизни инженера или миллионов рублей из-за остановки линии, работают глаза, руки и физические подписи. Технологии снимают бюрократию, но ответственность остаётся на человеке.