Проблема с SSH-сессиями и правами (Самая частая на тонких клиентах)
Если вы запускаете Xiaozhi через SSH или из-под учетной записи root, системный звуковой сервер (PulseAudio или PipeWire) блокирует доступ к аудиокарте для этой сессии.
• Проверка прав: Убедитесь, что ваш текущий пользователь добавлен в группу audio:
bash
sudo usermod -aG audio $USER
Используйте код с осторожностью.
(После этого нужно перезайти в систему/переподключиться по SSH).
• Если запускаете от root: PulseAudio по умолчанию запрещает работу от суперпользователя. Попробуйте временно запустить клиент Xiaozhi через pasuspender, чтобы обойти звуковой сервер и обратиться напрямую к ALSA:
bash
pasuspender -- ./xiaozhi-client
Используйте код с осторожностью.
Принудительное переключение на встроенный динамик HP T610
У HP T610 есть встроенный моно-динамик («пищалка» внутри корпуса) и аналоговые выходы 3.5 мм. Часто Debian по умолчанию отправляет звук на разъемы mini-jack или на видеовыход DisplayPort (HDMI), из-за чего встроенный динамик молчит.
1. Установите утилиту для управления громкостью:bash
sudo apt update && sudo apt install alsa-utils
Используйте код с осторожностью.
2. Откройте микшер:bash
alsamixer
Используйте код с осторожностью.
3. Нажмите F6, выберите вашу основную карту (HDA Intel PCH или IDT 92HD81B1X), а не HDMI.
4. Стрелками вправо найдите переключатель Speaker или Auto-Mute Mode.
• Если Auto-Mute включен (Enabled), система отключает встроенный динамик, думая, что подключены наушники. Переключите его в положение Disabled (стрелками вверх/вниз).
• Убедитесь, что под шкалой Speaker стоит значение OO (включено), а не MM (заглушено). Если там MM, нажмите клавишу M для включения.
3. Исправление аудио-движка в самом Xiaozhi
Клиент Xiaozhi (особенно Rust-версия xiaozhi_linux_rs или Python-скрипты) по умолчанию пытается использовать аудио-библиотеку Rodio или PortAudio, которые ищут устройство с индексом 0.
Проверьте, какой индекс у вашей аналоговой карты:
bash
aplay -l
Используйте код с осторожностью.
Если ваша карта HDA Intel указана как card 1 (а card 0 — это, например, звуковой выход видеокарты AMD/Nvidia), то Xiaozhi пытается отправлять звук «в никуда».
• Решение: Откройте конфигурационный файл Xiaozhi (config.json или .env) и в блоке аудио замените устройство вывода по умолчанию на имя вашей карты или системный микшер:json
"output_device": "pulse"
Используйте код с осторожностью.
илиjson
"output_device": "hw:1,0"
Используйте код с осторожностью.
(вместо 1,0 укажите номер карты и устройства из вывода команды aplay -l).
4. Тест декодера Opus
Поскольку Xiaozhi принимает с сервера сжатый поток данных, проверьте, установлены ли необходимые пакеты для декодирования аудио:
bash
sudo apt install libasound2-dev libpulse-dev libopus-dev portaudio19-dev
Используйте код с осторожностью.