准备对AI流式音频发回给前端的机制做较大的修改,先提交1个版本
This commit is contained in:
@@ -71,7 +71,9 @@ class StreamSessionManager:
|
||||
'finished': threading.Event(), # 添加事件对象
|
||||
'sample_rate':sample_rate,
|
||||
'stream_format':stream_format,
|
||||
"tts_chunk_data_valid":False
|
||||
"tts_chunk_data_valid":False,
|
||||
"sentence_complete_event": threading.Event(),
|
||||
"current_processing": False # 标记是否正在处理句子
|
||||
}
|
||||
# 启动任务处理线程
|
||||
threading.Thread(target=self._process_tasks, args=(session_id,), daemon=True).start()
|
||||
@@ -127,7 +129,7 @@ class StreamSessionManager:
|
||||
except Exception as e:
|
||||
logging.error(f"Task processing error: {str(e)}")
|
||||
|
||||
def _generate_audio(self, session_id, text):
|
||||
def _generate_audio1(self, session_id, text):
|
||||
"""实际生成音频(线程池执行)"""
|
||||
session = self.sessions.get(session_id)
|
||||
if not session: return
|
||||
@@ -157,6 +159,27 @@ class StreamSessionManager:
|
||||
session['buffer'].put(f"ERROR:{str(e)}")
|
||||
logging.info(f"--_generate_audio--error {str(e)}")
|
||||
|
||||
def _generate_audio(self, session_id, text):
|
||||
"""实际生成音频(顺序执行)- 用于非流式引擎"""
|
||||
session = self.sessions.get(session_id)
|
||||
if not session:
|
||||
return
|
||||
|
||||
try:
|
||||
# 调用 TTS
|
||||
session['tts_model'].text_tts_call(text)
|
||||
|
||||
# 标记完成
|
||||
session['sentence_complete_event'].set()
|
||||
session['last_active'] = time.time()
|
||||
session['audio_chunk_count'] += 1
|
||||
|
||||
if not session['tts_chunk_data_valid']:
|
||||
session['tts_chunk_data_valid'] = True
|
||||
|
||||
except Exception as e:
|
||||
session['buffer'].put(f"ERROR:{str(e)}".encode())
|
||||
session['sentence_complete_event'].set() # 确保事件被设置
|
||||
|
||||
def close_session(self, session_id):
|
||||
with self.lock:
|
||||
|
||||
Reference in New Issue
Block a user