XiaoZhi AI и DeepSeek: как устройство и большая модель делят работу

XiaoZhi AI и DeepSeek: как устройство и большая модель делят работу

15 января 2025 г.

Услышав «XiaoZhi + DeepSeek», многие думают, что модель работает на самом ESP32. Это не так: устройство XiaoZhi не подключается к большой модели напрямую. Оно служит голосовым входом, а модель подключается на стороне сервера. Так проект описан в README основного репозитория: чат-бот XiaoZhi AI — это точка голосового взаимодействия, которая использует возможности больших моделей, таких как Qwen и DeepSeek, и управляет множеством конечных устройств по протоколу MCP.

В статье разобрано это разделение ролей и на примере сервера сообщества показано, как настроить DeepSeek на стороне сервера.

Статья пересмотрена 2026-10-23: удалены цифры сравнения производительности, «гибридный алгоритм маршрутизации», дорожная карта и примеры сценариев, у которых не было источника в основном репозитории. Оставлено только то, что можно проверить по исходному коду прошивки, официальной документации и репозиторию сервера. Этот сайт не проводил тестов ни одной модели и не приводит сравнительных данных.

1. Что делает устройство, а что — сервер

ЭтапГдеПояснение
Обнаружение слова активацииУстройствоОфлайн-пробуждение на базе ESP-SR, поддерживаются собственные слова активации
Захват и воспроизведение звукаУстройствоМикрофон захватывает звук, он кодируется в поток Opus и уходит на сервер; звук от сервера декодируется и воспроизводится
Дисплей и эмоцииУстройствоТекст и эмоции на OLED / LCD
Распознавание речи (ASR)СерверПревращает принятую речь в текст
Диалог с большой моделью (LLM)СерверDeepSeek и другие модели подключаются именно на этом этапе
Синтез речи (TTS)СерверПревращает текст ответа в речь
Управление устройствамиMCP на устройствеГромкость, свет, моторы, GPIO и другое

README основного репозитория сообщает, что прошивка использует потоки Opus и поддерживает как классическую потоковую схему ASR + LLM + TTS, так и сквозные голосовые модели Realtime. Протоколы между устройством и сервером описаны в разделах WebSocket и MQTT + UDP.

2. Два способа подключения

СпособОткуда берётся модельКому подходит
Официальный сервер (по умолчанию)Из того, что предлагает официальная консоль; личные пользователи после регистрации могут бесплатно использовать модель Qwen RealtimeХотите просто пользоваться и не поддерживать сервер
Собственный серверИз того, что поддерживает ваш сервер, включая DeepSeekХотите сами выбирать большую модель, распознавание и синтез речи

В прошивке нет и не нужно API-ключа большой модели. Храните ключи только в конфигурации своего сервера. Общий подход к собственному серверу, предупреждение о безопасности и способ направить устройство на ваш сервер описаны на странице Собственный сервер.

3. Настройка DeepSeek на сервере (на примере xiaozhi-esp32-server)

xinnan-tech/xiaozhi-esp32-server — открытый сервер сообщества (лицензия MIT). Конфигурация ниже взята из main/xiaozhi-server/config.yaml в теге v0.9.7:

# Excerpt of main/xiaozhi-server/config.yaml (xiaozhi-esp32-server v0.9.7)
selected_module:
  LLM: DeepSeekLLM

LLM:
  DeepSeekLLM:
    type: openai
    model_name: deepseek-v4-flash
    url: https://api.deepseek.com
    api_key: <your DeepSeek API key>

Пояснения:

  • selected_module.LLM выбирает, какая запись LLM используется; здесь она указывает на DeepSeekLLM, определённую ниже;
  • type: openai означает вызов через OpenAI-совместимый интерфейс; сервер сейчас поддерживает типы LLM openai, dify и ollama;
  • model_name меняется по мере обновления моделей DeepSeek, актуальные данные смотрите на платформе DeepSeek;
  • документация сервера советует хранить свои изменения в data/.config.yaml: этот файл переопределяет config.yaml, и при обновлении они не пропадут;
  • API-ключ — чувствительные данные. Не коммитьте его в репозиторий и не вставляйте в публичные issue.

4. Пять шагов до первого диалога

  1. Прошейте устройство: выберите вариант своей платы на странице Загрузка прошивки и запишите его программой для прошивки.
  2. Настройка сети и активация: настройте Wi-Fi по инструкции Первый запуск.
  3. Разверните сервер: следуйте документации проекта сервера и запишите его OTA URL и WebSocket URL.
  4. Направьте устройство на свой сервер: введите OTA URL на вкладке «Дополнительно (Advanced)» страницы настройки или задайте Default OTA URL при сборке.
  5. Настройте и проверьте: укажите на сервере адрес и ключ DeepSeek, начните диалог словом активации или кнопкой и убедитесь по журналу сервера, что запрос дошёл.

5. О чём подумать перед выбором DeepSeek

Это общие инженерные соображения, а не результаты тестов:

  • Задержка: один голосовой ход последовательно проходит распознавание, модель и синтез, а время до первого токена модели напрямую влияет на ожидание. Измеряйте в своей сети и на своём сервере.
  • Стоимость и лимиты: модели тарифицируются за вызовы и могут иметь ограничения по частоте. Читайте тарифы и условия поставщика.
  • Приватность: текст диалога отправляется стороннему API. Если приватность важна, сначала прочтите политику данных поставщика и рассмотрите модель, которую можно запустить локально.
  • Заменяемость: сервер описывает LLM как параметр конфигурации, поэтому смена модели обычно сводится к изменению настроек; не зашивайте детали модели в бизнес-логику.
  • Безопасность: собственный сервер не проходил оценку безопасности. Перед публикацией в интернете обеспечьте защиту; см. предупреждение на странице Собственный сервер.

Читайте также

Источники

  • Основной репозиторий 78/xiaozhi-esp32 v2.5.2: README.md.
  • Проект сообщества xiaozhi-esp32-server, main/xiaozhi-server/config.yaml в теге v0.9.7.
  • Проверено 2026-10-23. Об ошибках и дополнениях пишите на [email protected].