xiaozhi-sdk 0.2.1__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of xiaozhi-sdk might be problematic. Click here for more details.

Files changed (36) hide show
  1. {xiaozhi_sdk-0.2.1/xiaozhi_sdk.egg-info → xiaozhi_sdk-0.2.2}/PKG-INFO +1 -1
  2. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/__init__.py +1 -1
  3. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/core.py +24 -9
  4. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2/xiaozhi_sdk.egg-info}/PKG-INFO +1 -1
  5. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/LICENSE +0 -0
  6. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/MANIFEST.in +0 -0
  7. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/README.md +0 -0
  8. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/file/audio/greet.wav +0 -0
  9. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/file/audio/play_music.wav +0 -0
  10. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/file/audio/say_hello.wav +0 -0
  11. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/file/audio/take_photo.wav +0 -0
  12. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/file/image/leijun.jpg +0 -0
  13. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/file/opus/linux-arm64-libopus.so +0 -0
  14. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/file/opus/linux-x64-libopus.so +0 -0
  15. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/file/opus/macos-arm64-libopus.dylib +0 -0
  16. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/file/opus/macos-x64-libopus.dylib +0 -0
  17. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/file/opus/windows-opus.dll +0 -0
  18. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/pyproject.toml +0 -0
  19. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/setup.cfg +0 -0
  20. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/tests/test_iot.py +0 -0
  21. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/tests/test_pic.py +0 -0
  22. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/tests/test_wake_word.py +0 -0
  23. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/tests/test_xiaozhi.py +0 -0
  24. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/__main__.py +0 -0
  25. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/cli.py +0 -0
  26. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/config.py +0 -0
  27. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/iot.py +0 -0
  28. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/mcp.py +0 -0
  29. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/opus.py +0 -0
  30. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/utils/__init__.py +0 -0
  31. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/utils/mcp_tool.py +0 -0
  32. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk/utils/tool_func.py +0 -0
  33. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk.egg-info/SOURCES.txt +0 -0
  34. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk.egg-info/dependency_links.txt +0 -0
  35. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk.egg-info/requires.txt +0 -0
  36. {xiaozhi_sdk-0.2.1 → xiaozhi_sdk-0.2.2}/xiaozhi_sdk.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xiaozhi-sdk
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: 一个用于连接和控制小智智能设备的Python SDK,支持实时音频通信、MCP工具集成和设备管理功能。
5
5
  Author-email: dairoot <623815825@qq.com>
6
6
  License-Expression: MIT
@@ -1,3 +1,3 @@
1
- __version__ = "0.2.1"
1
+ __version__ = "0.2.2"
2
2
 
3
3
  from xiaozhi_sdk.core import XiaoZhiWebsocket # noqa
@@ -139,8 +139,11 @@ class XiaoZhiWebsocket(McpTool):
139
139
 
140
140
  # audio data
141
141
  if isinstance(message, bytes):
142
- pcm_array = await self.audio_opus.opus_to_pcm(message)
143
- self.output_audio_queue.extend(pcm_array)
142
+ try:
143
+ pcm_array = await self.audio_opus.opus_to_pcm(message)
144
+ self.output_audio_queue.extend(pcm_array)
145
+ except Exception as e:
146
+ logger.error("opus_to_pcm error: %s", e)
144
147
  return
145
148
 
146
149
  # json message
@@ -149,29 +152,41 @@ class XiaoZhiWebsocket(McpTool):
149
152
  if message_type == "hello":
150
153
  self.hello_received.set()
151
154
  self.session_id = data["session_id"]
155
+ return
152
156
  elif message_type == "mcp":
153
157
  await self.mcp(data)
154
- elif self.message_handler_callback:
155
- if data["type"] == "tts":
158
+ return
159
+
160
+ # 转发其他 message_type
161
+ if self.message_handler_callback:
162
+ try:
163
+ await self.message_handler_callback(data)
164
+ except Exception as e:
165
+ logger.error("message_handler_callback error: %s", e)
166
+
167
+ if message_type == "tts":
156
168
  if data["state"] == "sentence_start":
157
169
  self.is_playing = True
158
- # self.output_audio_queue.clear()
159
170
  else:
160
171
  self.is_playing = False
161
-
162
- await self.message_handler_callback(data)
172
+ else:
173
+ logger.warning("未定义回调函数 %s", data)
163
174
 
164
175
  async def _message_handler(self) -> None:
165
176
  """消息处理器"""
166
177
  try:
167
178
  async for message in self.websocket:
168
- await self._handle_websocket_message(message)
179
+ try:
180
+ await self._handle_websocket_message(message)
181
+ except Exception as e:
182
+ logger.error("message_handler error: %s", e)
183
+
169
184
  except websockets.ConnectionClosed:
170
185
  if self.message_handler_callback:
171
186
  await self.message_handler_callback(
172
187
  {"type": "websocket", "state": "close", "source": "sdk.message_handler"}
173
188
  )
174
- logger.debug("[websocket] close")
189
+ logger.info("[websocket] close")
175
190
 
176
191
  async def set_mcp_tool(self, mcp_tool_list) -> None:
177
192
  """设置MCP工具"""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xiaozhi-sdk
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: 一个用于连接和控制小智智能设备的Python SDK,支持实时音频通信、MCP工具集成和设备管理功能。
5
5
  Author-email: dairoot <623815825@qq.com>
6
6
  License-Expression: MIT
File without changes
File without changes
File without changes
File without changes
File without changes