角色配音怎么做 —— 用 AI 给你的游戏角色"开口说话"

05/0951 浏览开发心得
你的游戏里有一个勇敢的骑士、一个神秘的法师、一个呆萌的吉祥物。
他们有名字、有立绘、有动作——但就是不会"说话"。
对话框里只有一行行文字,玩家读完就过了,没有声音,没有情感,角色就像一个纸片人。
好消息:嗒啦啦可以用 AI 帮你的角色生成专属声音。你只需要描述角色是什么样的人,AI 就能"造"出一个独一无二的声音,然后用这个声音念出你写的每一句台词。
不需要录音棚,不需要配音演员,不需要任何音频编辑技能。
这篇帖子从零开始,教你完整的角色配音流程:设计声音 → 试听选声 → 生成台词 → 在游戏里播放。
难度:零基础可上手
————————————————

第一章:角色配音的完整流程

先看全貌。给一个角色配音分四步:
第一步:描述角色声音
告诉 AI 这个角色是什么样的人——性别、年龄、声线、说话风格。
第二步:试听候选声音
AI 会根据你的描述生成 1-3 个候选声音,你听听选一个最合适的。
第三步:确认声音
选定之后,这个声音就绑定到这个角色了。以后所有台词都用这个声音来念。
第四步:生成台词音频
写好台词文本,AI 用绑定的声音生成语音文件,放到游戏里播放。
整个过程跟嗒啦啦说几句话就能搞定。下面一步一步教你怎么说。
————————————————

第二章:描述角色声音的"六维度法"

AI 声音生成的质量,90% 取决于你怎么描述这个角色的声音。描述越精准,生成的声音越贴合。
一个好的声音描述要包含六个维度:
【维度 1:年龄和性别】
这是最基础的信息。
年轻男性,20 岁左右
中年女性,40 岁左右
年迈的老者,70 多岁
【维度 2:音色和质感】
声音"听起来"的感觉。
温暖的、磁性的、沙哑的、清脆的、低沉的、尖锐的、空灵的、浑厚的
【维度 3:说话节奏】
说话快不快,停顿多不多。
语速快、连珠炮式
慢条斯理、带着停顿
节奏平稳、不紧不慢
【维度 4:情感和气质】
角色的性格通过声音传达出来。
活泼开朗、冷淡疏离、自信从容、温柔体贴、神秘莫测、热血激昂
【维度 5:风格参考】
什么类型的声音风格。
动漫风格、电影预告片风格、新闻主播风格、专业配音演员风格
【维度 6:录音质量】
这个每次都要加,告诉 AI 你要专业级的声音。
录音棚级别的音质
六个维度组合起来,就是一段完整的声音描述。
————————————————

第三章:五种常见角色的声音描述模板

不知道怎么描述?直接用这些模板,改几个关键词就行。
【类型 A:温柔男主 / 暖男】
跟嗒啦啦说:
「给我的角色"林风"设计声音。他是一个 20 多岁的年轻男性,声音温暖有磁性,说话语速适中,性格温柔自信,有点像动漫里的王子型角色,要求录音棚级别的音质。」
适合角色:男主角、骑士、护卫、暖心队友
【类型 B:萌系吉祥物 / 精灵】
跟嗒啦啦说:
「给我的角色"小星星"设计声音。她是一个高音调的女性声音,动漫风格的精灵角色,活泼开朗、语速偏快、充满能量,像一个可爱的小妖精在说话,要求录音棚级别的音质。」
适合角色:宠物、精灵、吉祥物、向导 NPC
注意:AI 禁止生成儿童声音。如果你想要可爱的角色声音,用"高音调女性、精灵角色、动漫风格"来替代,不要用"小女孩"、"儿童"这类描述。
【类型 C:冷酷女王 / 高冷御姐】
跟嗒啦啦说:
「给我的角色"冰霜女王"设计声音。她是一个 20 多岁的年轻女性,声音低沉冷淡,说话慢条斯理、不带多余情感,气质高傲威严,像一个掌控全局的女王,要求录音棚级别的音质。」
适合角色:Boss、反派女王、冷面导师、神秘NPC
【类型 D:智慧老者 / 导师】
跟嗒啦啦说:
「给我的角色"长老"设计声音。他是一个 70 多岁的老年男性,声音低沉沙哑,说话很慢,会带着戏剧性的停顿,语气神秘而平静,有一种讲故事的老人的感觉,要求录音棚级别的音质。」
适合角色:导师、长老、旁白、传说中的人物
【类型 E:热血少年 / 冒险者】
跟嗒啦啦说:
「给我的角色"阿焰"设计声音。他是一个年轻男性,声音充满能量和激情,语速偏快,带一点因为兴奋而微微喘气的感觉,性格热血冲动、永不放弃,像动漫里的男主角,要求录音棚级别的音质。」
适合角色:男主角、冒险者、竞技选手
————————————————

