🧠NAS как ИИ-сервер

Это исходный отчёт фазы как есть — со всеми таблицами и методикой. Живая версия: 🏠 Голосовой ассистент.

Фаза 4: голосовой ассистент целиком (STT → LLM → TTS)

Прогон: 20 октября 2026
Хост: UGREEN DXP4800 Pro, i3-1315U, 32 GB, iGPU Intel RPL-U (Xe-LP, 64 EU)
Что меряли: как часто голосовая команда для Home Assistant превращается в правильный вызов, сколько секунд проходит от конца фразы до готового ответа и уживаются ли распознавание и LLM на одном iGPU. Кандидаты взяты из фаз 2, 3 и 5.

Коротко

Как мерили

Распознавание команд

40 команд × 3 голоса = 120 клипов (2–4 с речи + 0.4 с тишины с каждой стороны), «шум» — те же клипы с бубнежом и розовым шумом при SNR 10 dB. WER «как есть» — как в фазе 2; «числа словами» — цифры в расшифровке переведены в слова («22» → «двадцать два»), так whisper не штрафуется за запись чисел. «Без Piper» — только голоса Silero (у Piper dmitri ошибки в ударениях, см. фазу 3). «Укр.» — расшифровок с украинскими буквами (і, ї, є, ґ) из 240.

Модель Где WER как есть, чисто / шум WER числа словами, чисто / шум Без Piper, чисто Команда, с Укр.
whisper-large-v3-turbo int8 OVMS, iGPU 14.5 / 17.0 8.3 / 10.6 2.3 2.3 0
Parakeet TDT 0.6B v3 onnx-asr, CPU 7.5 / 6.9 6.2 / 6.9 3.2 0.6 0
Vosk ru 0.42 onnx-asr, CPU 3.1 / 7.5 3.1 / 7.5 0.9 0.2 0

Команда выполнена верно: от звука до вызова инструмента

Доля команд, где LLM по расшифровке вызвала нужные инструменты с нужными параметрами (правила сверки — из фазы 5). «Текст» — сама команда без распознавания (40 штук), остальные — 120 клипов. «Silero» — только два голоса Silero (80 клипов). Системный промпт — из фазы 5 плюс просьба отвечать коротко и числа писать словами.

LLM текст whisper whisper, шум Parakeet Parakeet, шум Vosk whisper, Silero LLM, с (медиана)
Qwen3.5-4B 100.0 90.0 89.2 90.0 90.0 93.3 98.8 6.6
Qwen3-4B 90.0 86.7 85.8 89.2 86.7 87.5 88.8 4.6
Ling 3.0 Tiny 90.0 83.3 83.3 86.7 84.2 85.8 87.5 2.6

Ответ для озвучки

Второй шаг диалога: модель получает результат инструмента (для вопросов о состоянии — текст с цифрами: «21.5 °C», «38 %», «1.8 кВт») и формулирует ответ. «Без цифр» — доля ответов без цифр, латиницы и символов, то есть готовых для Silero без нормализатора; по команде (текст) и по 120 клипам whisper.

LLM Без цифр, все ответы Без цифр, ответы о состоянии Средняя длина, симв. Пример ответа о состоянии
Qwen3.5-4B 100.0 100.0 40 Сейчас в спальне двадцать одна градус пять десятых по Цельсию.
Qwen3-4B 80.6 42.9 36 Температура в спальне: 21.5 °C.
Ling 3.0 Tiny 80.6 50.0 47 Температура в спальне сейчас составляет 21.5 градусов.

Живой стек: от конца фразы до готового ответа

Одновременно запущены OVMS (whisper, iGPU) и llama-server (LLM, iGPU), Silero работает в процессе конвейера (CPU, 4 потока). 120 чистых и 120 зашумлённых клипов, по одному. Медиана и максимум, секунды. Ничего не стримится, поэтому «итого» — это и время до первого звука ответа.

LLM Звук STT LLM: вызов LLM: ответ TTS Итого, медиана Итого, макс. Ответ звучит, с
Qwen3.5-4B чисто 2.3 6.5 1.9 0.1 10.6 17.5 2.0
Qwen3.5-4B шум 2.3 6.5 1.9 0.1 10.6 17.6 2.1
Ling 3.0 Tiny чисто 2.3 2.6 1.4 0.1 6.3 10.8 2.0
Ling 3.0 Tiny шум 2.3 2.5 1.4 0.1 6.3 10.8 2.0

Память стека

Пик по docker stats за прогон (Silero — внутри контейнера конвейера, ~0.7 GiB по фазе 3, здесь не снимался).

LLM STT (OVMS), GiB LLM, GiB Вместе, GiB
Qwen3.5-4B 2.4 4.7 7.1
Ling 3.0 Tiny 2.3 6.7 8.7

Выводы и рекомендации

Что ставить для голосового ассистента

Вариант Связка Точность команд Время ответа Когда брать
Точный Vosk → Qwen3.5-4B → Silero 93% (со звука), 100% по тексту ~8.7 с (оценка), 10.6 с с whisper по умолчанию
Быстрый Vosk → Ling 3.0 Tiny → Silero 86% ~4.3 с (оценка), 6.3 с с whisper если 10 секунд — слишком долго и ошибки терпимы
Ещё быстрее любой из двух без шага 2 (фиксированный ответ на действия) та же ~6.8 / ~2.9 с (оценка) для команд управления; вопросы о состоянии всё равно через шаг 2

Отдельно стоит учесть:

Что видно в цифрах

Ограничения