功能请求: 固定广播的确定性原文发言模式

作者: JPMulder创建于 2026年8月22日更新于 2026年8月22日

PersonaPlex 在开放式对话方面表现出色,但无法让它说出一句精确的语句。对于电话部署来说,这实际上是一个严重的障碍,因为某些线路根据法律要求必须字字相符:电话记录通知、同意免责声明、紧急重定向。对于这些情况,翻译是不可接受的。 我尝试通过提示来绕过这个问题,并想分享结果,因为它们可能会有用。 方法:将 text_prompt 设置为指示一个确切的目标句子,然后捕获新会话的开头行,通过不断地提供静音 PCM 帧来驱动生成。 目标:感谢您拨打 <BUSINESS>。 我们的所有线路目前都很忙。 在 A100 80GB 上,尝试了以下 2 种策略,每种策略进行 2 次运行: 1. 直接指令:"您说的唯一一句话必须完全是这个句子,字字相符" 2. 情境框架:"您是录音的溢出通知。您不是对话。" 3. 情境框架, text_temperature 为 0.1, audio_temperature 为 0.3 4. 全部人格提示加上附加的情境 5. 对话框架:显示模型之前以该确切行作出的回复的转录 6. 身份框架:"您曾经说过的唯一一句话是..." 结果: 12 次运行中,只有 0 次运行生成了目标。 每次运行都返回了通用问候,例如 Hello, thank you for calling <BUSINESS>. How can I assist you today?。最接近的结果是 Hello, thank you for calling <BUSINESS>. Thank you for waiting。, 它捕捉到了等待,但从未说明原因。 以下两个观察可能有助于缩小范围: 替换可以工作,指令不能。在提示中放置的商业名称可可靠地重现(12 次运行中,11 次运行)。没有名称,模型会发明一个("XYZ 公司","账户保持线")。因此,提示内容确实传达到了输出,但仅作为模型自身问候模板中的一个插槽。 温度不是原因。 text_temperature 为 0.1 的行为与 0.5 相同,因此这看起来更像是一个强大的先验而不是采样方差。 以下哪些解决方案可以解决此问题,大致按照优先级排序: 1. 一个参数,例如 say_verbatim="<sentence>" 可以强制第一个语音,然后停止或将控制权交给正常对话。 2. 一个一次性 TTS 端点,可使用相同的语音提示渲染任意文本,因此固定的通知和现场代理的声音是同一位发言者。 3. 记录指南,说明是否可以实现精确输出,以便实现者停止尝试。即使明确的"不支持,请使用单独的 TTS"也可以节省时间。 在实际中,第 2 点最为重要:为通话记录混合单独的 TTS 引擎意味着呼叫者听到用于录音的线路的一个声音,而对话则使用另一个声音。

内容来源: NVIDIA/personaplex