第四章:试听和选声

声音描述发给嗒啦啦之后,AI 会生成 1 到 3 个候选声音,每个声音都会用一段试音台词来展示效果。
【试音台词的重要性】
试音台词的质量直接影响生成的声音效果。好的试音台词要满足两个条件:
第一,长度足够。至少 100 个字,太短的话 AI 很难展示声音的全部特征。
第二,风格匹配。试音台词的情感要和角色描述一致。如果你描述的是"温柔平静"的角色,试音台词就不要用激动的台词;如果你描述的是"热血激昂"的角色,试音台词就要用充满激情的内容。
嗒啦啦通常会自动选择合适的试音台词,但你也可以自己指定。
【怎么选】
听完候选声音后,跟嗒啦啦说:
「我选第 2 个声音。」
或者如果你觉得都不太合适:
「这三个都不太满意,帮我重新生成,声音再低沉一点、语速再慢一点。」
【选定后会发生什么】
你确认选择后,这个声音就永久绑定到这个角色名了。以后你只要说"用林风的声音念这段台词",AI 就会自动用你选定的声音来生成。
注意:确认选择会占用一个"声音槽位"。免费版有 3 个槽位,意思是你最多可以给 3 个不同角色配音。所以不要随便确认,选好了再说"确定"。
————————————————

第五章:生成角色台词

声音选好了,接下来就是让角色"念台词"。
【基本用法】
跟嗒啦啦说:
「用"林风"的声音生成这段台词:
"大家别担心,不管前方有多少困难,我都会陪着你们走到最后。"」
AI 会用绑定的声音念出这段话,生成音频文件保存到项目里。
【批量生成多句台词】
跟嗒啦啦说:
「帮我生成以下角色台词:
林风:
"大家别担心,不管前方有多少困难,我都会陪着你们走到最后。"
冰霜女王:
"你以为你能逃得出我的领地?太天真了。"
小星星:
"哇!快看快看!那边有个好大的宝箱!我们去打开看看吧!"」
AI 会依次用每个角色绑定的声音来生成对应台词。
【同一角色生成多段不同情绪的台词】
跟嗒啦啦说:
「用"林风"的声音分别生成以下三句台词:
1. 平静地说:"天亮了,我们出发吧。"
2. 激动地喊:"不可能!我不会让你伤害他们的!"
3. 悲伤地低语:"对不起……我没能保护好你。"」
————————————————

第六章:用情感标签让台词更有表现力

直接念台词是"平读",加上情感标签能让声音有喜怒哀乐。
【可以使用的情感标签】
在台词文本中插入英文方括号标签,AI 会据此调整语气:
[laughing] 或 [chuckling] —— 笑着说
[sad] 或 [crying] —— 悲伤或哭泣
[excited] 或 [enthusiastic] —— 兴奋激动
[angry] 或 [furious] —— 愤怒
[nervous] 或 [anxious] —— 紧张
[curious] 或 [wondering] —— 好奇
[sarcastic] 或 [ironic] —— 讽刺
[whispering] 或 [softly] —— 低语、轻声
[shouting] 或 [yelling] —— 大喊
【动作标签】
[sighs] —— 叹气
[gasps] —— 倒吸气
[clears throat] —— 清嗓子
[pause] —— 停顿
【用在台词里】
跟嗒啦啦说:
「用"林风"的声音生成这段台词:
"[sighs] 唉,真是累了…… [softly] 不过,一切都会好起来的。"」
再比如:
「用"小星星"的声音生成这段台词:
"[excited] 哇!你找到了!太厉害了! [laughing] 我就知道你可以的!"」
再比如:
「用"冰霜女王"的声音生成这段台词:
"[pause] 你确定要这么做吗? [softly] 最后一次机会。"」
【用标点符号控制节奏】
除了标签,标点符号也能影响语气:
省略号(……)—— 制造停顿,表示犹豫或思考
破折号(——)—— 语气转折或中断
感叹号(!)—— 强调语气
问号(?)—— 疑问语调上扬
逗号(,)—— 短暂停顿
句号(。)—— 正常停顿
例如:
"等等…… 你说什么?!这——这不可能!"
这句话会自然地表现出先犹豫、再惊讶、再难以置信的情绪变化。
【稳定性参数】
如果你想控制声音的情绪波动幅度,可以跟嗒啦啦说:
「用"林风"的声音生成台词,情感波动大一些。」
嗒啦啦会把稳定性调低(0.3-0.5),声音会更有戏剧性。
「用"长老"的声音生成台词,语气更平稳一些。」
嗒啦啦会把稳定性调高(0.7-1.0),声音会更沉稳一致。
简单记:
稳定性低 → 情感起伏大,适合激烈戏剧场景
稳定性中 → 平衡自然,适合日常对话
稳定性高 → 语调稳定,适合旁白、正式场合
————————————————

