diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index 98cf5c5c..32819159 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -66,7 +66,7 @@ class ConnectionHandler: self.intent = _intent # vad相关变量 - self.client_audio_buffer = bytes() + self.client_audio_buffer = bytearray() self.client_have_voice = False self.client_have_voice_last_time = 0.0 self.client_no_voice_last_time = 0.0 @@ -616,7 +616,7 @@ class ConnectionHandler: # q.queue.put(None) def reset_vad_states(self): - self.client_audio_buffer = bytes() + self.client_audio_buffer = bytearray() self.client_have_voice = False self.client_have_voice_last_time = 0 self.client_voice_stop = False diff --git a/main/xiaozhi-server/core/utils/vad.py b/main/xiaozhi-server/core/utils/vad.py index ef782281..2079b354 100644 --- a/main/xiaozhi-server/core/utils/vad.py +++ b/main/xiaozhi-server/core/utils/vad.py @@ -31,7 +31,7 @@ class SileroVAD(VAD): def is_vad(self, conn, opus_packet): try: pcm_frame = self.decoder.decode(opus_packet, 960) - conn.client_audio_buffer += pcm_frame # 将新数据加入缓冲区 + conn.client_audio_buffer.extend(pcm_frame) # 将新数据加入缓冲区 # 处理缓冲区中的完整帧(每次处理512采样点) client_have_voice = False