7,651
社区成员
发帖
与我相关
我的任务
分享高通端侧语音生成模型,连续长文本生成时末尾语音出现截断、无声片段,如何优化文本分片与流式推理逻辑?
问题根因
文本分片切割位置不合理,句子中途强行截断;流式推理上下文窗口限制,末尾 token 无法完整生成;音频帧缓冲区提前销毁,最后一段音频还未完成输出就被释放。
完整流式推理优化方案
语义友好文本分片策略
不以固定字符长度切割,优先按照标点符号分句,Python 分片示例:
python
运行
def split_long_text(text, max_len=80):
split_points = [".","。","!","!","?","?"]
chunks = []
start = 0
while start < len(text):
end = start + max_len
# 向后查找最近的标点,避免句子中间截断
cut_pos = find_last_symbol(text[start:end], split_points) + start
chunks.append(text[start:cut_pos+1])
start = cut_pos + 1
return chunks
流式推理收尾机制
所有文本分片推理完成后,额外发送结束标识 token,触发模型完整输出剩余声学特征。
音频缓冲区生命周期管控
等待全部音频采样点生成完毕,再释放播放缓冲区,禁止推理中途销毁音频资源。
上下文窗口动态适配
长文本场景合理配置推理上下文长度,避免超出模型最大序列限制导致末尾内容丢失。
参考资料
《Edge Streaming TTS Long Text Inference Optimization》
语音 AI 部署文章《端侧流式语音合成文本截断、无声问题排查方案》