第七章:台词写作的技巧

台词写得好不好,直接影响配音的效果。
【技巧 1:用口语,不用书面语】
书面语:「我认为此刻我们应当立即采取行动。」
口语化:「我觉得我们现在就得动手!」
AI 念口语更自然,书面语会显得生硬。
【技巧 2:加语气词】
适当加一些"嗯"、"啊"、"呢"、"吧"、"呀"这类语气词,让说话更像真人。
生硬:「我们走。」
自然:「嗯,走吧。」
生硬:「这个东西很厉害。」
自然:「这个东西好厉害啊!」
【技巧 3:长句子用逗号断开】
过长的句子AI念起来会一口气说完,听起来喘不过气。用逗号分开,控制呼吸节奏。
不好:「前方的道路充满了危险但我们必须要前进因为身后的人都在等着我们的好消息。」
好的:「前方的路很危险,但我们必须往前走,因为身后的人,都在等着我们的好消息。」
【技巧 4:情感标签和台词风格要一致】
如果角色描述是"冷淡高傲",台词就不要写得太热情;如果角色是"活泼开朗",台词就不要太压抑。声音和台词风格不统一,效果会很奇怪。
正确搭配:冷酷角色 + "[pause] 知道了。"
错误搭配:冷酷角色 + "[excited] 哇太棒了!好开心!"
【技巧 5:关键台词多生成几版】
游戏里最重要的几句台词(开场白、Boss 对话、结局),可以让嗒啦啦多生成几遍,挑最好的那一版:
「用"林风"的声音重新生成这句台词,语气再坚定一些。」
————————————————

第八章:在游戏里播放角色语音

音频文件生成好了,怎么在游戏里播放呢?
【基本播放方式】
和播放音效一样,用 SoundSource 组件:
  local voiceNode = scene_:CreateChild("Voice")
  local source = voiceNode:CreateComponent("SoundSource")
  source.soundType = SOUND_VOICE
  source.gain = 1.0
  source.autoRemoveMode = REMOVE_NODE
  local sound = cache:GetResource("Sound", "Sounds/voice_linfeng_01.ogg")
  source:Play(sound)
注意 soundType 要设成 SOUND_VOICE,这样玩家可以单独调节语音音量。
【配合对话框显示文字】
通常角色说话时,画面上要同时显示对话文字。播放语音和显示文字同时进行:
  function ShowDialogue(characterName, text, voiceFile)
      -- 显示对话 UI
      dialogueLabel.text = characterName .. ":" .. text
      -- 同时播放语音
      local voiceNode = scene_:CreateChild("Voice")
      local source = voiceNode:CreateComponent("SoundSource")
      source.soundType = SOUND_VOICE
      source.autoRemoveMode = REMOVE_NODE
      local sound = cache:GetResource("Sound", voiceFile)
      source:Play(sound)
  end
  -- 使用
  ShowDialogue("林风", "大家别担心,我会一直在这里。", "Sounds/voice_linfeng_01.ogg")
【3D 对话 —— NPC 在场景中说话】
如果 NPC 在 3D 世界里有位置,可以用 SoundSource3D 让声音有方向感:
  function NPCSpeak(npcNode, voiceFile)
      local source = npcNode:CreateComponent("SoundSource3D")
      source.soundType = SOUND_VOICE
      source.nearDistance = 2.0
      source.farDistance = 10.0
      source.autoRemoveMode = REMOVE_COMPONENT
      local sound = cache:GetResource("Sound", voiceFile)
      source:Play(sound)
  end
玩家走近 NPC 才能听清对话,走远了声音就变小了,特别有沉浸感。
注意这里用 REMOVE_COMPONENT 而不是 REMOVE_NODE,因为 NPC 节点要保留,只需要播放完后移除声音组件。
【播放时降低 BGM 音量】
角色说话时,BGM 应该自动变小,说完再恢复,这叫"闪避"(Ducking)效果:
  function StartDialogueVoice()
      -- 降低 BGM 音量
      audio:SetMasterGain(SOUND_MUSIC, 0.2)
  end
  function EndDialogueVoice()
      -- 恢复 BGM 音量
      audio:SetMasterGain(SOUND_MUSIC, 0.6)
  end
