Mindket

AI 声音克隆:原理、同意的含义,以及该用哪些模型

黑色横幅,标题是“AI 语音与音乐”,下面是“语音合成、声音克隆、歌曲与配音”。

声音克隆,是根据一小段录音做出一个听起来像真人的合成声音。XTTS-v2 和 Chatterbox 这类开源模型,用一小段参考片段就能工作(XTTS-v2 的模型卡说约 6 秒),而 OpenAI 要求先录一句同意声明,并且只向符合条件的客户开放录音声音。只克隆你自己的声音,或者声音主人同意的声音,并告诉听众这段音频是合成的。

本节内容

  • 不需要复制某个具体的人时,就用文字描述一个声音。
  • 录一段干净的样本,而且只录你自己的声音,或者声音主人同意的声音。
  • 卖出模型生成的内容之前,先读它权重的许可。
  • 文件里的水印要保留,并把这段音频标成合成的。
  • 溯源检查没查到信号,只是没有答案,不是一个“是”。
全部课程
本页目录
  1. 开始之前
  2. 不需要录音:用文字描述一个声音
  3. 用录音克隆声音:OpenAI 的同意流程
  4. 样本该是什么样
  5. 在自己的电脑上用开源模型克隆
  6. 克隆任何声音之前要守的规则
  7. 检查一段音频,以及干净的结果意味着什么
  8. 常见错误
  9. 动手试试
  10. 下一课:AI 音乐
  11. 自测一下
  12. 常见问题
  13. 资料来源

开始之前

声音克隆,是做出一个听起来像某个具体的人的合成声音。下面的开源模型示例里没有训练这一步:你给它一小段参考片段和新的文字,它就用这个声音把文字念出来。Chatterbox 的 README 把这叫作零样本(zero-shot)。文字转语音那一课讲怎样选内置音色,这一课从那里接着往下讲。

有两种东西都被叫作自定义声音。描述出来的声音由一段文字描述生成,没有谁被复制。克隆出来的声音由一个真人的录音生成,所以它就是那个人的声音肖像,这一课所有的规则都是从这一点来的。下面的步骤里,托管路线需要一个 OpenAI API 密钥,开源模型需要 Python。

不需要录音:用文字描述一个声音

OpenAI 的 prompt-to-voice 根据一段描述创建并保存一个声音,不需要参考录音,也不需要同意录音。它向所有 API 客户开放。保存下来的声音可以用在 GPT-Live 里,指南说它不支持文字转语音、Realtime 和 Chat Completions 这几个 API。创建一个不收费,在 GPT-Live 里使用它,按普通会话的费率计费。

你描述的是特质,不是某个人。指南列了九项,它们是写在提示词里的话,不是单独的 API 参数。指南还说,不要要求模仿某个具名的人、公众人物或虚构角色,也不允许儿童的声音。

curl --fail-with-body https://api.openai.com/v1/audio/voices \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "prompt",
    "name": "Support assistant",
    "prompt": "A calm, reassuring adult voice for a customer support assistant. Speak with an American English accent, a mid-range pitch, a smooth, warm tone, and a steady, conversational pace.",
    "model": "auto"
  }' \
  -o voice.json
  1. 照下面表格里的特质,用平常的话写一段描述。
  2. 发送上面的请求。每个成功的请求都会保存一个新声音,并返回它的元数据,其中有一个像 voice_123 这样的 id,不带音频,也没有试听。
  3. 保留这个 id 和原来的描述。指南说,想在另一次会话里用同一个声音,就复用保存下来的声音。
  4. 在 GPT-Live 会话里试听,把 session.audio.output.voice.id 设成这个 id。为了让声音表现更好,指南说还要把这段描述放进 session.instructions。
  5. 每次只改一项特质,用同一小段文字做对比。
取自 OpenAI 的自定义声音指南,2026 年 11 月 6 日阅读。
特质要描述什么示例写法
Accent 口音地区发音和口音的强弱American English, with a strong accent
Age 年龄听起来的年龄An adult in their 30s
Presentation 性别呈现声音给人的性别印象Feminine
Pitch 音高声音听起来偏低还是偏高Mid-range pitch
Timbre 音色声音的质地Smooth and rich
Texture 质感沙哑、嘶哑或清亮Smooth
Loudness 用力程度发声的力度Moderate vocal effort
Speech rate 语速说话有多快Medium pace
Distinctiveness 辨识度这个声音的个人特色要有多突出Moderately distinctive

用录音克隆声音:OpenAI 的同意流程

