MiniMax H3 人物乱说话、胡言乱语?问题出在台词写法,附 7 个修法

你给角色写好了一句台词。视频出来,嘴在动,声音也像真人,可一个字都听不懂。也可能台词对了,开头却先冒出半秒含混的杂音;或者台词说完了,人物还在接着说。这是大家对 MiniMax H3 原生音频抱怨最多的问题,而多数时候不是模型不行,是提示词没按它的对白语法来写。

✦ 试试 MiniMax H3 Unlimited
视频剪辑软件的预览窗口里,一个女人话说到一半,旁边的对话气泡里是一团杂乱的符号;另一块屏幕上是一条干净整齐的音频波形。
听着像在说话,说的却不是人话——问题出在台词的写法上。

H3 乱说话,常见的有五种

H3 的画面和立体声是一次同步生成的,所以台词一出错,错得还特别像那么回事:节奏、换气、口型全都有,就是没有字。用户反馈的情况基本能归成五种。先认清自己碰到的是哪一种,每种修法都不一样。

H3 上线没几周,规律就很清楚了。一位早期测试者总结得很到位:没写明对白的提示词「有时会出来一堆胡言乱语」;而把每个角色说什么、什么时候说、怎么说都写清楚,「不光台词准了,连语气、环境音和节奏这些细节也都对了」(cocktailpeanut 在 X 上的帖子)。8 月 12 日,Hugging Face 上有人开了一个讨论帖,十来位用户在里面说碰到了同一个问题:视频一开头先冒出一阵杂音。汇总 Reddit 反馈的文章则列出了「没要台词却自己加台词」「台词安到了别人身上」「拿胡言乱语把空着的音轨填满」这几条(Leadde 的汇总)。

症状你听到的是
台词含糊不清有你那句台词的节奏,但听不出是哪几个字。
开头半秒的杂音正式台词开始前,先有大约半秒含混的声音。
台词说完还在自己往下编台词没错,可说完之后人物还接着说,说的全是编出来的词。
把表演说明当台词念出来你写的表演说明(「温暖、自信的声音……」)被当成台词念了出来。
台词安错了人你的台词从另一个角色嘴里说了出来。

原因:台词没放进 H3 的对白标记

H3 训练时用了一对专门的标记来框住台词:<d> 开始,</d> 结束。标记里面的字会被当成台词逐字念出来,标记外面的都算描述。所以提示词写「她说自己刚收到这个杯子、真的太喜欢了」,模型读到的是一段「有人在说话」的描述,生成的也正是这个:一个人在说话,发音全靠它自己编。听着像说话,是因为它学的就是人说话;听不出字,是因为根本没人告诉它该说哪几个字。

我们在自己的 H3 环境里做了个对照:只改这一句台词的写法,种子和其他设置都不动,结果交给 Whisper 转写,不靠耳朵判断。测试用的是中文台词,不过这个问题不分语言。

台词怎么写语音识别听到的
叙述版:她说自己刚收到这个杯子、真的太喜欢了识别结果:自己刚收到这个衣服来补真的太喜欢了。「杯子」变成了「衣服」,多出两个字,开头的词也被吞了
标记版:(S1) says: <d>[中文] 我刚收到这个杯子,真的太喜欢了。</d>逐字命中,一字不差
HelloGen 实测,2026-09-11:同一个种子,640×384,124 帧,12 步,只改了台词的写法。用 Whisper 转写。

把官方对白语法拆开来看

这套规则写在 MiniMax 2026 年 8 月 10 日前后发布的官方提示词指南里(GitHub 上的 h3-prompt-writing)。最关键的一句是:说话人的身份描述、编号、动作和说话方式都写在 <d> 外面,<d> 里面只放语言标签和用户给的台词原文。官方自己的例子是:The young woman with a quiet, breathy voice (S1) says: <d>[English] I get off at the next station.</d>(大意:一个声音轻柔、带点气声的年轻女子 (S1) 说:「我下一站下车。」)

顺序是固定的,每一部分管一件事。少写一样,就会碰上前面说的某一种症状。