可以在语音开始播放时调低 BGM,播放完成后恢复。这样玩家能清楚听到对话内容。
————————————————

第九章:多角色对话场景的管理

RPG、视觉小说这类游戏经常有多个角色连续对话的场景。
【对话队列系统】
把所有台词按顺序放进一个队列,依次播放:
  local dialogueQueue = {
      { name = "林风", text = "大家准备好了吗?", voice = "Sounds/voice_linfeng_01.ogg" },
      { name = "小星星", text = "准备好了!出发吧!", voice = "Sounds/voice_xiaoxing_01.ogg" },
      { name = "冰霜女王", text = "哼,别拖后腿。", voice = "Sounds/voice_queen_01.ogg" },
  }
  local currentIndex = 1
  function PlayNextDialogue()
      if currentIndex > #dialogueQueue then
          -- 对话结束
          EndDialogueVoice()
          return
      end
      local line = dialogueQueue[currentIndex]
      ShowDialogue(line.name, line.text, line.voice)
      currentIndex = currentIndex + 1
  end
玩家点击屏幕或按下确认键时调用 PlayNextDialogue() 播放下一句。
【注意:上一句没播完就播下一句】
如果玩家快速点击跳过,需要先停掉上一句正在播的语音:
  local currentVoiceSource = nil
  function ShowDialogue(characterName, text, voiceFile)
      -- 停掉上一句
      if currentVoiceSource then
          currentVoiceSource:Stop()
      end
      dialogueLabel.text = characterName .. ":" .. text
      local voiceNode = scene_:CreateChild("Voice")
      local source = voiceNode:CreateComponent("SoundSource")
      source.soundType = SOUND_VOICE
      source.autoRemoveMode = REMOVE_NODE
      local sound = cache:GetResource("Sound", voiceFile)
      source:Play(sound)
      currentVoiceSource = source
  end
————————————————

第十章:配音的命名和管理规范

当你的游戏角色多了、台词多了,音频文件管理就变得很重要。
【文件命名建议】
用统一格式命名,方便查找和管理:
  voice_角色名_编号.ogg
比如:
  voice_linfeng_01.ogg      -- 林风第 1 句
  voice_linfeng_02.ogg      -- 林风第 2 句
  voice_queen_01.ogg        -- 冰霜女王第 1 句
  voice_xiaoxing_01.ogg     -- 小星星第 1 句
【目录结构建议】
如果台词很多,可以按角色分目录:
  assets/Sounds/
      BGM/
          bgm_main.ogg
          bgm_battle.ogg
      SFX/
          jump.ogg
          coin.ogg
      Voice/
          LinFeng/
              voice_linfeng_01.ogg
              voice_linfeng_02.ogg
          Queen/
              voice_queen_01.ogg
          XiaoXing/
              voice_xiaoxing_01.ogg
代码里加载路径相应调整:
  cache:GetResource("Sound", "Sounds/Voice/LinFeng/voice_linfeng_01.ogg")
【台词管理表】
建议在项目里维护一张台词表,记录每句台词对应的音频文件。可以是一个 Lua 表:
  local VOICE_LINES = {
      linfeng = {
          intro = { text = "大家准备好了吗?", file = "Sounds/Voice/LinFeng/voice_linfeng_01.ogg" },
          battle = { text = "我来保护你们!", file = "Sounds/Voice/LinFeng/voice_linfeng_02.ogg" },
          victory = { text = "太好了,我们赢了!", file = "Sounds/Voice/LinFeng/voice_linfeng_03.ogg" },
      },
      queen = {
          intro = { text = "别挡我的路。", file = "Sounds/Voice/Queen/voice_queen_01.ogg" },
          anger = { text = "你在考验我的耐心。", file = "Sounds/Voice/Queen/voice_queen_02.ogg" },
      },
  }
用的时候:
  local line = VOICE_LINES.linfeng.intro
  ShowDialogue("林风", line.text, line.file)
这样增删台词方便,代码也更整洁。
————————————————

常见坑

