7,645
社区成员
发帖
与我相关
我的任务
分享高通端侧语音生成模型批量合成多条语音,多条任务并行时出现音频输出错乱、语句穿插,如何管控任务队列?
多线程并行调用音频输出接口,共享同一声卡播放缓冲区,不同任务音频帧交叉写入,最终播放内容混乱。
单任务串行队列,加互斥锁隔离音频输出通道(Python 示例)
import threading
task_queue = queue.Queue()
audio_lock = threading.Lock()
def audio_worker():
while True:
text = task_queue.get()
audio_data = tts_model.generate(text)
with audio_lock: # 加锁,同一时间仅一段音频输出
play_audio(audio_data)
task_queue.task_done()
每条生成任务分配独立内存缓存,全部推理完成后再进入播放队列;
增加任务状态标记,未完成推理的音频禁止写入播放缓冲区;
限制批量并发数量,同一时间仅允许 1 条语音生成任务占用 NPU。