部分例子防的是什么
声音描述The young woman with a quiet, breathy voice镜头一换,声音也跟着变。角色第一次开口时,就写清年龄、音高、音色和语速。
说话人编号(S1)台词安错了人。每个角色在所有镜头里都用同一个编号;两人齐声说用 (S1,S2)。
动词says:分不清这是说话、唱歌还是画外音。
开标记 + 语言<d>[English]台词含糊不清。语言标签紧跟在开标记后面。
台词原文I get off at the next station.台词被转述走样。别翻译、别改写,标点照留。
闭标记</d>台词说完还在自己往下编。
画外音:写 says in an off-screen voiceover,并注明这个角色嘴巴闭着,否则 H3 会让一张没在说话的脸去对口型。官方指南还要求提示词正文用英文写,台词保留原本的语言,并标上语言名——[English]、[中文]、[French]。

七个修法,按症状对号入座

从上往下排查。前两条就能解决大多数视频的问题;最后一条是模型自己的已知毛病,不怪提示词。

其中两条来自我们自己的测试,很容易漏掉。</d> 后面紧跟着写的东西,会被当成台词的延续:有一次我们把声音描述写在了闭标记后面,视频就把这段描述一字不差地念了出来。还有,视频长、台词短,模型会自己找话说:15 秒的视频只给一句 5 秒的台词,剩下 10 秒它就得找点什么来说,常常是从提示词里就近抓几个词。要么写够台词把时间填满,要么明确写出哪几秒不说话。

症状常见原因修法
台词含糊不清台词用叙述写,或者只加了普通引号套上标记:(S1) says: <d>[中文] …</d>
把表演说明当台词念出来声音或动作描述写在了 </d> 后面把声音描述和动作挪到「says:」前面,或者另起一个带时间点的段落。
台词说完还在自己往下编台词比视频短太多,或者没写声音多写几句台词,或者写明「0:11–0:15 she stops talking and just looks at the camera」(她不再说话,只看着镜头)。把环境音写出来,安静的那几秒就不会空着。
台词安错了人没有说话人编号,或者一个镜头里两张脸同时在说每个开口的角色都给一个固定的 (S1)/(S2)。一个镜头只让一个人说话,并且正对镜头。
口型对不上说台词时人物侧着脸,或者脸在画面里太小先正脸、露出嘴巴把话说完,动作放到后面,不出声地做。
台词被改了台词被翻译或改写过,或者语言标签对不上台词写成你想听到的原样,配上对应的 [English] / [中文] 标签。
开头半秒的杂音跟种子有关的模型毛病在标记里用句号收尾,把环境音写出来,声音参考控制在 4 秒左右——还不行就换个种子。
最后一行的办法来自 Hugging Face 讨论帖里的用户反馈,不是官方修复;MiniMax 至今没在帖子里回应。

同一条提示词,改写前后对比

下面是一条常见的商品短视频提示词初稿,和按 H3 写法改过的版本。画面内容一点没变,改的只是台词、说话人和不说话的那几秒怎么写。改写版照官方做法:正文用英文,台词保留中文,标上 [中文]。

改写前:一个穿奶油色毛衣的年轻女孩坐在书桌前,举起一个陶瓷马克杯,开心地对着镜头说她刚收到这个杯子、很喜欢它的手感,然后喝了一口。

改写后:[Shot 1] Live-action, a waist-up shot of a woman in her mid-twenties in a cream knit sweater at a sunlit desk, facing the camera. She lifts a matte ceramic mug to chest height and, in a bright, unhurried mid-range voice, (S1) says: <d>[中文] 这个杯子我刚到手,手感真的太好了。</d> [Shot 2] At 00:04.000, a close-up of her hands turning the mug; she takes a slow sip, silently, and smiles at the lens. Ambient sound: a quiet room, the soft knock of ceramic on wood, one sip. No background music.

还要注意改写版没做什么:它没有替她多加一句原稿里没有的台词。如果你的提示词里压根没有对白,老老实实写上「no dialogue」就行,别硬编几句。

