xiaozhi-esp32-server: открытый сервис бэкэнд-службы чатбота Xiaozhi AI
Общее введение
Сервер xiaozhi-esp32-server - это новый сервер для Чатбот Xiaozhi AI Chatbot (xiaozhi-esp32)Предоставляет инструменты для внутренних сервисов. Он написан на языке Python и основан на протоколе WebSocket, чтобы помочь пользователям быстро создать сервер для управления устройствами ESP32. Этот проект подходит для тех, кто уже приобрел оборудование ESP32 и хочет самостоятельно создать бэкэнд. Его функции очень практичны, например, поддержка голосового диалога, распознавание нескольких языков и управление умным домом. Проект с открытым исходным кодом на GitHub, последнее обновление - март 2025 года, с подробной официальной документацией и активным сообществом. Обратите внимание, что он все еще находится в стадии разработки и не рекомендуется к использованию непосредственно в производственной среде.

Список функций
- Связь через WebSocket: обменивается данными с оборудованием в режиме реального времени по протоколу xiaozhi-esp32.
- голосовой диалогПоддерживаются диалог пробуждения, ручной диалог и прерывания в реальном времени, а также автоматический переход в спящий режим, если устройство не используется в течение длительного времени.
- Распознавание намерений: распознает намерения пользователя с помощью большой модели, а также может вызывать функции для выполнения инструкций.
- Поддержка нескольких языков: Понимание китайского, кантонского, английского, японского и корейского языков с помощью FunASR по умолчанию.
- Переключение языковых моделейChatGLM: ChatGLM используется по умолчанию, но также поддерживает Alibaba Refinement, DeepSeek и так далее.
- синтез речи: Поддерживает EdgeTTS и Volcano Engine TTS для создания естественной речи.
- режим памяти: Есть три варианта: сверхдлинная память, локальная сводка и отсутствие памяти.
- Управление умным домом: Может подключаться к HomeAssistant для управления включением и выключением приборов.
Использование помощи
Процесс установки
Чтобы использовать xiaozhi-esp32-server, необходимо подготовить оборудование и среду. Вот шаги:
1. Подготовительная работа
- программное обеспечение: Устройство ESP32, поддерживающее прошивку xiaozhi-esp32, см.Официальный список.
- Ноутбуки: рекомендуется 4-ядерный процессор, 8 ГБ оперативной памяти. Если вы используете API для распознавания речи, подойдут и 2 ядра, 2 ГБ.
- оборудование: Установите Python 3.10 и Conda.
2. Загрузка проекта
- Открыть https://github.com/xinnan-tech/xiaozhi-esp32-server.
- Нажмите "Код" и выберите "Загрузить ZIP" для загрузки.
- Распакуйте его и переименуйте папку в "xiaozhi-esp32-server".
3. Настройка среды Conda
- Откройте командную строку и выполните команду:
conda create -n xiaozhi-esp32-server python=3.10 -y
conda activate xiaozhi-esp32-server
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda install libopus -y
conda install ffmpeg -y
- Проверьте результаты каждого шага, чтобы убедиться в отсутствии ошибок.
4. Установка зависимостей
- Перейдите в папку с проектом:
cd xiaozhi-esp32-server/main/xiaozhi-server
- Установите внутренний источник и установите его:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip install -r requirements.txt
5. Загрузка модели
- По умолчанию используется распознавание речи FunASR. Перейдите к официальному руководству (см. README) и загрузите модели в папку "models".
- Проверьте наличие файла "model.pt" в папке "SenseVoiceSmall" и загрузите его, если его там нет.
6. изменение конфигурации
- Откройте файл "config.yaml" и настройте параметры:
- языковая модель: ChatGLM по умолчанию, может быть изменен на DeepSeek или помощника по дому.
- синтез речи: Default EdgeTTS, сменный Volcano Engine TTS.
- тихое время: положить
min_silence_duration_ms
Настройтесь на 1000 (для медленных разговоров). - Сохраните файл.
7. Запуск сервера
- Запустите в папке "xiaozhi-server":
python main.py
- Если вы увидите сообщение "Сервер работает на порту 8000", значит, все прошло успешно.
8. обновление прошивки
- Поместите адрес сервера (например.
http://你的IP:8000
) записана в прошивке xiaozhi-esp32. - нажмитеРуководство по компиляции микропрограммного обеспеченияПерекомпилируйте и запишите.
Другие способы развертывания
- Быстрое развертывание Docker: Подходит для новичков. Бег
docker pull xinnan-tech/xiaozhi-esp32-server
Следуйте указаниям по запуску. - Запуск исходного кода Docker: Хорошо подходит для тех, кто меняет код. Сначала установите Docker, а затем запустите проект с официальной документацией.
- Подробнее см.Документация по развертыванию.
Функциональное управление
голосовой диалог
- пробуждает: Произнесите слово пробуждения (заданное в прошивке), и сервер ответит.
- ручной курок: Нажмите кнопку устройства, чтобы начать диалог.
- разрываться: Прерывание во время разговора немедленно обрабатывается устройством.
- Для работы: скажите устройству "привет" и прослушайте ответ.
многоязычное распознавание
- Поддерживаются пять языков. Приоритет можно настроить в файле конфигурации.
- Управление: скажите "Hello" или "Konichiwa", и устройство поймет вас.
синтез речи
- При настройке TTS текст превращается в речь.
- Действие: введите "сегодняшнюю погоду" с помощью тестового сценария, и устройство прочитает ее.
- Toggle: изменение интерфейса TTS в файле конфигурации.
умный дом
- Подключение HomeAssistant: Заполните маркер.
- Действие: скажите "включи свет", и свет включится.
- Тест: Выполнить
python performance_tester.py
Проверьте скорость.
предостережение
- ретикуляция: Поддерживая стабильность, WebSocket полагается на соединения в реальном времени.
- поручительство: развертывание публичных сетей для открытой защиты (
auth: enabled: true
). - регулировка компонентов во время тестирования: Просмотрите журналы командной строки и устраните проблему.
сценарий применения
- умный дом
- Подключитесь к HomeAssistant, скажите "выключить кондиционер", и кондиционер остановится.
- голосовой помощник
- Положите его на стол, спросите "какая погода будет завтра", и он вам ответит.
- языковая практика
- Разговор на английском языке, устройство поможет вам отработать произношение.
QA
- Как распознать беспорядочную речь?
- Проверьте наличие "model.pt" в "models/SenseVoiceSmall". Если нет, перейдите вруководствоСкачать.
- Ошибка TTS говорит, что файл не существует?
- Подтверждено.
libopus
ответить пениемffmpeg
. Запуск без загрузки.conda install conda-forge::libopus
ответить пениемconda install conda-forge::ffmpeg
.
- Что делать, если ответ слишком медленный?
- Переключитесь на более быструю модель, например AliLLM + DoubaoTTS.
python performance_tester.py
Сделайте замер.
- Что делать, если вы не спешите говорить, а вас лишают слов?
- В "config.yaml" поместите файл
min_silence_duration_ms
Изменить на 1000.
- Как вы управляете приборами?
- В конфигурации выберите HomeAssistant, введите маркер и произнесите команду.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...