用录音生成声音,只向符合条件的客户开放。指南说要联系 OpenAI 的销售团队,组织开通之后,Audio 下面会出现 Voices 标签页。它需要同一个人的两段独立录音:一段是同意录音,说话人读一句固定的声明,另一段是样本录音,模型会尽力复制它。

指南列出了 16 种语言的声明,包括中文,并提醒,只要和台词有任何出入,上传就会失败。同一个说话人做不止一个声音时,同一份同意可以重复使用。英文声明是这样的:“I am the owner of this voice and I consent to OpenAI using this voice to create a synthetic voice model.”

指南写明的限制

60 s

录音声音的样本,OpenAI 最长接受的时长

来源:OpenAI API docs: Custom voices (2026年11月6日 查阅)

20

一个组织最多能创建的录音声音数量

来源:OpenAI API docs: Custom voices (2026年11月6日 查阅)

100

一个组织最多能保存的描述声音数量,你的应用替客户创建的声音也算在内

来源:OpenAI API docs: Custom voices (2026年11月6日 查阅)

curl https://api.openai.com/v1/audio/voice_consents \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "name=test_consent" \
  -F "language=en" \
  -F "recording=@$HOME/tmp/voice_consent/consent_recording.wav;type=audio/x-wav"

curl https://api.openai.com/v1/audio/voices \
  -X POST \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "name=test_voice" \
  -F "audio_sample=@$HOME/tmp/voice_consent/audio_sample_recording.wav;type=audio/x-wav" \
  -F "consent=cons_123abc"
  1. 先获得权限。没有权限,声音相关的接口会返回错误,比如 404。
  2. 在安静的房间里,原样录下那句同意声明。
  3. 带上名称和语言,把它上传到 /v1/audio/voice_consents。返回的内容里有一个同意 ID。
  4. 录样本,不超过 60 秒,格式可以是 mpeg、wav、ogg、aac、flac、webm 或 mp4。
  5. 用样本和同意 ID,在 /v1/audio/voices 创建声音。
  6. 在 Realtime 会话里用 gpt-realtime-2.1-mini,或者在 GPT-Live 里,使用这个声音的 ID。要在开始时就选好,因为换一个声音需要开一个新会话。

样本该是什么样

指南说,质量取决于样本,并给出了录音建议:安静、回声小的空间,专业的 XLR 麦克风,离麦克风大约 7 到 8 英寸,中间加防喷罩,全程保持同样的距离。模型会原样复制它听到的东西,包括语气、节奏、精力、停顿和习惯,所以要录你希望克隆声音拥有的那种声音。样本里精力或口音忽高忽低,结果里也会忽高忽低。

开源模型给的建议少一些。Chatterbox 的 README 提醒,参考片段的语言和目标语言不同,会把口音带过去,并建议把 cfg_weight 设成 0 来减轻。XTTS-v2 的模型卡给出的片段长度是 6 秒。上面的建议出自 OpenAI 的指南,不过安静的房间和平稳的语气不花什么成本,录任何片段时都值得保留。

在自己的电脑上用开源模型克隆

开源模型不需要审批,也不会把东西发给哪家厂商,但同样没有同意这一步,所以责任在你身上。F5-TTS 有一个简单的命令行。它接受一段参考录音,如果有的话,再加上这段录音里说的话,然后用这个声音念新的文字。把参考文字留空,就由一个 ASR 模型来转写这段录音,代价是多占一些 GPU 内存。

Chatterbox 通过 Python 做同样的事:model.generate(text, audio_prompt_path="your_10s_ref_clip.wav"),README 示例里的文件名写着 10 秒,但 README 没有写明时长。它的 README 说,这个项目在 2026 年 8 月退役,不再维护,代码作为存档继续公开。权重的许可之间的差别,比命令之间的差别更大。

pip install f5-tts

# Leave --ref_text "" will have ASR model transcribe (extra GPU memory usage)
f5-tts_infer-cli --model F5TTS_v1_Base \
--ref_audio "provide_prompt_wav_path_here.wav" \
--ref_text "The content, subtitle or transcription of reference audio." \
--gen_text "Some text you want TTS model generate for you."
三个能用一段录音克隆声音的开源模型
XTTS-v2ChatterboxF5-TTS
需要你提供什么约 6 秒的片段一小段录音,README 没写时长(示例文件名里写着 10s)一段参考录音,可选再加上它的文字
语言17 种Multilingual V3 支持 23 种以上Emilia 中英文模型,更多语言靠自定义推理
权重的许可Coqui Public Model LicenseMIT,见它的 Hugging Face 模型卡CC-BY-NC,非商业
能在自己的电脑上运行是是是
是否给生成内容打标记模型卡没有写有,每个文件都带 PerTh 水印README 没有写