用标记还是直接加引号?社区说法不一

也有人持相反意见。r/StableDiffusion 上有人发了并排对比,结论是直接加引号的台词比加标记的更干净,还有人在评论里说引号「远没有 <d></d> 标记那么多 bug」(AIReiter 的整理)。Hugging Face 那个讨论帖里,有一位用户改用引号后,开头的杂音没了;另外几位试过却说不稳定,得看种子。

我们的看法是:标记是模型训练时用的写法,官方指南也要求用它;在我们的对照测试里,用不用它,就是能说出字和只出一串噪音的区别。先用 <d> 标记。如果某一条视频反复说不清,先把那一句改成普通引号重跑,别急着重写整条提示词——而且每次只改一处,不然你没法知道到底是哪一处起了作用。

或者按一下 ✦ 增强,让它替你套语法

说话人编号放在哪、语言标签用哪个、闭标记后面不能再跟东西——这类琐碎的事,本来就该交给工具。HelloGen 的视频生成器里有个 ✦ 增强 按钮,会按你选的模型改写提示词;选 MiniMax H3 时,它依据的就是本文讲的这份 H3 提示词指南,对白规则也在里面。

想法怎么说就怎么写,比如「她对着镜头说:这个杯子我刚到手,手感真的太好了」,增强会把台词放进 H3 的标记里,加上说话人编号和语言标签,把声音描述放到「says:」前面,再补上分镜和环境音。它守三条规矩:你写的台词一字不改,绝不添一句你没写的台词,文字和参考图对不上时,以你的文字为准。换成别的模型,它就改用那个模型自己的对白写法,不套 H3 的。

增强一次 2 积分,成功才扣;没成功,你的提示词原样不动。点一下「查看原文」就能对比,看完再生成。另外,HelloGen 的 Pro 和 Max 套餐都包含 MiniMax H3 Unlimited,每条 0 积分——修台词免不了反复生成、试听、再改,每试一次都不用另外花钱。

参考资料

本文用到的资料如下。

想自己部署这个模型,可以看我们的 MiniMax H3 本地部署指南。

常见问题

MiniMax H3 生成的人物为什么会胡言乱语?

多半是因为台词用叙述或描述的方式写了。H3 训练时用了专门的对白标记 <d> 和 </d>:标记里的字逐字念出来,标记外的都当描述,所以模型只能自己编一串像说话的声音,念不出你的台词。

MiniMax H3 的对白正确写法是什么?

依次写声音描述、说话人编号、动词,再把台词连同语言标签放进标记里,例如:The young woman with a quiet, breathy voice (S1) says: <d>[English] I get off at the next station.</d> 同一个角色在每个镜头里都用同一个编号。

H3 为什么会说出我没写的话?

视频长、台词短,空出来的几秒模型会自己填;紧跟在 </d> 后面的文字也会被当成台词的一部分。要么写够台词把视频填满,要么写明哪几秒不说话;把环境音写出来;所有说明都放在「says:」前面。

H3 视频开头那半秒杂音怎么去掉?

这是跟种子有关的毛病,官方暂时没有修复。社区的办法是:在标记里用句号收尾,写出环境音别让音轨空着,声音参考控制在 4 秒左右,再换个种子重抽。也有用户改用普通引号后就好了。

H3 写台词,用 <d> 标记还是直接加引号?

先用 <d> 标记——这是官方规定、模型训练时用的写法,在我们的对照测试里,它把一串噪音变成了一字不差的台词。如果某一条反复说不清,就只把那一句改成普通引号试试,其他都别动。

有工具能帮我写 H3 的对白语法吗?

有。HelloGen 的 ✦ 增强会按你选的模型改写视频提示词;选 H3 时,它会把台词放进对白标记,加上说话人编号和语言标签,台词一字不改,也绝不添你没写的对白。增强一次 2 积分,成功才扣。

继续读

想自己做一个?

用你自己的话描述,几秒钟就能看到结果。

✦ 试试 MiniMax H3 Unlimited