Local AI / Voice / Урок 06

Офлайн-ассистент

Соединяем слух, модель и голос в локальную систему с наблюдаемыми метриками.

Видео · 1:02Материалы · 15 минутРусскийОбновлён 02 августа 2026
Для кого
Инженеры, собирающие приватного или edge-ассистента.
Перед началом
Проверенные отдельно speech-input, локальный runtime и TTS.
01:02 Озвучка · встроенный текст

Моё обучение

Прогресс и заметка

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

Войти

Материалы / 15 минут

Соединить локальные ASR, LLM и TTS в управляемый голосовой контур без облачной зависимости.

01

Компоненты должны оставаться отдельными

ASR, LLM и TTS имеют разные модели отказа и требования к ресурсам. Соединяйте их через узкие сообщения, а не через общий процесс с неявным состоянием.

Оркестратор владеет turn ID, отменой, таймаутами и состоянием интерфейса. Модели только преобразуют вход в выход.

02

Нужны очереди и backpressure

Если синтез речи медленнее генерации текста, очередь не должна расти бесконечно. Ограничивайте число сегментов и останавливайте генерацию после interrupt.

Одновременная работа трёх моделей может превысить RAM. Измерьте последовательный и параллельный режим и выберите профиль устройства.

03

Офлайн надо доказывать

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

Логи не должны содержать сырое аудио и полный transcript по умолчанию. Для отладки используйте явный режим с ограниченным сроком хранения.

Контракт оркестратора yaml
turn:
  id: local-42
  deadline_ms: 12000
asr:
  input: audio/turn-42.wav
llm:
  context_limit: 4096
tts:
  chunk_queue_limit: 3

Практика

Проведите один turn без сети

Соберите минимальный ассистент и измерьте задержку каждого этапа отдельно.

  1. 01

    Свяжите ASR, LLM и TTS через явные сообщения.

  2. 02

    Добавьте turn ID, deadline и interrupt.

  3. 03

    Запишите latency каждого этапа и peak RAM всего контура.

  4. 04

    Отключите сеть и повторите тест от микрофона до голоса.

Критерии готовности

  • Полный сценарий работает без сети.
  • Каждый этап имеет отдельный timeout и метрику.
  • Очередь аудио ограничена.
  • Interrupt останавливает все три этапа.