坑 1:声音描述写了"小孩"或"儿童",AI 拒绝生成
AI 服务商(ElevenLabs)出于安全政策,禁止生成儿童声音。如果你的角色是小孩、萝莉、幼年角色,用"高音调女性、精灵角色、动漫风格"来替代。不要写"小女孩"、"10岁男孩"、"儿童声音"这类描述。
坑 2:试听的声音挺好,确认保存后感觉不一样了
有些口音特征(比如特定方言感觉)在试听时明显,保存后可能会减弱。如果口音对角色很重要,保存后先用实际台词测试一下效果,不满意可以重新设计。
坑 3:忘了先设计声音就直接生成台词
生成台词前必须先走"设计声音 → 试听 → 确认"这个流程。没有绑定声音就让嗒啦啦生成台词,嗒啦啦会提示你先去设计声音。
坑 4:声音槽位用完了
每次"确认声音"会占用一个槽位,免费版只有 3 个。如果你需要给更多角色配音,可能需要升级服务。在确认之前想好哪些角色最需要配音。
坑 5:台词太短,效果不好
太短的台词(比如只有两三个字"好的"、"走吧")AI 很难表现出情感特征。可以把短台词写长一点,或者短台词用音效代替(比如一个短促的应答声)。
坑 6:所有台词都用一样的语气
一个角色应该有不同情绪的台词。如果所有台词都是平平的语气,角色就失去了立体感。善用情感标签,同一个角色的不同场景用不同的情绪。
普通对话 → 不加标签,自然平读
战斗台词 → [shouting] 或 [excited]
受伤台词 → [sad] 或加上 [gasps]
日常闲聊 → [chuckling] 或语气词多一些
坑 7:语音和 BGM 同时大声播放,听不清对话
角色说话时一定要降低 BGM 音量。参考第八章的 BGM 闪避做法。
坑 8:3D 场景里 NPC 说话但听不到
和 3D 音效一样的问题——检查摄像机上有没有 SoundListener 组件。没有"耳朵",3D 语音就不会发声。另外检查 nearDistance 和 farDistance,如果 farDistance 太小,稍微走远一点就听不到了。
————————————————

提示词·直接复制给嗒啦啦

【模板 1:给角色设计声音】
「帮我给角色"(角色名)"设计声音。
角色设定:(性别)、(年龄)左右
声音特征:(音色描述,比如温暖磁性、冷淡低沉、活泼高亢)
说话风格:(语速和节奏描述)
性格气质:(角色性格特征)
风格参考:(动漫风、写实风等)
请生成 3 个候选声音让我听。」
【模板 2:确认选择声音】
「我选第 X 个声音,确认绑定给"(角色名)"。」
【模板 3:生成单句台词】
「用"(角色名)"的声音生成这段台词:
"(台词内容)"」
【模板 4:批量生成台词】
「帮我批量生成以下角色台词:
(角色名 A):
"(台词 1)"
"(台词 2)"
(角色名 B):
"(台词 3)"
"(台词 4)"」
【模板 5:带情感标签的台词】
「用"(角色名)"的声音生成以下台词,注意情感变化:
"[sighs] (叹气部分台词)…… [softly] (轻声部分台词)。"」
【模板 6:重新生成不满意的台词】
「用"(角色名)"的声音重新生成这句台词,(调整要求,比如:语气再坚定一些 / 情感波动大一些 / 说话再慢一点):
"(台词内容)"」
【模板 7:给对话场景一次性生成所有语音】
「我的游戏有一段对话场景,帮我按顺序生成所有语音:
第 1 句 - 林风:"大家准备好了吗?"
第 2 句 - 小星星:"准备好了!出发吧!"
第 3 句 - 冰霜女王:"哼,别拖后腿。"
第 4 句 - 林风:"好,出发!"
然后帮我写一个对话播放系统,点击屏幕播放下一句。」
【模板 8:给已有游戏角色加配音】
「帮我检查游戏代码里有哪些角色对话(对话框文字),然后:
1. 列出所有需要配音的角色
2. 根据角色设定帮我设计声音
3. 生成所有对话台词的语音
4. 在代码里播放语音并同时显示文字」
————————————————

总结

角色配音的核心流程就四步:描述声音 → 试听选声 → 写好台词 → 播放语音。
声音描述的质量是关键。记住六个维度:年龄性别、音色质感、说话节奏、情感气质、风格参考、录音质量。描述越具体,AI 生成的声音越贴合你的角色。
台词里善用情感标签([laughing]、[sad]、[whispering] 等)和标点符号(省略号、破折号、感叹号),让角色的声音有情感起伏,不是一成不变的平读。
代码层面最重要的三件事:soundType 设成 SOUND_VOICE 方便独立调音量、说话时降低 BGM 音量让对话听得清、快速跳过对话时先停掉上一句再播下一句。
不需要一开始就给所有角色配音。先给最核心的 1-2 个主角配音,体验一下效果,再决定要不要给更多角色加。
试试看,角色一旦有了声音,整个游戏的代入感会完全不一样。
5
3
6