用 Claude Code 做真人配音 — MiniMax 音色克隆 + 一套文稿方法论
视频开头那段 Nano Banana 的介绍,旁白不是我对着麦念的——是克隆了我自己的声音,让 Claude Code 调 MiniMax 的 TTS 配出来的。你能听出它跟以往那种一听就假的 AI 人声不一样:有唇齿音、有呼吸、停顿很自然。
这一期把整套做法讲透:怎么接入配置(MiniMax 分国内版和海外版,拿 key 拖给 Claude Code),用哪个模型(speech-2.8-hd),怎么克隆自己的音色。但真正的重点是一套文稿准备方法论——停顿别瞎加、情绪走自动、嵌入词挑着用、多音字标拼音、数字转中文。这些官方文档里都没有,是我日常用踩出来的,我整理成了一份文档放在下载区。
先看视频开头那一段。
那是刚出的 Google 画图工具 Nano Banana 第三代的介绍。但你注意听旁白那个声音——它不是我对着麦克风念的,是克隆了我自己的声音,让 Claude Code 调 MiniMax 的 TTS 生成出来的。
跟以往我们听到的那种 AI 人声不太一样:音色里多了很多唇齿音,讲话的节奏、停顿很自然,每一句之间还带着呼吸的感觉。
为什么用 MiniMax
大家都听过 MiniMax,它不光有大语言模型——它的人声 TTS 模型,是我目前测试下来最好的一个。
第一步:接入与配置
MiniMax 分国内版和海外版,两个平台地址我都放在视频里了。
进去之后:先充值,从 access 页面生成一个 API key,把这一串密钥保存到本地一个记事本文件里,再把这个文件拖到 Claude Code 的窗口,就能调用了。
效果最好的模型是 speech-2.8-hd。它会给出调用方式,但我们完全不用自己学——只要去 MiniMax 官网找到 text to speech(T2A)的说明页,把内容复制下来,或者直接把网页地址给 Claude Code,它自己就学会怎么用代码调用了。
真正的关键:文稿怎么准备
为了让人声更真实,MiniMax 调用时支持很多自定义参数。这部分才是重点,也是官方文档里没有、我自己踩出来的经验。
停顿:用 <#秒数#> 这样的标记,在标点之间、句子过渡、强调的地方插入停顿。MiniMax 本身会加一点小停顿,但不够,所以我专门编排了一套——在长句结尾、需要强调的地方,额外加 0.2 到 0.3 秒。注意别瞎加,加得越多反而越假。
语速:我测下来 1.2 到 1.3 倍是最舒适的。
情绪:不指定的话是自动模式,它会根据文意匹配情绪,通常自动就很好用。也可以自选 happy、sad、disgusted、surprised,但实测都有点夸张,不好用——好用的就是自动、自然、平静这几个。
嵌入词:官方支持很多提升”人味”的小括号嵌入词。实测好用的是 (breath) 呼吸感、吸气、不屑的哼、咂嘴这类;右边那些笑、清嗓子就太出戏了,不自然,是要避免的。所以我跟 Claude Code 解释逻辑时,会明确告诉它哪些词能穿插、哪些不能。
多音字:可以用拼音加声调来固定读音。比如”善老师”,TTS 可能读成”单老师”,用拼音加数字声调就能纠正。读不准的字也可以用同音字替代。
词组连读:我以前常做医学科普口播,经常遇到很长的词,比如司美格鲁肽、奥美拉唑肠溶胶囊,这种长词要用双井号包裹,让模型把它识别成一个连续读出的整词。
数字转中文:长串数字、电话号码、年份经常被读错。只要在发送之前,让 Claude Code 把数字转成中文写法就能避免。还有”二”和”两”的习惯、长文本流式输出时怎么分块,也都在里面。
这一整套,我整理成了一份文档,放在下载区。下载下来丢给你的 Claude Code,它就学会了我这套生成语音的经验。
演示:一句话生成一段配音
有了 key、有了这套经验,我在 Claude Code 里只需要说一句:
帮我随机生成一段 200 字的小故事,用 MiniMax speech-2.8-hd 模型、我自己的音色、我们的生成语音方法论,转成音频文件,转换完直接播放。
它很快就生成了——一段关于深夜旧书店、店主老周和一本灰皮笔记的小故事,用我的音色读了出来。
怎么克隆自己的音色
很简单:在手机上录一段十几二十秒、没有噪音的自己的声音,拖到 Claude Code 窗口,跟它说去 MiniMax 克隆这个音色,它就能直接克隆出来。
有一点要注意:通过 API 克隆的音色只保留 7 天,7 天内不用就会被清理。不过没关系,只要你留着原始的那段音色文件,随时都能重新克隆出来。
一个彩蛋
大家可能也听到了,我的 Claude Code 在完成任务的时候,会播放一段”任务已经完成了,请指示”的音频——这也是用 MiniMax 生成的,通过 hooks 接进来的。这样我开多个窗口的时候,一听就知道有任务完成了,该去看一下了。
今天就到这,有问题评论区见。
来源:EP0026_audio.mp3 · ASR 模型 gemini-2.5-pro(切段并发) · 约 10 分钟原片完整文字版
[00:00] 来吧朋友们 今天我来教一教大家 如何用 Claude Code 来生成流畅的、真实的人声的音频 那我们先看一段这样的一个实例
[00:10] 刚刚 Google 的 AI 画图工具 Nano Banana 出第三代了 这次最大的变化 中文终于不是乱码了 第一代去年 8 月出的 画面不错 但中文全是鬼画符 Pro 版修好了中文
[00:22] 大家可以听到 就是这个人声 跟以往我们听到的那些生成的 AI 的人声 其实是有挺大不一样的 首先它的音色里面多了很多的唇齿音 然后它讲话的节奏 包括停顿 是一个非常自然的 然后它在每一句句子之间 其实还增加了呼吸的这样一个感觉
[00:44] 那这样的一个音频是怎么生成出来的呢 那我们用到的就是这个 MiniMax 大家都听过 MiniMax 它不光有大语言模型 它的人声的 TTS 的模型 就是生成人声的这个模型 是我目前测试下来最好的一个模型
[01:03] 那整个方法的过程呢 我列出了以下几步 第一步是接入与配置 那 MiniMax 它其实分为国内版和海外版 我把这两个平台的地址都放在这儿了 进去之后呢 我们要先拿到一个 API 的 key 首先要进行一个储值 储值之后 从 access 里面去生成这个 API 的 key 生成之后 可以把这一串 API 密钥 保存到本地的一个记事本文件里面 把这个记事本文件拖到 Claude Code 的窗口里面 我们就可以去调用这个模型了
[01:46] 那这个 MiniMax 的 TTS 模型里面 目前效果最好的是 speech-2.8-hd 这样一个模型 那这个模型 它会给出一个调用的方式 但我们实际上完全不用去学这个调用方式 我们只需要去 MiniMax 的官网 找到 text to speech、T2A 的说明页面 把说明页面的内容全部复制下来 或者是把这个网页的地址给到 Claude Code 它就可以直接去学习 怎样用代码去调用这个模型了
[02:25] 为了去完成一个更真实的人声生成呢 MiniMax 在调用模型的时候 支持很多自定义的参数 正常情况下 我们会给它发送一段连续的自然语言文本 对吧 这段文本里面 如果我们加入一些标签或者特殊的符号 它其实代表了很多含义 比如说这里显示的 是一个尖括号、然后井号 中间加入一个小数点为单位的数字 那它就代表 在文本的这个位置 要停顿这些时间
[03:05] 那经常是在标点符号之间、句与句的过渡之间 或者是强调的时候 都会加入一些停顿 让人感觉这是自然的 当然 MiniMax 本身生成的音频里面 会加入一些小停顿 但它加的还不够 所以我专门编排了一套 在比如说长句子的结尾 或者它判断需要强调停顿的地方 去额外增加 0.2 或者 0.3 秒的停顿
[03:36] 那同样 在生成音频的时候 MiniMax 还支持我们用怎样的语速去生成 我目前测试下来 1.2 倍到 1.3 倍的语速 是一个比较舒适的语速
[03:53] 然后 MiniMax 这个模型 它还支持情绪的部分 如果我们在情绪这部分没有给它规定的话 它会是一个自动的模式 它会根据文章的语意 去匹配一个情绪情感出来 通常来讲 它的自动匹配就已经非常好用了 当然它还可以自选 用 happy、sad、disgusted、surprised 这样一些表达方式 但实测下来都有一点点夸张 都不是那么好用 只有自动模式 和自然、平静这几个模式是比较好用的 大家可以自己去测试一下
[04:39] 那除了这些之外呢 还可以加入一些小括号的嵌入词 大家可以看到这里列出了很多 因为官方支持了非常多种 提升所谓人味的嵌入词 但我实际测试下来之后 有一些是好用的 比如说 breath 它是一个呼吸感 然后会有吸气、会有不屑的哼 或者是一些唇齿的、咂嘴的 这样的音色是好用的、正常的
[05:08] 那相对而言 它右边列出的这些 比如说这种笑、或者清嗓子的这些词 它就有点太出戏了、太过分了 而且不经常用到 即使用出来 也会显得非常不自然 所以这些是避免使用的词 所以我在跟 CC 解释我的使用逻辑的时候 就要告诉它 哪些词可以穿插到文本当中去 哪些词不用去穿插
[05:42] 那包括 可以用拼音加上声调 去代替一些多音字 以至于让它能读出准确的音 比如说这个”善老师” 它可能 TTS 就读成了”单老师” 那为了让它读成”善老师”呢 可以用拼音加上数字声调的方式 去给它确定读音 那再往后 有些字如果读得不准确的话 也可以用同音字去替代那个字
[06:13] 然后包括词组的连读 比如说之前我经常生成医学科普的口播稿 所以经常牵扯到一些非常长的词 比如说司美格鲁肽 或者是奥美拉唑肠溶胶囊 像这样的长词 它需要用双井号进行包裹 以至于模型可以将其识别成一个 需要连续读出的长词
[06:42] 那还有一些经验 包括长串的数字 模型经常会把电话号码读成一个个数字 那我们只需要在发送给大模型之前 让 Claude Code 把这一长串数字 转换成大写的数字 就可以避免这个问题 包括一些年份的读法 有时候会出问题 转换成大写年份的话 能确保读音是我们需要的那个 包括还有二和两的习惯 以及长时间流式输出的时候 如何去分块的策略
[07:25] 那这样的一个文件 它都不是官方给到的 这都是我日常使用的一些经验 我把这个文档也放在我的网站上 大家下载下来之后 把这个文件给到你的 Claude Code 它就可以学习到 我这一套生成语音的经验了
[07:43] 那有了这些之后呢 我们就可以来到 Claude Code 里面 把 key 给到它了 把经验也给到它了 我只需要跟它说 帮我随机生成一段 200 字的小故事吧 然后使用 MiniMax speech-2.8-hd 的模型 使用我自己的音色 用我们的生成语音的方法论 去把它转成一个音频文件 转换完成之后 帮我直接播放出来
[08:16] 我只需要在 Claude Code 里面跟 CC 这样去说 就能够非常快的生成出一段这样的音频出来 然后我们看一下它的结果 (深夜的旧书店只剩一盏灯 店主老周习惯在打烊前 再绕书架走一圈 想跟老朋友道别 那天他在最里侧 发现一本没有书名的灰皮笔记 翻开 里面是陌生人的字迹 记着这座城市三十年来的雨 最后一页写着 如果你读到这里 请替我去看看城南那棵老槐树 还在不在 老周合上本子 第二天清早真的去了城南 槐树早被砍了 原地立着一块公交站牌 他站了很久 回来后在笔记的空白处补了一行字 又把它放回原处)
[08:59] 那大家已经可以听到了 它已经用我的一个音色 完成了这样的一个朗读 那怎么去克隆音色呢 其实也非常简单 只需要在手机上录下一段 你自己的、没有噪音的 大概十几二十秒的一段声音 把它拖到 Claude Code 的窗口里 跟它说 我要去 MiniMax 上面克隆这样的一个音色 它就可以直接克隆出来
[09:24] 但 MiniMax 通过 API 克隆的音色 只会保留七天的时间 就是这七天内 如果你不去使用它 它就会被清理 不过这也没所谓 只要我们有原本的那个音色文件 就可以重复的给它克隆出来
[09:38] 那大家刚才也听到 我的这个 CC 在完成任务的时候 它会播放一段”任务已经完成了 请指示”这样的一段音频 那这个其实也是用 MiniMax 生成出来的 然后把它通过 hooks 的方式 加入进来了 这样的话 当我在使用多窗口的时候 我就可以知道 有任务完成了 我需要去看一下
[09:56] 那今天的内容就是这样 那有什么问题的话 我们还是评论区见 拜拜