来源:Hugging Face: coqui/XTTS-v2 model card (2026年11月6日 查阅);GitHub: resemble-ai/chatterbox README (2026年11月6日 查阅);Hugging Face: ResembleAI/chatterbox model card (2026年11月6日 查阅);GitHub: SWivid/F5-TTS README (2026年11月6日 查阅)

克隆任何声音之前要守的规则

关于一个人的声音,法律因国家和州而异,这一课不讲法律。发布或出售克隆出来的音频之前,请先问律师。厂商自己定的规则更容易读懂。OpenAI 的页面把其中三条反复讲,拿来当任何克隆的底线都合适:说话人同意,不冒充任何人,告诉听众。

OpenAI 在 prompt-to-voice 下面的“负责任使用”清单里说了这几条。负责任地使用声音,不要冒充他人,使用成年人的声音。告诉听众这段语音是 AI 生成的,同时保留任何溯源元数据或水印。它还说,声音不保证是独一无二的,因为别人可能生成相似的声音。指南把这份清单印在描述声音那一节下面。对录音声音,它要求同意录音,并指向 Text-to-Speech Supplemental Agreement 看更多条款,所以让录音声音也照着整份清单做,是这一课的建议,不是指南在那里印出的话。

取自 OpenAI 的自定义声音指南,以及 Chatterbox、Kokoro、XTTS-v2 和 F5-TTS 的页面,2026 年 11 月 6 日阅读。
谁它的要求或做法
OpenAI,录音声音说话人的同意录音,读的是一句固定的声明,样本要来自同一个人。指南指向它的 Text-to-Speech Supplemental Agreement 看更多条款
OpenAI,描述声音它的“负责任使用”清单要求成年人的声音、不得冒充、说明语音由 AI 生成,并保留溯源信号。它的提示词建议说,不要要求具名的人、公众人物或虚构角色
Chatterbox每个文件都带 PerTh 水印,README 要求你不要用这个模型做坏事
Kokoro它的模型卡说,训练中没有用开源 TTS 模型或“custom voice clones”(自定义声音克隆)生成的合成音频,这说的是它的训练数据,不是这个模型能做什么
XTTS-v2 和 F5-TTS它们的页面给权重定了许可,没有提到同意,所以这份责任仍在你身上

检查一段音频,以及干净的结果意味着什么

OpenAI 的 Content Provenance API 会检查一个图片或音频文件里有没有它自己的溯源信号。把文件发给 POST /v1/content_provenance_checks,或者用 openai.com/verify 的网页工具。对音频来说,这个信号是 SynthID,一种嵌在音频本身里的水印,经过一些编辑后可能还在。C2PA Content Credentials 是图片上的签名元数据,编辑、转换或分享文件都可能把它去掉。

not_detected 的意思是工具没有找到支持的信号。如果元数据被去掉了、水印被削弱了、音频来自旧模型,或者早于这些信号出现,这段音频仍然可能出自 OpenAI。这个工具也检测不出其他公司的模型,页面还说它不是通用的 AI 检测器。Chatterbox 自己的水印有单独的检查办法:它的 README 给了一段短脚本,先用 perth.PerthImplicitWatermarker(),再调用 get_watermark,带水印的音频返回 1.0,没有则返回 0.0。

取自 OpenAI 的内容溯源指南,2026 年 11 月 6 日阅读。
信号适用于检查什么
C2PA Content Credentials图片带签发者和 AI 使用信息的签名元数据
SynthID图片和音频直接嵌在受支持媒体里的水印

常见错误

  • 因为工具没要求同意,就在没有说话人同意的情况下克隆声音。
  • 凭记忆念同意声明。和台词有任何出入,OpenAI 都会拒绝。
  • 在嘈杂或有回声的房间里录样本,或者用和想要的不一样的状态去录,因为模型两样都会复制。
  • 把 F5-TTS 的 CC-BY-NC 权重用在收费的工作上。
  • 参考片段用一种语言,目标文字用另一种,然后奇怪口音是怎么回事。
  • 把 not_detected 当成这段音频是真人的证明。
  • 以为描述出来的声音能在文字转语音 API 里用,而指南把它限定在 GPT-Live。

动手试试

  • 给一个声音写一段描述,用九项特质里的三项,再改其中一项,看看哪里变了。
  • 读一遍上面的 F5-TTS 命令和 Chatterbox 那一行,写下这两个权重里,哪一个可以用在收费项目里。
  • 在安静的房间里录一小段你自己的声音,用开源模型克隆它,再把结果标注为合成的。
  • 用 openai.com/verify 的网页工具检查一小段音频,记下 not_detected 的结果能说明什么、不能说明什么。

