如果您希望在ElevenLabs中为剧本创作生成自然、角色分明的多角色对话音频,则需明确配置不同语音ID与对应文本段落,并启用对话模式。以下是实现该目标的具体流程:
一、启用Dialogue Mode并选择支持多角色的API版本
ElevenLabs v3 Alpha API原生支持多角色对话场景,必须使用该版本才能启用完整对话模式。v2.5及更早版本不支持角色自动切换与上下文情感连贯性处理。
1、登录ElevenLabs开发者控制台,进入API Keys页面;
2、确认已启用v3 Alpha权限,若未显示,请提交访问申请并等待审核通过;
3、在代码调用中显式指定model_id为eleven_multilingual_v3或eleven_turbo_v3;
4、设置请求头中包含Content-Type: application/json与有效API密钥。
二、结构化编写带角色标签的剧本文本
对话文本必须按严格格式组织,每个角色发言前须以[角色名]开头,且同一角色名需全程一致,系统据此绑定预设语音ID。
1、打开Voice Lab,为每位角色创建独立声音:上传1分钟干净语音→命名(如“林薇_记者”“陈哲_刑警”)→保存获取唯一voice_id;
2、在脚本编辑区按行书写,每行仅含一个角色发言,格式为:[林薇_记者]您当时是否看见嫌疑人进入车库?;
3、避免跨行合并语句,禁止在括号内使用空格或特殊符号(如“林薇 - 记者”将导致匹配失败);
4、可在句末添加音频标签控制语气,例如[林薇_记者]这不可能!{emotion: urgent}。
三、通过API批量提交角色-语音映射关系
需在请求体中显式声明每个角色名到voice_id的映射,系统据此为每段文本分配对应声线,而非全局统一语音。
1、构造JSON payload,包含text字段(完整剧本字符串)与voice_settings字段;
2、在voice_settings内嵌入role_voice_map对象,键为角色名(如"林薇_记者"),值为对应voice_id(如"9aBcDeFgHiJkLmNoPqRsTuVwXyZ123");