
这次我们来看一个同人舞台剧方向的音频制作工程DEMONS / 雷安异舞pa背景采用 VIVINOS 老师的异形舞台世界观。项目要做的事情简单说就是把目标角色的对白做成带有舞台演绎感的配音成品最终听感要接近“舞台剧版片段”而不是干巴巴的 AI 朗读。很多同学一看到“同人配音”就以为全靠嗓子和录音棚其实在本地做一条可控的多角色配音链路同样需要音频选型、脚本拆分、音色匹配、批量生成和后期混音这些技术环节。这篇文章会把整套流程拆开讲清楚每个环节怎么设计、怎么验证、有哪些坑以及声音素材的授权和边界问题。先给结论这类项目不需要很高的硬件门槛重点是流程设计和素材管理。一台普通 Windows/Mac 电脑8GB 以上内存能跑通开源 TTS 或变声工具即可如果走纯 CPU 推理速度会慢一些但基础配音测试足够。真正决定成品上限的是前期的角色音色设定、对白文本拆条和后期混音处理。下面按“目标拆解 - 工具选型 - 环境准备 - 声线设计与模型调整 - 批量生成 - 混音导出”的顺序来写整套流程看完可以直接迁到自己的同人配音制作里。1. 核心能力速览能力项说明项目类型同人舞台剧向的多角色配音与声音后期制作工程核心目标基于 VIVINOS 异形舞台世界观产出 DEMONS / 雷安异舞pa 风格的对白配音片段主要流程角色声线设定 - 脚本拆解 - 语音生成/变声调整 - 后期混音 - 导出版本硬件需求普通 PC 可跑纯 CPU 能完成基础 TTS 测试有 NVIDIA GPU 可明显缩短推理等待时间显存占用与所选 TTS 或变声模型强相关需按实际模型版本测试确认启动方式脚本启动 / 本地服务启动 / DAW 工程手工处理是否支持 API多数本地 TTS / 变声工具提供 HTTP API可按需封装调用是否支持批量任务支持文本拆条后可批量推理配合队列脚本自动输出适合人群同人声音创作、有声内容制作、播音配音练习、短视频短剧配音这里要特别说明本文不预设某一个“配音软件”是唯一方案。市面上的“配音软件声线”更多指的是软件内调节角色声音质感的能力而不是某个固定插件。更稳的做法是把角色声线拆成基础语调、年龄感、气声比例、语速和情绪五个维度再用具体工具分别逼近目标听感。2. 适用场景与使用边界“DEMONS/雷安异舞pa”本质是二次元同人二创。它的应用场景包括个人练习配音、非商用同人舞台剧音频企划、角色声线研究、语音合成工具调参测试、短剧对白预演等。这类场景的特点是多角色、情感浓度高、台词节奏强、部分内容需要舞台化留白。不适合什么场景呢不适合作为广告、商业配音、付费课程宣传语等直接商用不适合在没有获得原作和世界观作者授权的情况下把整套舞台剧音频打包销售或作为收费项目主体。同人创作本身有一定空间但以盈利为主要目的时必须重新确认版权边界尤其是 VIVINOS 老师的异形舞台世界观设定属于同人衍生角色的声音形象也可能有具体指向处理时更需要谨慎。声音边界上必须明确一点不要用真实存在的其他人尤其是非授权路人、同事、公众人物的语音素材训练音色并发布。即使是同人角色用声优老师的原声做样本训练变声器也可能触及表演者权和声音权益操作前需要确认是否在合理讨论范围内。稳妥做法是自己录制参考音、使用已开放的公开语言技术模型或者请配音者本人授权后参与。音频版权方面背景音乐、音效和舞台氛围声需要有授权或使用可商用免版权素材不能直接从动画、游戏音频里粗暴抽出来避免在发布时产生音频版权问题。3. 前期准备把“舞台剧配音”拆成可执行步骤任何一个看起来“玄幻”的项目落地前都要拆单元。异形舞台世界观的配音不是“正常念台词”它可能包含气声、低语、角色转换、压迫感、喘息等舞台表现元素所以第一步不是打开录音软件而是建立项目文件夹。建议按这样组织目录demons_dub/ ├── docs/ │ ├── script.md # 剧本拆分与录制批次 │ └── voice_design.md # 角色声线与情绪标记 ├── character/ │ ├── character_A/ │ │ ├── reference.wav # 参考音样本 │ │ └── note.md │ └── character_B/ ├── tts_output/ │ ├── scene_01/ │ └── scene_02/ ├── mix/ │ └── scenes/ └── final/ └── v1/这份目录解决三个问题第一角色音色素材统一放在character下训练变声或拷贝语音时不会乱第二tts_output保存每次生成的原始音频后续混音不用反复重新跑模型第三docs里放文本稿和声线标注团队协作或个人复现都能看懂哪句台词属于哪个角色、哪一段应该用什么情绪。脚本拆条是配音项目里最容易被低估的环节。不要直接把整段舞台剧文本丢给 TTS而是必须先拆成“单个人物的台词条目”。每条尽量控制在 30 字以内超过 30 字的长句在手动处理时也要拆成多段后再拼接因为大多数 TTS 对带情感转折和长停顿的句子表现不稳定。推荐在拆分时用这样的条目格式[ { id: demons_s1_c01, character: 雷狮, emotion: 挑衅, text: 就凭你这种程度也想拦我, pitch: mid_low, speed: 0.95, output: scene_01_line_01.wav }, { id: demons_s1_c02, character: 安迷修, emotion: 决意, text: 那就要看你能撑到什么时候了。, pitch: mid, speed: 1.0, output: scene_01_line_02.wav } ]id保证唯一性character决定后续使用哪个音色模型或变声配置emotion是人工标注的情绪标签pitch与speed只是可调参数具体值取决于所选工具支持的范围。如果项目后期要接自动化流程这个 JSON 会变成下游脚本的直接输入。4. 制作环境与工具选型角色配音链路可以按成本从低到高分为三档第一档纯录制配音。适合有人声条件、有录音环境的情况。需要准备一支动圈麦克风、一块声卡或带麦克风输入的电脑再用多轨软件录不同角色。优点是情感可控、版权风险最低缺点是人声切换压力大同一个人要配多个角色时后期还要做 EQ 和音调处理才能拉开差异。第二档AI 朗读配音。用本地 TTS 或在线配音工具根据文案直接合成各角色语音。适合没有录音条件、想快速验证剧情节奏的项目阶段。优点是出活快一个人能做全流程缺点是语气和情绪上限有限遇到大段爆发戏必须拆开处理同时要注意所选 TTS 的语种、停顿和外文名朗读是否准确。第三档合成/变声混用。用参考音频训练一个可变音色的模型或直接用现成变声器改变音色再用音频工作站做混音。这是角色分离度较高的方案比如用一套干净的中性声线合成后分两次做不同角色的音色迁移再统一进 Reaper 或 Audacity 混轨。本文把重心放在第二和第三档因为大多数想复现这个项目的同学不具备专业录音条件而本地配音加后期能覆盖大部分需求。如果是本地安装路线系统层面建议按以下清单检查检查项建议操作系统Windows 10/11、macOS、主流 Linux 均可内存8GB 起步16GB 更稳GPU可选有 NVIDIA 显卡可加速推理没有则用 CPU 模式显卡驱动如果跑 CUDA 版本需要确保驱动版本与 PyTorch 匹配磁盘空间装模型和音频素材至少预留 20GBPython多数开源 TTS 项目需要 Python 3.9 到 3.11具体看项目说明音频软件Audacity免费、Reaper有免费评估期、剪映等格式处理ffmpeg用于批量转码或合并音频如果你的电脑已经装过 Anaconda建议后续每个音频项目单独建一个虚拟环境不要直接装到 base 里。手机端或在线配音软件的选择比较灵活注意导出的音频如果是 mp3尽量避免在配音环节用低码率生成否则后期做混音会出现明显底噪。能导出 WAV 就尽量导出 WAV。5. 本地安装部署与启动方式因为材料没有限定具体某一款配音软件这里给一套本地开源工具通用的安装与启动思路。实际使用时需要把项目名和命令替换成你选中的那款。先建虚拟环境conda create -n dub_tool python3.10 -y conda activate dub_tool再按项目官方说明安装依赖。不同工具差异较大常见的三步式安装流程如下# 这里只是通用示例实际依赖请参考所选项目的 README pip install torch torchaudio pip install -r requirements.txt启动本地服务时大多数工具会提供一个 WebUI 或 API 服务常见格式是python app.py --host 127.0.0.1 --port 7860启动后浏览器访问http://127.0.0.1:7860即可看到操作页面。如果端口已经被占用可以换一个端口python app.py --host 127.0.0.1 --port 7861较老或轻量的 TTS 项目也可以不启动服务直接在命令行调用。比如python infer.py --text 就凭你这种程度也想拦我 --output ./output.wav注意这类命令的具体参数名由项目决定运行前先执行python infer.py --help或阅读 README不要照搬别人的命令。对于不想折腾命令行的人还有一个方案是安装带可视化界面的整合包版本这类版本一般会自带预训练模型和启动脚本解压后直接双击start.bat或start.sh。整合包的好处是依赖隔离更省心坏处是模型版本更新不便出问题时排查更难更适合快速验证效果。6. 启动后的功能测试与效果验证服务启动后不要急着直接做整段舞台配音先跑一组小样本。这步决定你后续要不要换工具、换模型或改参数。建议第一轮只测试 3 到 5 条台词分布要有代表性短句、长句、称呼词、感叹句、疑问句各一条。比如按 DEMONS/雷安异舞pa 的语境可以测试1. 短句站住。 2. 长句你宁可一个人背负这些也不愿意让别人靠近半步吗 3. 称呼安迷修。 4. 感叹呵可笑。 5. 疑问这就是你想要的结局测试目的是看五个维度缺一不可第一发音准确度。角色名、世界名、专有名词是否正确。如果读错要检查文本是否需要注音或分音节有些 TTS 工具支持按拼音或英文注音输入不要嫌麻烦。第二声线匹配度。生成的声音是否和参考样本接近。如果差异很大先看是模型问题还是提示词或音色参数问题。参考音质量不佳是最常见原因人声要与伴奏、混响、环境噪声分离样本长度太短也不行。第三情绪表现。台词是该带怒意还是带疲惫TTS 能不能区分。如果所有句子听起来都像新闻播报说明该场景不适合纯 TTS需要靠后期变声、EQ、混响甚至重新切分语速来补救。第四语速与停顿。同人舞台剧的配音在角色交锋时会有压迫性停顿。合成结果如果句间没有停顿要人工用音频编辑软件插入空白或调整音频块位置不要指望模型自动处理所有节奏。第五稳定性。同一句话跑三次每次听感是否有明显跳变。像声线突然变粗、音量忽大忽小这类问题通常说明参考音和输入文本之间的音素覆盖不够或者推理参数里随机性太大。每组测试后的结果可以按下面的表格记录方便对照测试条目发音准确度声线贴近度情绪表现语速/停顿稳定性短句测试通过接近一般偏快稳定长句测试通过接近弱无明显停顿稳定称呼词测试需纠正一般弱正常稳定只有全部条目都通过后再推进到批量生成。如果某一行很差优先处理对应问题发音不准则改文本注音声线不贴近则换参考音情绪弱则换表达文本或手动调参语速问题则放到剪辑软件里修正。7. 角色声线设计从“人能分清”到“角色站得住”DEMONS/雷安异舞pa 这个方向有一个核心诉求听者闭着眼睛也知道现在是谁在说话。要做到这一点不能只依赖一个“变声参数”必须从角色定位出发倒推声线设计。建议用一张声线设计表先写清楚每个角色的听感目标再对应到工具参数。如果只是模糊地说“要低沉一点”“要冷一点”到调音时就会无从下手。表格可以做得很具体角色方向基频区间语速气声比例共鸣倾向句尾习惯参考对象角色 A压迫型低偏慢中低胸腔尾音下沉低音男声角色 B强气型中低中等偏快较低喉腔偏硬干脆少年声线这个设计表有几个实际用途。第一它能帮你决定参考音频要录多久、录什么内容。第二它能帮你判断某个 TTS 输出到底差在哪里是基频不够低还是语速不对。第三后面做混音时不会让两个角色的频率挤压在一起。参考音频的准备直接影响最终声线稳定度。同人角色又没有“真实本人”可以进棚比较实用的做法有两种一种是自己找接近角色气质的真人演讲或朗读片段做参考但要注意不能直接公开声明“这是某某声优的声音”另一种是让单个人朗读角色台词再用变声工具迁移成年/少、沉/亮的区别。后者在本地项目里更容易控制。录参考音频时推荐用同一个麦克风、同一个房间、同一种距离录制。每段样本控制在 10 到 60 秒内容要有起伏不要全程平稳念稿。如果素材里有停顿过长或明显呼吸爆音可以先在 Audacity 里切掉再导出为干净的 WAV。部分本地变声工具或训练类 TTS 项目要求准备 30 秒到几分钟的干净样本。没有材料依据时可以参考常见实践样本越干净越好越像目标声线越好存在背景音乐、混响、多人和突然爆音的样本要先用高通滤波和降噪处理。强调一点训练只是技术动作用于二次创作时需要确保音色来源授权清晰自录音色或开源模型是低风险做法。8. 批量台词生成与接口调用舞台剧配音不是一句一句手动复制的场景文本量可能达到几十条甚至上百条因此需要把“文本拆条”以后的 JSON 转成批量任务。如果使用的工具具备 HTTP API可以先手动启动服务再写一个 Python 脚本按列表提交生成。下面给一个通用模板import requests import json api_url http://127.0.0.1:7860/api/generate # 读取上一阶段拆分好的台词 JSON with open(docs/line_batch.json, r, encodingutf-8) as f: lines json.load(f) for item in lines: payload { text: item[text], speaker: item[character], emotion: item.get(emotion, neutral) } try: resp requests.post(api_url, jsonpayload, timeout120) resp.raise_for_status() # 假设返回体里直接包含音频字节或文件路径 result resp.content output_path ftts_output/{item[output]} with open(output_path, wb) as out_f: out_f.write(result) print(fok: {item[id]}) except Exception as e: print(ffail: {item[id]}, error: {e})这个模板有一个需要特别注意的地方不同工具的返回方式不同。有些是返回 JSON里面带音频地址有些是直接返回二进制音频有些需要你先请求创建任务再轮询任务状态。写脚本之前先手动用一款接口调试工具或 curl 验证一次请求和返回格式。用 curl 验证的单次请求示例curl -X POST http://127.0.0.1:7860/api/generate \ -H Content-Type: application/json \ -d {text:站住。,speaker:character_A}如果接口一次只能处理一条文本批量时不要用 for 循环暴力并发过猛建议控制并发数或直接串行处理避免显存或内存溢出。比较稳的处理方式是每提交一条后等待 1 到 2 秒或使用任务队列。如果工具本身支持目录批量那就在 WebUI 里选择输入目录和输出目录一次性跑完。批量生成前要把参数冻结住同一个项目里的角色 A、B 用什么参数、什么模型是要统一的。不要上午用模型版本 1下午换到模型版本 2否则成片的音色全乱了。最好的做法是把每轮批量生成时使用的模型版本、参数和输入文本一起写成配置存到docs/下未来回听成品才能复现当时效果。9. 后期混音从“孤零零的人声”到“舞台剧片段”批量生成的 TTS 音频并不等于最终可用素材。单条语音放在那里会显得干、平、甚至有点“电子感”所以后期混音是同人舞台剧配音里非常重要的一环。混音目标不是把声音变复杂而是让角色对白像在同一个空间里发生。先调整单轨音色。TTS 输出通常在 300Hz 到 3000Hz 的频率区间里容易堆积会让听感发闷。可以做一个小幅的中频衰减让声音更干净再把 8kHz 以上的空气声提一点增加舞台广播感。每个角色之间的频率也要拉开比如角色 A 偏中低频角色 B 适当提升中高频这样对话时不会糊在一起。再做空间感。舞台剧配音需要“在一个舞台上”的感觉可以给对白轨加延迟和混响。混响时间不要贪长先在每条对白之间留出气口。Audacity 自带混响效果器Reaper 也可以用 ReaVerb。关键是把干湿比控制在自然范围通常干声占大头、混响只做空间润色具体数值以实际听感为准。最后是响度匹配。多条不同时间生成的语音如果音量起伏明显可以在 Audacity 或 Reaper 里先做响度匹配再用 响度计检查最终输出。这里提供一个 ffmpeg 的响度归一化通用命令ffmpeg -i input.wav -af loudnormI-16:TP-1.5:LRA11 output.wavI-16是目标响度TP-1.5是峰值限制具体数值可以根据发布平台要求改。如果配音要配 BGM还需要把背景音乐轨和对白轨做侧链压缩或手动自动化音量让音乐在台词间隙才浮现出来。做完这些导出的“舞台剧片段”才算是能拿去给别人试听的版本。10. 资源占用与性能观察如果本地跑的是开源 TTS 或变声工具性能问题的核心在于模型推理和批量并发而不是单纯的录音或剪辑软件。显存的观察方式很简单Windows 下可以打开任务管理器切到“性能”标签看 GPU 显存Linux 下使用nvidia-sminvidia-smi运行后能看到显存占用和当前进程。要重点分辨两类占用一类是模型加载后常驻显存另一类是生成时因文本长度增加而临时升高的部分。如果常驻占用已经接近显存上限就要换更小的模型或降低 batch size不要硬撑。CPU 推理模式下占用的是内存和 CPU 使用率。建议观察两个方面一是生成单条音频的等待时间二是长时间批量任务时内存是否持续上涨。内存持续上涨说明可能有泄漏要限制连续运行次数或者分批重启。文本长度、采样率、批处理数量和音质选项都会影响消耗。相同模型下文本越长推理越慢采样率越高生成的音频文件越大但听感提升未必明显。做大规模批量前先跑 10 条文本做压力测试记录总耗时再按总条数估算出完整任务需要多久。资源占用数值不好一概而论任何网上给出的“占用几G显存”都只能作为参考最后以本机任务管理器或nvidia-smi的实测为准。音频格式也会影响磁盘占用。生成大批量 WAV 后如果暂不混音可以先用 ffmpeg 转成高质量 FLAC 或者码率较高的 MP3节省空间等最终混音时再用无损格式。11. 常见问题与排查方法问题现象可能原因排查方式解决方案启动时报错缺依赖虚拟环境未激活或依赖没装完整查看终端错误日志按 README 重新执行pip install -r requirements.txt浏览器无法打开 WebUI服务未启动、端口被占用或防火墙拦截观察终端日志检查端口监听状态换端口启动Linux 上检查防火墙规则生成语音读错角色名输入文本缺少注音或训练样本中没有该词多试几种拼写方式改文本注音扩充参考音样本中的词覆盖范围不同批次音色不统一使用了不同模型版本或参数改动检查本次运行使用的配置文件固定模型与参数回退到冻结版本重跑带 GPU 但推理很慢CUDA 环境不匹配模型实际跑在 CPU执行nvidia-smi查看进程用torch.cuda.is_available()验证安装匹配的 CUDA/PyTorch 版本显存不足崩溃文本过长、batch 太大或并发过高观察显存曲线缩短文本、调小 batch、串行推理单条生成正常但批量中断脚本异常退出、单条超时或磁盘写入失败加日志看停在哪条批处理加入失败重试与断点续跑机制人声干涩、没有舞台感缺混响与延迟处理与原声对比听感加混响做频率避让调整干湿比输出响度不稳定多条语音录制/生成时音量不同响度计查看差异用loudnorm或手动自动化音量匹配TTS 语气平淡拆条太长或情绪标签未生效换短句并手动测试情绪参数拆短文本手动切分后拼接必要时用变声重做如果断点续跑对你很重要建议在批量脚本里加入记录机制。每次成功写入一条就把这条的id写入一个done.log下次运行时跳过已经完成的条目。这个方法简单可靠比一次性跑完更安全因为中间日志丢失或断电都不会让你从头再来。12. 最佳实践与合规提醒到这里整套 DEMONS / 雷安异舞pa 配音流程已经搭起来了。最后按工程化和内容安全两个方向做几个提醒第一次尝试时建议只用三段短对白跑通全部链路不要一上来就做 200 句。先确认“文本拆分 - TTS/变声生成 - 导入混音 - 导出”这条主干是通的再开始逐步放大文本量。这样踩坑成本极低。整个项目目录要分清“输入素材”“模型输出”“最终混音”三个区参考音样本尽量不动原始文件需要修改时先复制一份再处理。所有音频文件的命名要含场景编号和角色名避免最后找不到素材。批量任务的日志不是可有可无。每跑一批生成都要把输入文本、参数、模型版本、日期记录到项目日志里。这样哪怕隔了一个月再回去补录某句台词也能让新语音和旧语音保持同样的音色和听感。接口服务如果暴露到局域网要限制访问范围不要把默认的 API 端口直接暴露到公网不需要联网推理时尽量跑在127.0.0.1。合规方面再强调三件事音色素材必须确认来路自录音色或使用开源模型最稳BGM 和音效要有授权或使用可商用素材涉及真实声优声音或未授权人物声音的样本不要用于训练和发布。同人创作可以自由表达但不代表可以忽略对原作作者、世界观设定和声音表演者的尊重。这个项目的价值不在于把文本变成语音这个动作而在于整个流程里“角色声线怎么设计、批量文本怎么管理、舞台感怎么修出来”。如果你准备复刻建议从自己最喜欢的一段场景对白开始先做 30 秒成品再逐步扩成片段。做出一版能稳定复现的流程后再往长对白、多人交叉、带 BGM 的舞台混音方向走。后面能接的扩展还有很多比如对白情绪标签化、多版本声线切换、自动音频对齐都可以在这套流程上继续叠加。