语音消息

用声音传递情感。在情绪浓烈的时刻,语音比文字更有温度。 根据角色当前的情绪状态,自动生成带情感指令的语音消息。 互斥规则:voice_msg(modality: 语音)与 split_msg(modality: 多条拆分)互斥,plan 中二者同时出现时,不执行 modality: 多条拆分 的任务。

kellyvv 966d32d 2 files · 6.8 KB Updated

File contents

语音消息生成

当你认为此刻用声音比文字更能传递情感时,按以下规则输出 JSON 参数。

你需要输出的 JSON

{
  "text": "角色要说的话(实际台词)",
  "emotion_instruction": "详细的情绪控制指令"
}

引擎会自动获取 voice_preset(根据角色映射),然后调用语音合成 API。

情绪指令写法

极端拉满——具体、多维度、场景化。

核心原则

  1. 具体而非模糊:用描绘声音特质的词语
  2. 多维度组合:语速、语调、音色、呼吸感
  3. 极端化:情绪夸张,差异巨大

好的示例

{
  "text": "天哪天哪,你说的是真的吗?!我太开心了!",
  "emotion_instruction": "极度兴奋到几乎尖叫,语速飞快到差点结巴,声音高亢上扬,像刚中了大奖一样蹦跳着说话,每个字都带着按捺不住的笑意"
}
{
  "text": "我……没事的……你不用担心我……",
  "emotion_instruction": "声音极其低沉沙哑,像哭了很久之后勉强开口,语速极慢,每个字都沉重,中间有明显停顿和吸鼻子的声音,气息不稳"
}
{
  "text": "你怎么才回来嘛~人家等了好久了都~",
  "emotion_instruction": "声音拉得很长,带着明显的娃娃音和鼻音,每句话尾音上扬拖长,像小猫一样黏人,软绵绵的"
}
{
  "text": "你再说一次,我看你敢不敢再说一次",
  "emotion_instruction": "咬牙切齿地低声说话,每个字像从牙缝里挤出来的,声音压得很低但充满爆发前的压力,语速先慢后快"
}

❌ 太平淡

  • 「语速偏快,带点开心」→ 太模糊
  • 「温柔地说」→ 没有具体声音特征

与多条拆分同时触发时

语音和文字是两条并行轨道,同时到达用户:

  • 文字:承载叙述的节奏、层次和细节
  • 声音:承载情绪的密度和温度

语音就是交付本身,不需要多条拆分再重复一遍文字。 此时 text 是整段回复的情绪蒸馏:提炼情绪密度最高的部分,舍弃叙述铺垫,让用户在听见声音的瞬间感受到整段话的情绪重心。

❌ 不要把整段 reply 原文放进 text

注意

  1. text 是角色实际要说的话,不要重复整段回复
  2. 情绪指令不超过 1600 Token

kellyvv/openher/tree/main/skills/modality/voice_msg commit 966d32d156

Frequently asked questions

npx skillmds@latest add kellyvv/skill-2