下一课:AI 音乐

声音念出来的是话。AI 音乐则把一种风格和几句歌词变成一整首歌,它也有自己的授权问题:模型、托管工具,以及你能发布什么。

自测一下

  1. 在 OpenAI 用录音生成声音之前,说话人必须做什么?

    查看答案

    B. 在单独的一段录音里读一句固定的同意声明 指南要求有一段同意录音,说话人在里面读它给的某一句声明,并说只要和台词有任何出入就会失败。

  2. XTTS-v2 的模型卡说,多长的片段就足够克隆一个声音?

    查看答案

    C. 大约 6 秒 模型卡说,它用一段 6 秒的音频,就能把声音克隆到不同的语言里,不需要几个小时的数据。

  3. 关于 F5-TTS,下面哪句话是对的?

    查看答案

    A. 它的预训练模型是 CC-BY-NC,属于非商业许可 它的 README 把代码放在 MIT 之下,但因为 Emilia 训练数据,预训练模型采用 CC-BY-NC 许可。

  4. OpenAI 的溯源检查对一段音频返回了 not_detected。这说明什么?

    查看答案

    D. 只说明没有找到受支持的信号 页面说,元数据被去掉、水印被削弱、旧模型或其他公司的模型,都可能返回 not_detected。

常见问题

AI 能用几秒钟的音频克隆我的声音吗?

部分开源模型可以。XTTS-v2 的模型卡说,一段 6 秒的短音频就能克隆,Chatterbox 的 README 把示例文件命名为 your_10s_ref_clip.wav,没有写明时长。OpenAI 对录音声音最长接受 60 秒,它的指南说,样本的质量决定声音的质量。

克隆别人的声音合法吗?

这取决于你住在哪里,以及克隆出来的声音怎么用,这一课不提供法律意见。厂商的要求要清楚得多。对录音声音,OpenAI 要求有说话人的同意录音;它对描述声音的“负责任使用”清单说只限成年人的声音、不得冒充。所以先取得说话人的同意。

可以克隆名人的声音吗?

用 OpenAI 的自定义声音不行。它的指南说不要冒充他人,对描述出来的声音,不要要求模仿具名的人、公众人物或虚构角色。录音声音也需要那个人自己的同意录音。开源模型的页面里没有这样的把关,所以决定要由你自己来做。

哪个开源的声音克隆模型可以免费商用?

Chatterbox 的 README 把代码放在 MIT 之下,它的 Hugging Face 模型卡把许可写成 MIT,不过这个项目已经退役。XTTS-v2 用的是 Coqui Public Model License,出售产出的内容之前要先读它的条款。F5-TTS 的代码是 MIT,但它的预训练模型是 CC-BY-NC,属于非商业许可。

怎样判断一段音频是不是 AI 做的?

对 OpenAI 的音频,可以上传到 openai.com/verify,或者发给 Content Provenance API,它会找 SynthID。得到 not_detected 说明不了多少,因为元数据被去掉、水印被削弱、以及其他公司的模型,都会得到这个结果。

资料来源

  1. OpenAI API docs: Custom voices (2026年11月6日 查阅)https://developers.openai.com/api/docs/guides/custom-voices
  2. OpenAI API docs: Content provenance (2026年11月6日 查阅)https://developers.openai.com/api/docs/guides/content-provenance
  3. Hugging Face: coqui/XTTS-v2 model card (2026年11月6日 查阅)https://huggingface.co/coqui/XTTS-v2
  4. GitHub: resemble-ai/chatterbox README (2026年11月6日 查阅)https://github.com/resemble-ai/chatterbox
  5. Hugging Face: ResembleAI/chatterbox model card (2026年11月6日 查阅)https://huggingface.co/ResembleAI/chatterbox
  6. GitHub: SWivid/F5-TTS README (2026年11月6日 查阅)https://github.com/SWivid/F5-TTS
  7. Hugging Face: SWivid/F5-TTS model card (2026年11月6日 查阅)https://huggingface.co/SWivid/F5-TTS
  8. Hugging Face: hexgrad/Kokoro-82M model card (2026年11月6日 查阅)https://huggingface.co/hexgrad/Kokoro-82M

分享本节课

先看看各家语音厂商要你做什么

托管的语音平台,在克隆声音之前要你提供的同意各不相同。Mindket 在一课里把它们做了对比。

对比语音工具

本节课的 Markdown 版本 · AI 语音与音乐:语音合成、声音克隆与歌曲 · 全部课程