Skip to content

技能库 - 音色切换

「音色切换」是一项开箱即用的系统技能,允许用户在对话中通过自然语言更换设备的对话音色。启用方式详见 技能配置

1. 触发条件

用户明确表达「换 / 改 / 切换 / 用 XX 音色说」等意图时触发,例如:

  • 「换个女声说话」
  • 「用东北大叔的声音跟我聊」
  • 「切换到小猪佩奇的声音」

2. 支持的切换方式

切换方式用户表达示例
按性别「换成女声 / 男声」
按年龄「换个小孩 / 老人的声音」
按风格「温柔一点 / 活泼一点的声音」
按方言「用东北话 / 四川话说」
按具体音色名「用小美的声音」
按克隆音色「用我妈妈的声音说」(需先上传克隆音色)

3. 音色来源

  • 系统音色:平台预置的通用音色(多性别、多年龄、多方言、多风格)。
  • 克隆音色:应用下已上传并审核通过的自定义克隆音色。

4. 与音色优先级的关系

平台的音色优先级为:

切换音色技能  >  设备音色  >  人设音色  >  应用音色

一旦「音色切换技能」被触发,其结果直接更改设备音色(不改角色音色)。完整优先级与生效机制见 全局人设与音色 - 音色优先级

5. 生效范围与建联行为 ⚠

「音色切换技能生效时是本次建联还是下次建联」是最高频的疑问,规则如下:

5.1 本轮(当前 WebSocket 会话)

  • 切换请求命中后,当前会话内立即持续生效
  • 同步更改「设备音色」记录,即:切换后的音色 = 新的设备音色。

5.2 下次建联

设备下次建联时最终使用哪种音色,取决于端侧是否上行 role_code

下次建联行为是否上行 role_code最终使用的音色
A上行 role_code对应角色的人设音色(切换效果被角色音色覆盖)
B不上行 role_code上次切换后的设备音色继续生效

5.3 与四种典型场景对齐(引自 全局人设与音色

场景是否传 role_code是否用切换技能本轮音色下次建联音色
1角色音色 BB(若仍传 role_code)
2是(切到 C)C(设备音色被改成 C)传 role_code → B;不传 → C
3不传设备音色 AA
4不传是(切到 C)CC

⚠ 结论:切换技能只改设备音色,不改角色音色。若应用长期依赖 role_code 下发角色音色,切换效果只在当前会话有效,下次建联会被角色音色覆盖。

6. 使用场景

  • 儿童陪伴类:家长通过语音临时把音色换成「妈妈的克隆音色」讲故事。
  • 多角色应用:用户在闲聊中主动尝试不同角色音色,无需回到 App 设置。
  • 无障碍场景:用户依据听感偏好动态切换语速、音高相近但音色更合适的音色。

7. 常见问题

  • Q:切换后重启设备会不会丢失? A:不会。切换后的音色写入设备音色,重启建联时如不上行 role_code,仍使用切换后的音色。
  • Q:能不能切到未克隆的自定义音色? A:不能。可选范围 = 系统音色 + 当前应用下已审核通过的克隆音色。
  • Q:切换技能能不能改角色音色? A:不能。角色音色由端侧 role_code 决定,需在角色配置中修改。

8. 端侧协议引用 🔌

「本轮生效 / 下次建联覆盖」的核心边界由端侧建连时是否上行 chat.roleCode 参数决定,实现端需按技术手册严格实现:

📌 关键提醒:若应用长期依赖 chat.roleCode 下发角色音色,「音色切换技能」的效果只在当前 WS 会话有效,下次建联会被角色音色覆盖(见 §5.2 表格 A 行)。