-
-
Notifications
You must be signed in to change notification settings - Fork 613
Description
🐛 问题描述
在依赖安装后,启动gui时,日志显示音频插件初始化失败,且点击按钮无法进行语音对话
🔍 复现步骤
python main.py 启动程序后日志如下:
2025-11-13 14:59:57,217[root] - INFO - 日志系统已初始化,日志文件: /home/zz/code/python/py-xiaozhi/py-xiaozhi/logs/app.log - MainThread 2025-11-13 14:59:57,217[__main__] - INFO - Wayland环境:设置QT_QPA_PLATFORM=wayland;xcb - MainThread 2025-11-13 14:59:57,217[__main__] - INFO - Wayland环境检测完成,已应用兼容性配置 - MainThread 2025-11-13 14:59:57,274[__main__] - INFO - 已在main中创建qasync事件循环 - MainThread 2025-11-13 14:59:57,274[__main__] - INFO - 启动小智AI客户端 - MainThread 2025-11-13 14:59:57,379[__main__] - INFO - 开始设备激活流程检查... - MainThread 2025-11-13 14:59:57,379[src.core.system_initializer] - INFO - 开始系统初始化流程 - MainThread 2025-11-13 14:59:57,380[src.core.system_initializer] - INFO - 开始第一阶段:设备身份准备 - MainThread 2025-11-13 14:59:57,380[src.utils.device_fingerprint] - INFO - 检查efuse文件: /home/zz/code/python/py-xiaozhi/py-xiaozhi/config/efuse.json - MainThread 2025-11-13 14:59:57,381[src.utils.device_fingerprint] - INFO - efuse.json文件已存在,验证完整性 - MainThread 2025-11-13 14:59:57,381[src.core.system_initializer] - INFO - 设备序列号: SN-A33A7ECC-a86daaac869a - MainThread 2025-11-13 14:59:57,382[src.core.system_initializer] - INFO - MAC地址: a8:6d:aa:ac:86:9a - MainThread 2025-11-13 14:59:57,382[src.core.system_initializer] - INFO - HMAC密钥: 29c36160... - MainThread 2025-11-13 14:59:57,382[src.core.system_initializer] - INFO - 本地激活状态: 已激活 - MainThread 2025-11-13 14:59:57,382[src.core.system_initializer] - INFO - efuse.json文件位置: /home/zz/code/python/py-xiaozhi/py-xiaozhi/config/efuse.json - MainThread 2025-11-13 14:59:57,383[src.core.system_initializer] - INFO - 完成第一阶段:设备身份准备 - MainThread 2025-11-13 14:59:57,383[src.core.system_initializer] - INFO - 开始第二阶段:配置管理初始化 - MainThread 2025-11-13 14:59:57,383[src.core.system_initializer] - INFO - 客户端ID: d85919df-60d8-4706-ba54-532c1fd2679a - MainThread 2025-11-13 14:59:57,383[src.core.system_initializer] - INFO - 设备ID: a8:6d:aa:ac:86:9a - MainThread 2025-11-13 14:59:57,383[src.core.system_initializer] - INFO - 完成第二阶段:配置管理初始化 - MainThread 2025-11-13 14:59:57,384[src.core.system_initializer] - INFO - 开始第三阶段:OTA获取配置 - MainThread 2025-11-13 14:59:57,796[src.core.ota] - INFO - 发现MQTT配置信息 - MainThread 2025-11-13 14:59:57,797[src.core.ota] - INFO - MQTT配置已更新 - MainThread 2025-11-13 14:59:57,797[src.core.ota] - INFO - 发现WebSocket配置信息 - MainThread 2025-11-13 14:59:57,800[src.core.ota] - INFO - WebSocket URL已更新: wss://api.tenclass.net/xiaozhi/v1/ - MainThread 2025-11-13 14:59:57,801[src.core.ota] - INFO - WebSocket Token已更新 - MainThread 2025-11-13 14:59:57,801[src.core.system_initializer] - INFO - OTA配置获取结果: - MainThread 2025-11-13 14:59:57,801[src.core.system_initializer] - INFO - - MQTT配置: 已获取 - MainThread 2025-11-13 14:59:57,801[src.core.system_initializer] - INFO - - WebSocket配置: 已获取 - MainThread 2025-11-13 14:59:57,801[src.core.system_initializer] - INFO - WebSocket URL: wss://api.tenclass.net/xiaozhi/v1/ - MainThread 2025-11-13 14:59:57,801[src.core.system_initializer] - INFO - 未检测到激活信息,设备可能已激活 - MainThread 2025-11-13 14:59:57,802[src.core.system_initializer] - INFO - 完成第三阶段:OTA获取配置 - MainThread 2025-11-13 14:59:57,802[src.core.system_initializer] - INFO - 激活版本: v2 - MainThread 2025-11-13 14:59:57,802[src.core.system_initializer] - INFO - v2协议:分析激活状态 - MainThread 2025-11-13 14:59:57,802[src.core.system_initializer] - INFO - 无需显示激活界面,设备已激活 - MainThread 2025-11-13 14:59:57,802[__main__] - INFO - 激活流程完成,结果: True - MainThread 2025-11-13 14:59:57,802[src.application] - INFO - 启动Application,protocol=websocket - MainThread 2025-11-13 14:59:58,005[src.mcp.tools.system.manager] - INFO - [SystemManager] 系统工具管理器初始化 - MainThread 2025-11-13 14:59:58,005[src.mcp.tools.system.manager] - INFO - [SystemManager] 开始注册系统工具 - MainThread 2025-11-13 14:59:58,006[src.mcp.mcp_server] - INFO - Add tool: self.audio_speaker.set_volume - MainThread 2025-11-13 14:59:58,006[src.mcp.mcp_server] - INFO - Add tool: self.application.launch - MainThread 2025-11-13 14:59:58,006[src.mcp.mcp_server] - INFO - Add tool: self.application.scan_installed - MainThread 2025-11-13 14:59:58,006[src.mcp.mcp_server] - INFO - Add tool: self.application.kill - MainThread 2025-11-13 14:59:58,006[src.mcp.mcp_server] - INFO - Add tool: self.application.list_running - MainThread 2025-11-13 14:59:58,006[src.mcp.tools.system.manager] - INFO - [SystemManager] 系统工具注册完成 - MainThread 2025-11-13 14:59:58,019[src.mcp.tools.calendar.database] - INFO - 数据库初始化完成 - MainThread 2025-11-13 14:59:58,020[src.mcp.mcp_server] - INFO - Add tool: self.calendar.create_event - MainThread 2025-11-13 14:59:58,020[src.mcp.mcp_server] - INFO - Add tool: self.calendar.get_events - MainThread 2025-11-13 14:59:58,020[src.mcp.mcp_server] - INFO - Add tool: self.calendar.get_upcoming_events - MainThread 2025-11-13 14:59:58,020[src.mcp.mcp_server] - INFO - Add tool: self.calendar.update_event - MainThread 2025-11-13 14:59:58,020[src.mcp.mcp_server] - INFO - Add tool: self.calendar.delete_event - MainThread 2025-11-13 14:59:58,020[src.mcp.mcp_server] - INFO - Add tool: self.calendar.delete_events_batch - MainThread 2025-11-13 14:59:58,020[src.mcp.mcp_server] - INFO - Add tool: self.calendar.get_categories - MainThread 2025-11-13 14:59:58,021[src.mcp.tools.timer.manager] - INFO - [TimerManager] 倒计时器工具管理器初始化 - MainThread 2025-11-13 14:59:58,022[src.mcp.tools.timer.manager] - INFO - [TimerManager] 开始注册倒计时器工具 - MainThread 2025-11-13 14:59:58,022[src.mcp.mcp_server] - INFO - Add tool: timer.start_countdown - MainThread 2025-11-13 14:59:58,022[src.mcp.mcp_server] - INFO - Add tool: timer.cancel_countdown - MainThread 2025-11-13 14:59:58,022[src.mcp.mcp_server] - INFO - Add tool: timer.get_active_timers - MainThread 2025-11-13 14:59:58,022[src.mcp.tools.timer.manager] - INFO - [TimerManager] 倒计时器工具注册完成 - MainThread 2025-11-13 14:59:58,155[src.mcp.tools.music.manager] - INFO - [MusicManager] 音乐工具管理器初始化 - MainThread 2025-11-13 14:59:58,155[src.mcp.tools.music.manager] - INFO - [MusicManager] 开始注册音乐工具 - MainThread 2025-11-13 14:59:58,179[src.mcp.tools.music.music_player] - INFO - pygame mixer初始化完成 - 采样率: 24000Hz - MainThread 2025-11-13 14:59:58,180[src.mcp.tools.music.music_player] - INFO - 音乐缓存目录初始化完成: /home/zz/.local/share/py-xiaozhi/cache/music - MainThread 2025-11-13 14:59:58,181[src.mcp.tools.music.music_player] - INFO - 临时音乐缓存清理完成 - MainThread 2025-11-13 14:59:58,181[src.mcp.tools.music.music_player] - INFO - 音乐播放器单例初始化完成 - MainThread 2025-11-13 14:59:58,181[src.mcp.tools.music.music_player] - INFO - [MusicPlayer] 创建音乐播放器单例实例 - MainThread 2025-11-13 14:59:58,181[src.mcp.mcp_server] - INFO - Add tool: music_player.search_and_play - MainThread 2025-11-13 14:59:58,181[src.mcp.mcp_server] - INFO - Add tool: music_player.play_pause - MainThread 2025-11-13 14:59:58,182[src.mcp.mcp_server] - INFO - Add tool: music_player.stop - MainThread 2025-11-13 14:59:58,182[src.mcp.mcp_server] - INFO - Add tool: music_player.seek - MainThread 2025-11-13 14:59:58,182[src.mcp.mcp_server] - INFO - Add tool: music_player.get_lyrics - MainThread 2025-11-13 14:59:58,182[src.mcp.mcp_server] - INFO - Add tool: music_player.get_status - MainThread 2025-11-13 14:59:58,182[src.mcp.mcp_server] - INFO - Add tool: music_player.get_local_playlist - MainThread 2025-11-13 14:59:58,182[src.mcp.tools.music.manager] - INFO - [MusicManager] 音乐工具注册完成 - MainThread 2025-11-13 14:59:58,622[src.mcp.mcp_server] - INFO - Add tool: take_photo - MainThread 2025-11-13 14:59:58,623[src.mcp.mcp_server] - INFO - Add tool: take_screenshot - MainThread 2025-11-13 14:59:58,658[src.mcp.mcp_server] - INFO - Add tool: self.bazi.get_bazi_detail - MainThread 2025-11-13 14:59:58,658[src.mcp.mcp_server] - INFO - Add tool: self.bazi.get_solar_times - MainThread 2025-11-13 14:59:58,659[src.mcp.mcp_server] - INFO - Add tool: self.bazi.get_chinese_calendar - MainThread 2025-11-13 14:59:58,659[src.mcp.mcp_server] - INFO - Add tool: self.bazi.build_bazi_from_lunar_datetime - MainThread 2025-11-13 14:59:58,659[src.mcp.mcp_server] - INFO - Add tool: self.bazi.build_bazi_from_solar_datetime - MainThread 2025-11-13 14:59:58,659[src.mcp.mcp_server] - INFO - Add tool: self.bazi.analyze_marriage_timing - MainThread 2025-11-13 14:59:58,659[src.mcp.mcp_server] - INFO - Add tool: self.bazi.analyze_marriage_compatibility - MainThread 2025-11-13 14:59:58,661[src.audio_codecs.audio_codec] - INFO - 加载设备配置 | 输入: 48000Hz 1ch | 输出: 48000Hz 1ch - MainThread 2025-11-13 14:59:58,662[src.audio_codecs.audio_codec] - INFO - Opus编解码器创建成功 - MainThread 2025-11-13 14:59:58,662[src.audio_codecs.audio_codec] - INFO - 输入重采样: 48000Hz → 16kHz - MainThread 2025-11-13 14:59:58,662[src.audio_codecs.audio_codec] - INFO - 输出重采样: 24000Hz → 48000Hz - MainThread 2025-11-13 14:59:58,664[src.audio_codecs.audio_codec] - ERROR - 创建音频流失败: Error opening OutputStream: Invalid number of channels [PaErrorCode -9998] - MainThread 2025-11-13 14:59:58,664[src.audio_codecs.audio_codec] - ERROR - 初始化音频设备失败: Error opening OutputStream: Invalid number of channels [PaErrorCode -9998] - MainThread 2025-11-13 14:59:58,665[src.audio_codecs.audio_codec] - INFO - 开始关闭音频编解码器... - MainThread 2025-11-13 14:59:58,757[src.audio_codecs.audio_codec] - INFO - 音频资源已完全释放 - MainThread 2025-11-13 14:59:58,758[src.plugins.audio] - ERROR - 音频插件初始化失败: Error opening OutputStream: Invalid number of channels [PaErrorCode -9998] - MainThread Traceback (most recent call last): File "/home/zz/code/python/py-xiaozhi/py-xiaozhi/src/plugins/audio.py", line 37, in setup await self.codec.initialize() File "/home/zz/code/python/py-xiaozhi/py-xiaozhi/src/audio_codecs/audio_codec.py", line 133, in initialize await self._create_streams() File "/home/zz/code/python/py-xiaozhi/py-xiaozhi/src/audio_codecs/audio_codec.py", line 320, in _create_streams self.output_stream = sd.OutputStream( File "/home/zz/miniconda3/envs/py-xiaozhi/lib/python3.10/site-packages/sounddevice.py", line 1527, in __init__ _StreamBase.__init__(self, kind='output', wrap_callback='array', File "/home/zz/miniconda3/envs/py-xiaozhi/lib/python3.10/site-packages/sounddevice.py", line 909, in __init__ _check(_lib.Pa_OpenStream(self._ptr, iparameters, oparameters, File "/home/zz/miniconda3/envs/py-xiaozhi/lib/python3.10/site-packages/sounddevice.py", line 2823, in _check raise PortAudioError(errormsg, err) sounddevice.PortAudioError: Error opening OutputStream: Invalid number of channels [PaErrorCode -9998] 2025-11-13 14:59:58,773[src.audio_processing.wake_word_detect] - INFO - KWS配置加载完成 - 阈值: 0.2, 分数: 1.8 - MainThread 2025-11-13 14:59:58,774[src.audio_processing.wake_word_detect] - ERROR - Sherpa-ONNX KeywordSpotter初始化失败: 模型文件不存在: /home/zz/code/python/py-xiaozhi/py-xiaozhi/models/encoder.onnx - MainThread Traceback (most recent call last): File "/home/zz/code/python/py-xiaozhi/py-xiaozhi/src/audio_processing/wake_word_detect.py", line 116, in _init_kws_model raise FileNotFoundError(f"模型文件不存在: {file_path}") FileNotFoundError: 模型文件不存在: /home/zz/code/python/py-xiaozhi/py-xiaozhi/models/encoder.onnx 2025-11-13 14:59:58,792[src.mcp.tools.calendar.reminder_service] - INFO - 日程提醒服务已启动 - MainThread 2025-11-13 14:59:58,794[src.mcp.tools.calendar.reminder_service] - INFO - 今日无日程安排 - MainThread 2025-11-13 14:59:58,842[src.plugins.shortcuts] - INFO - 全局快捷键监听已启动 - MainThread 2025-11-13 14:59:58,843[src.mcp.tools.calendar.reminder_service] - INFO - 开始日程提醒检查循环 - MainThread 2025-11-13 14:59:59,021[SystemTray] - INFO - 系统托盘图标已初始化 - MainThread 2025-11-13 15:00:39,799[GuiDisplay] - INFO - 开始退出应用程序... - MainThread 2025-11-13 15:00:39,803[GuiDisplay] - INFO - 开始退出应用程序... - MainThread 2025-11-13 15:00:39,804[src.application] - INFO - 正在关闭Application... - MainThread 2025-11-13 15:00:39,807[src.application] - INFO - 协议通道已关闭 - MainThread 2025-11-13 15:00:39,809[GuiDisplay] - INFO - 应用程序正常关闭 - MainThread
🖥️ 环境信息
`
uname -a
Linux zz-Latitude-5490 6.14.0-32-generic #32-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 29 14:21:26 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=25.04
DISTRIB_CODENAME=plucky
DISTRIB_DESCRIPTION="Ubuntu 25.04"
python -V
Python 3.10.19
conda -V
conda 25.7.0
pip -V
pip 25.3 from /home/zz/miniconda3/envs/py-xiaozhi/lib/python3.10/site-packages/pip (python 3.10)
arecord -l
**** CAPTURE 硬體裝置清單 ****
card 0: PCH [HDA Intel PCH], device 0: ALC3246 Analog [ALC3246 Analog]
子设备: 1/1
子设备 #0: subdevice #0
aplay -l
**** CAPTURE 硬體裝置清單 ****
card 0: PCH [HDA Intel PCH], device 0: ALC3246 Analog [ALC3246 Analog]
子设备: 1/1
子设备 #0: subdevice #0
(py-xiaozhi) zz@zz-Latitude-5490:~/code/python/py-xiaozhi/py-xiaozhi/logs$ aplay -l
**** PLAYBACK 硬體裝置清單 ****
card 0: PCH [HDA Intel PCH], device 0: ALC3246 Analog [ALC3246 Analog]
子设备: 1/1
子设备 #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
子设备: 1/1
子设备 #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
子设备: 1/1
子设备 #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
子设备: 1/1
子设备 #0: subdevice #0
`
📋 其他信息
在启动py程序之前arecord录音,aplay播放正常