<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>语音克隆 on Chico's Tech Blog</title><link>https://realtime-ai.chat/tags/%E8%AF%AD%E9%9F%B3%E5%85%8B%E9%9A%86/</link><description>Recent content in 语音克隆 on Chico's Tech Blog</description><image><title>Chico's Tech Blog</title><url>https://github.com/chicogong.png</url><link>https://github.com/chicogong.png</link></image><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Mon, 27 Apr 2026 11:00:00 +0800</lastBuildDate><atom:link href="https://realtime-ai.chat/tags/%E8%AF%AD%E9%9F%B3%E5%85%8B%E9%9A%86/index.xml" rel="self" type="application/rss+xml"/><item><title>语音克隆的滥用与检测</title><link>https://realtime-ai.chat/posts/voice-clone-detection/</link><pubDate>Mon, 27 Apr 2026 11:00:00 +0800</pubDate><guid>https://realtime-ai.chat/posts/voice-clone-detection/</guid><description>语音克隆已经以假乱真,这篇讲防御侧:诈骗与声纹绕过的真实形态、合成语音检测能做到多少、音频水印如何溯源,以及为什么这是一场猫鼠游戏。</description><content:encoded><![CDATA[<p>2025 年第一季度,美国境内利用深度伪造语音的电话诈骗(vishing)环比涨了 <strong>1600% 多</strong>。同一年 FBI 的互联网犯罪报告里,跟 AI 相关的诈骗投诉超过 2.2 万起,涉案金额 8.93 亿美元。</p>
<p>这些数字背后有一个让人不舒服的事实:<strong>克隆一个人的声音,现在只需要三秒公开音频</strong>。你公司高管参加过的每一场财报电话会、每一次大会演讲、每一段播客采访,都躺在公网上,对想用它的人来说就是现成的训练素材。</p>
<p>克隆技术本身已经不是新闻——这个博客之前写过《声音克隆:60秒复制你的声音,然后呢?》。这篇讲&quot;然后&quot;的另一面:声音一旦能被以假乱真地复制,我们靠什么分辨真假,以及这件事到底能做到多好。</p>
<h2 id="滥用长什么样三种不是一种">滥用长什么样:三种,不是一种</h2>
<p>把&quot;AI 语音诈骗&quot;当成一个笼统的词,会让你低估它。它至少是三类性质不同的攻击。</p>
<p><strong>第一类是社工诈骗。</strong> 最经典的是&quot;亲人求救&quot;:伪造你孩子的哭腔打电话说出事了急需用钱。但 2025 年真正造成大额损失的是企业版——伪造 CEO 或 CFO 的声音,指示财务转账。香港那起 2.56 亿港元的案子是个标志:财务员工参加了一场视频会议,会议里的 CFO 和同事<strong>全是 AI 生成的</strong>,人脸、口型、声音都对得上,他一开始怀疑是钓鱼,但一场&quot;活的&quot;视频会把他的怀疑全打消了,直到事后跟总部人工核对才发现。</p>
<p><strong>第二类是声纹绕过。</strong> 不少银行和券商用&quot;我的声音就是我的密码&quot;做身份验证。克隆语音直接攻击这套系统。它比社工诈骗更隐蔽,因为受害的不是某个被吓住的人,而是一套<strong>自动化的认证流程</strong>——没有人在场可以&quot;觉得不对劲&quot;。2025 年 1 到 8 月,某金融机构的活体检测被 AI 伪造尝试绕过了 8000 多次。</p>
<p><strong>第三类是假音频内容。</strong> 伪造公众人物的录音、伪造一段&quot;泄露的会议录音&quot;、给某段视频配上从没说过的话。它不针对个人钱包,针对的是舆论和信任。2024 年美国大选期间出现过伪造拜登声音的自动外呼电话,就是这一类。</p>
<p>三类攻击的防御手段完全不同。社工诈骗要靠流程和人的警觉,声纹绕过要靠活体检测,假内容要靠溯源和检测——别指望一招通吃。</p>
<h2 id="检测合成语音能做到但有前提">检测合成语音:能做到,但有前提</h2>
<p>检测分两条路:<strong>被动检测</strong>(拿到一段音频,判断它是不是 AI 合成的)和<strong>主动标记</strong>(生成时就打上记号)。先说被动。</p>
<p>被动检测模型在学术基准上的成绩相当好。这个领域有一套延续多年的评测体系——从早年的 ASVspoof 挑战赛,到 2026 年 ICME 的环境感知语音检测挑战赛(ESDD2)、ACM Multimedia 的全类型音频伪造检测挑战赛(AT-ADD)。检测模型也在进步:用 Whisper 这类大规模语音模型抽特征,比传统声学特征的等错误率(EER)低了约 21%,再针对反伪造任务微调 Whisper 编码器,还能再降近 15%。</p>
<p>听起来不错。但&quot;在干净数据集上 EER 很低&quot;和&quot;在真实世界管用&quot;之间,差了一整条鸿沟。</p>
<pre class="mermaid">flowchart TD
  A[一段语音] --> B{被动检测模型}
  B -->|实验室条件| C[准确率很高]
  B -->|真实世界| D[麻烦开始了]
  D --> E[电话信道压缩]
  D --> F[录音回放/翻录]
  D --> G[训练时没见过的新 TTS]
  D --> H[环境噪声/混响]
  style C fill:#d8f0d8,stroke:#5aa05a
  style D fill:#fde7c2,stroke:#e8b23c
</pre><p>真实世界里有三个东西在持续打击检测准确率:</p>
<ul>
<li><strong>信道劣化。</strong> 一通诈骗电话经过窄带编码、丢包、压缩,把那些&quot;AI 痕迹&quot;——比如不自然的高频细节、过于平滑的频谱——磨掉了大半。检测模型训练时见的是高保真音频,推理时拿到的是被电话线榨过的音频。</li>
<li><strong>回放攻击。</strong> 攻击者把合成音频用音箱播出来、再用麦克风录下来。这一录一放,等于给假音频套了一层&quot;真实物理世界&quot;的外衣,很多检测器会被骗过。专门为这种场景做的数据集(比如 EchoFake)就是冲着这个问题来的。</li>
<li><strong>泛化。</strong> 这是最根本的。检测模型本质上是在学&quot;已知的几种 TTS 系统留下的指纹&quot;。一个训练时没见过的新模型出来,检测器对它就是睁眼瞎。而新的 TTS 模型几乎每个月都在出。</li>
</ul>
<p>所以我的判断是:<strong>被动检测有用,但不能当成单点防线。</strong> 它适合做大规模内容平台的初筛、做事后取证,不适合做&quot;接到电话实时告诉你这是假的&quot;那种承诺——任何号称能实时、高准确、对所有声音通杀的检测产品,你都该多问几句它在什么数据上测的。</p>
<h2 id="声纹活体防的是录音未必防得住克隆">声纹活体:防的是&quot;录音&quot;,未必防得住&quot;克隆&quot;</h2>
<p>声纹认证系统自己也有反伪造机制,通常叫&quot;活体检测&quot;(liveness detection)。但要分清它原本是防什么的。</p>
<p>活体检测最早是为了防<strong>回放攻击</strong>——防止有人拿一段你说话的录音来冒充你。它会去找录音特有的痕迹:音箱的频响特性、二次录制引入的失真、缺少真人说话该有的呼吸和微小变化。对着录音,这套机制管用。</p>
<p>问题是,<strong>高质量的神经网络合成语音不是&quot;录音&quot;</strong>。它没有音箱频响的指纹,它的呼吸、停顿、韵律是模型直接生成的,看起来比一段翻录干净得多。换句话说,为防回放设计的活体检测,面对端到端克隆语音时,部分假设已经不成立了。</p>
<p>更麻烦的是&quot;语音变形&quot;(voice morphing)攻击——把攻击者自己的真实语音和目标人的声纹特征混合,生成的音频既带着真人说话的所有物理特征(因为底子是真人录的),又带着目标人的声纹。这种攻击专门钻活体检测和声纹比对之间的缝。</p>
<p>现在还有&quot;深度伪造即服务&quot;(Deepfake-as-a-Service)——黑产把克隆和绕过工具打包成服务卖,一套合成身份、克隆声音的素材,在地下市场只要五美元。攻击的门槛已经低到不需要任何技术。</p>
<p>我的看法直接一点:<strong>2026 年,&ldquo;声音即密码&quot;这个产品设计应该被淘汰了。</strong> 声纹可以作为<strong>一个</strong>信号参与风险评分,但不能作为单一凭证去解锁转账、改密码这类高危操作。把一个已经能被三秒素材复制的东西当成身份证明,是设计缺陷,不是技术细节。</p>
<h2 id="音频水印把检测的难题倒过来">音频水印:把检测的难题倒过来</h2>
<p>被动检测难,难在它要从音频里&quot;反推&quot;真假。<strong>主动水印</strong>换了个思路:在 AI 生成语音的那一刻,就在音频里嵌一个人耳听不见、但机器能检出的标记。这样要回答的问题从&quot;这段音频是不是假的&quot;变成了&quot;这段音频里有没有我的水印&rdquo;——后者好回答得多。</p>
<p>Meta 的 AudioSeal 是目前最有代表性的方案。它的设计有两个关键点值得说:</p>
<p><strong>一是定位能力。</strong> 它不只能判断&quot;整段音频有没有水印&quot;,还能精确到样本级——在 16kHz 采样率下,能指出每一个 1/16000 秒的片段是不是带水印的。这意味着如果有人把一句真人录音里<strong>只抠掉几个字、换成合成的</strong>,水印检测能定位到那几个字。</p>
<p><strong>二是检测速度。</strong> 它用单次前向的检测器,比靠水印密钥逐一解码的老方法快两个数量级。这点对落地很重要——内容平台要扫的是每天上传的海量音频,检测器慢一点,整个方案就不可行。</p>
<p>水印的真正价值不在&quot;抓坏人&quot;,在<strong>给善意内容一个可以自证清白的办法</strong>。一家正规 TTS 服务给自己所有输出打上水印,等于主动声明&quot;这是我生成的&quot;;新闻机构给自己的真实采访录音打上来源标记,等于主动声明&quot;这是真的&quot;。社会需要的不是&quot;找出所有假音频&quot;,而是逐步建立&quot;没标记的内容默认不可信&quot;的预期。</p>
<p>但水印不是银弹,它有两个硬伤:</p>
<table>
  <thead>
      <tr>
          <th>问题</th>
          <th>具体表现</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>只能管&quot;听话的人&quot;</td>
          <td>开源模型、自己训练的模型、刻意去水印的攻击者,根本不会嵌水印。水印覆盖不到真正想作恶的人。</td>
      </tr>
      <tr>
          <td>鲁棒性有上限</td>
          <td>重度压缩、变调、加噪、片段裁剪,都可能削弱甚至擦除水印。AudioSeal 这类方案在鲁棒性上做了很多工作,但&quot;绝对擦不掉&quot;做不到。</td>
      </tr>
  </tbody>
</table>
<p>所以水印解决的是&quot;占大多数的正规生成内容如何被标记&quot;的问题,不解决&quot;恶意攻击者&quot;的问题。把它和被动检测、和内容来源标准(比如 C2PA 那套溯源元数据)叠在一起,才构成一张有意义的网。</p>
<h2 id="为什么这注定是猫鼠游戏">为什么这注定是猫鼠游戏</h2>
<p>讲到这里该说一句不太好听的:<strong>合成语音检测,在原理上就是一场打不赢的军备竞赛。</strong></p>
<p>原因不在哪个团队不够努力,在结构。生成模型和检测模型之间存在一个根本的不对称——</p>
<pre class="mermaid">flowchart LR
  G[生成方] -->|留下可检测痕迹| D[检测方学会识别]
  D -->|痕迹被公开| G2[生成方针对性消除痕迹]
  G2 --> D2[检测方需要新痕迹]
  D2 -.循环.-> G
  style G fill:#fde7c2,stroke:#e8b23c
  style G2 fill:#fde7c2,stroke:#e8b23c
</pre><p>每当检测方发现一类&quot;AI 痕迹&quot;并公开(发论文、开源模型、办挑战赛),这个发现立刻变成生成方的优化目标——下一代 TTS 训练时,只要把&quot;骗过这个检测器&quot;加进损失函数,痕迹就被磨掉了。检测方天然滞后,因为它只能对<strong>已经存在</strong>的生成模型做出反应。</p>
<p>更不利的是终点不一样。生成方的目标是&quot;无限逼近真人&quot;,而真人语音是存在的、有上限的;一旦合成语音在物理特征上和真人无法区分,检测方就<strong>没有信号可用了</strong>——不是检测器不够好,是信息论意义上无东西可检。</p>
<p>那是不是就躺平?不是。结论应该是:<strong>别把宝押在&quot;检测出假的&quot;上,要把重心移到&quot;验证出真的&quot;。</strong></p>
<ul>
<li>检测假音频是开放问题,可能永远做不到 100%。</li>
<li>验证真音频是封闭问题:水印、数字签名、内容来源链(C2PA),这些是可以做到接近确定的——因为它不依赖猜测,依赖密码学。</li>
</ul>
<p>防御的长期方向,是让&quot;可信&quot;成为需要主动证明的东西,而不是默认状态。</p>
<h2 id="平台和个人各自能做什么">平台和个人,各自能做什么</h2>
<p>技术讲完,落到行动。</p>
<p><strong>对平台和企业:</strong></p>
<ul>
<li><strong>高危操作做带外验证(out-of-band)。</strong> 转账、改预留信息、授权放款,绝不能只凭一通电话或一段语音确认。换一个独立信道——回拨已登记的号码、在内部系统二次确认、设一个对方知道你知道的口令。香港那 2.56 亿的案子,只要一通打回总部的电话就能拦下。</li>
<li><strong>声纹只做风控信号,不做唯一凭证。</strong> 把它和设备指纹、行为特征、信道分析一起喂进风险评分,任何一个高危动作都要多因子。</li>
<li><strong>自家生成的语音一律打水印、留来源标记。</strong> 这不是为了抓别人,是为了让你的正规内容可被验证,也是给行业立规矩。</li>
<li><strong>检测模型当初筛和取证用,别对外承诺实时通杀。</strong> 同时持续用新出的 TTS 系统更新训练集——你的检测器和攻击者用的生成器,得在同一个时代。</li>
</ul>
<p><strong>对个人:</strong></p>
<ul>
<li><strong>认知层面接受一件事:听到的声音不再等于身份证明。</strong> 这是 2026 年最需要更新的常识。电话里&quot;你妈的声音&quot;、&ldquo;你老板的声音&rdquo;,都不构成&quot;确实是本人&quot;的证据。</li>
<li><strong>和家人约一个口令。</strong> 一个只有你们知道、不会出现在任何社交媒体上的词。接到&quot;家人急用钱&quot;的电话,先问口令。土办法,但有效。</li>
<li><strong>挂掉,回拨。</strong> 任何涉及钱或敏感信息的来电,无论声音多像,挂掉,用你通讯录里<strong>原本存的</strong>号码打回去。克隆语音能伪造声音,伪造不了你主动拨出的这通电话。</li>
<li><strong>少喂素材。</strong> 三秒就够克隆。公开演讲、播客、短视频里的长段清晰人声,本质上是在公网上发布自己的声纹。这不是让你别说话,是让你知道代价。</li>
</ul>
<p>最后留一句判断:这场对抗里,纯技术解(更强的检测器)只能拖时间,拖不到终局。真正能把损失压下去的,是<strong>流程</strong>——带外验证、口令、回拨这些听起来很&quot;低科技&quot;的东西。当声音不再可信,可信的得是别的:你拨出去的号码、你和家人之间的暗号、系统里另一个独立的确认信道。技术制造了这个问题,但解决它,要靠把&quot;信任&quot;重新放回那些不能被三秒音频复制的地方。</p>
<hr>
<p><em>参考来源:<a href="https://www.blackfog.com/fbi-warning-ai-voice-phishing-how-to-stop-threat/">FBI AI 语音钓鱼预警</a>、<a href="https://cybelangel.com/blog/deepfake-ceo-fraud-how-voice-cloning-targets-us-executives/">深度伪造 CEO 诈骗案例分析</a>、<a href="https://arxiv.org/abs/2401.17264">AudioSeal:语音克隆的主动检测水印</a>、<a href="https://arxiv.org/html/2601.07303v3">ESDD2 环境感知语音伪造检测挑战赛</a>、<a href="https://www.biometricupdate.com/202604/voice-ai-expands-attack-surface-for-speaker-biometrics-as-apis-proliferate">语音生物识别攻击面扩大</a>、<a href="https://www.biometricupdate.com/202601/deepfake-as-a-service-revolutionizing-biometrics-spoofing-and-identity-fraud-report">深度伪造即服务报告</a>。</em></p>
]]></content:encoded></item><item><title>TTS模型微调：用自己的声音训练语音模型</title><link>https://realtime-ai.chat/posts/tts-finetuning/</link><pubDate>Fri, 16 Jan 2026 10:00:00 +0800</pubDate><guid>https://realtime-ai.chat/posts/tts-finetuning/</guid><description>TTS 模型微调实战:用 XTTS、Fish Speech 训练你自己的声音,语音克隆的完整步骤。</description><content:encoded><![CDATA[<h2 id="两个主流开源方案">两个主流开源方案</h2>
<table>
  <thead>
      <tr>
          <th>模型</th>
          <th>特点</th>
          <th>数据需求</th>
          <th>显存要求</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>XTTS v2</td>
          <td>多语言，效果稳定</td>
          <td>2-20分钟</td>
          <td>12GB+</td>
      </tr>
      <tr>
          <td>Fish Speech</td>
          <td>中文效果好，速度快</td>
          <td>3-10秒起</td>
          <td>4GB+</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="方案一xtts微调">方案一：XTTS微调</h2>
<h3 id="准备工作">准备工作</h3>
<p><strong>硬件要求</strong>：</p>
<ul>
<li>GPU：12GB显存以上（推荐16GB）</li>
<li>内存：16GB以上</li>
</ul>
<p><strong>数据要求</strong>：</p>
<ul>
<li>至少2-3分钟清晰录音</li>
<li>推荐5-20分钟效果更好</li>
<li>WAV格式，16kHz以上</li>
</ul>
<h3 id="安装">安装</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git clone https://github.com/daswer123/xtts-finetune-webui
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> xtts-finetune-webui
</span></span><span class="line"><span class="cl">pip install -r requirements.txt
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="数据格式">数据格式</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">dataset/
</span></span><span class="line"><span class="cl">├── audio/
</span></span><span class="line"><span class="cl">│   ├── 001.wav
</span></span><span class="line"><span class="cl">│   ├── 002.wav
</span></span><span class="line"><span class="cl">│   └── ...
</span></span><span class="line"><span class="cl">└── metadata.csv
</span></span></code></pre></td></tr></table>
</div>
</div><p>metadata.csv 格式：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">audio_file|text|speaker_name
</span></span><span class="line"><span class="cl">audio/001.wav|今天天气真不错。|my_voice
</span></span><span class="line"><span class="cl">audio/002.wav|我们去公园散步吧。|my_voice
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="训练配置">训练配置</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="c"># 关键参数</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">batch_size</span><span class="p">:</span><span class="w"> </span><span class="m">2</span><span class="w">          </span><span class="c"># 显存不够就调小</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">epochs</span><span class="p">:</span><span class="w"> </span><span class="m">10-50</span><span class="w">          </span><span class="c"># 数据少就多跑几轮</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">learning_rate</span><span class="p">:</span><span class="w"> </span><span class="m">5e-6</span><span class="w">    </span><span class="c"># 别调太大，容易过拟合</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><h3 id="常见问题">常见问题</h3>
<p><strong>问题1：训练后声音变奇怪</strong>
→ 过拟合了，减少epochs或增加数据</p>
<p><strong>问题2：声音不像</strong>
→ 数据太少或质量不好，检查录音</p>
<p><strong>问题3：显存不够</strong>
→ 减小batch_size，或用gradient accumulation</p>
<hr>
<h2 id="方案二fish-speech微调">方案二：Fish Speech微调</h2>
<p>Fish Speech对中文友好，而且显存要求低。</p>
<h3 id="安装-1">安装</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git clone https://github.com/fishaudio/fish-speech
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> fish-speech
</span></span><span class="line"><span class="cl">pip install -e .
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="零样本克隆不用训练">零样本克隆（不用训练）</h3>
<p>Fish Speech支持用3-10秒音频直接克隆：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">fish_speech</span> <span class="kn">import</span> <span class="n">FishSpeech</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">model</span> <span class="o">=</span> <span class="n">FishSpeech</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 用参考音频生成</span>
</span></span><span class="line"><span class="cl"><span class="n">audio</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span>
</span></span><span class="line"><span class="cl">    <span class="n">text</span><span class="o">=</span><span class="s2">&#34;这是克隆后的声音&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">reference_audio</span><span class="o">=</span><span class="s2">&#34;reference.wav&#34;</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="微调效果更好">微调（效果更好）</h3>
<p>如果想要更像的效果，可以微调：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># 准备数据</span>
</span></span><span class="line"><span class="cl">python tools/prepare_data.py --input-dir ./my_audio --output-dir ./dataset
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 开始微调</span>
</span></span><span class="line"><span class="cl">python train.py --config configs/finetune.yaml --data-dir ./dataset
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="推理">推理</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 使用微调后的模型</span>
</span></span><span class="line"><span class="cl"><span class="n">audio</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span>
</span></span><span class="line"><span class="cl">    <span class="n">text</span><span class="o">=</span><span class="s2">&#34;现在声音更像了&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">voice_id</span><span class="o">=</span><span class="s2">&#34;my_custom_voice&#34;</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<h2 id="对比选择">对比选择</h2>
<table>
  <thead>
      <tr>
          <th>场景</th>
          <th>推荐</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>快速验证</td>
          <td>Fish Speech（零样本）</td>
      </tr>
      <tr>
          <td>中文场景</td>
          <td>Fish Speech</td>
      </tr>
      <tr>
          <td>多语言</td>
          <td>XTTS</td>
      </tr>
      <tr>
          <td>最高质量</td>
          <td>XTTS微调20分钟数据</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="训练技巧">训练技巧</h2>
<h3 id="1-不要贪多">1. 不要贪多</h3>
<ul>
<li>10分钟高质量数据 &gt; 1小时有底噪数据</li>
</ul>
<h3 id="2-监控过拟合">2. 监控过拟合</h3>
<ul>
<li>训练loss下降但生成效果变差 → 停止训练</li>
</ul>
<h3 id="3-多做对比">3. 多做对比</h3>
<ul>
<li>保存多个checkpoint，对比选最好的</li>
</ul>
<h3 id="4-参考音频很重要">4. 参考音频很重要</h3>
<ul>
<li>XTTS生成时用的参考音频影响很大</li>
<li>选一段最清晰、最有代表性的</li>
</ul>
<hr>
<h2 id="部署">部署</h2>
<p>训练好的模型可以用API服务起来：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">fastapi</span> <span class="kn">import</span> <span class="n">FastAPI</span>
</span></span><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">fish_speech</span> <span class="kn">import</span> <span class="n">FishSpeech</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="n">app</span> <span class="o">=</span> <span class="n">FastAPI</span><span class="p">()</span>
</span></span><span class="line"><span class="cl"><span class="n">model</span> <span class="o">=</span> <span class="n">FishSpeech</span><span class="p">(</span><span class="n">checkpoint</span><span class="o">=</span><span class="s2">&#34;my_model&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nd">@app.post</span><span class="p">(</span><span class="s2">&#34;/tts&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">generate_speech</span><span class="p">(</span><span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="n">audio</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">return</span> <span class="p">{</span><span class="s2">&#34;audio&#34;</span><span class="p">:</span> <span class="n">audio</span><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><hr>
<p>有问题留言。</p>
]]></content:encoded></item><item><title>声音克隆：60秒复制你的声音，然后呢？</title><link>https://realtime-ai.chat/posts/voice-cloning/</link><pubDate>Sat, 10 Jan 2026 14:00:00 +0800</pubDate><guid>https://realtime-ai.chat/posts/voice-cloning/</guid><description>声音克隆技术现状:60 秒复制一个人的声音有多容易,以及随之而来的诈骗风险与防范。</description><content:encoded><![CDATA[<h2 id="先说个真事">先说个真事</h2>
<p>朋友公司有人收到&quot;老板&quot;的语音消息，让转账50万。声音、语气都对，差点就转了。后来发现是AI克隆的——骗子从老板的抖音视频里扒了几十秒素材。</p>
<p>这就是现在声音克隆的水平：<strong>以假乱真</strong>。</p>
<hr>
<h2 id="60秒能干什么">60秒能干什么</h2>
<p>用ElevenLabs举例：</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="kn">from</span> <span class="nn">elevenlabs</span> <span class="kn">import</span> <span class="n">clone</span><span class="p">,</span> <span class="n">generate</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 上传60秒录音</span>
</span></span><span class="line"><span class="cl"><span class="n">voice</span> <span class="o">=</span> <span class="n">clone</span><span class="p">(</span>
</span></span><span class="line"><span class="cl">    <span class="n">name</span><span class="o">=</span><span class="s2">&#34;我的声音&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">files</span><span class="o">=</span><span class="p">[</span><span class="s2">&#34;sample.mp3&#34;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 让它说任何话</span>
</span></span><span class="line"><span class="cl"><span class="n">audio</span> <span class="o">=</span> <span class="n">generate</span><span class="p">(</span>
</span></span><span class="line"><span class="cl">    <span class="n">text</span><span class="o">=</span><span class="s2">&#34;这话我从没说过&#34;</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">voice</span><span class="o">=</span><span class="n">voice</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>就这么简单。效果好到专业人士都分辨不出。</p>
<hr>
<h2 id="能用来干什么">能用来干什么</h2>
<p><strong>正经用途：</strong></p>
<ul>
<li>有声书制作（成本从10万降到1千）</li>
<li>虚拟主播（24小时不下播）</li>
<li>游戏NPC配音（1000个NPC，1000种声音）</li>
<li>帮失声的人&quot;说话&quot;</li>
</ul>
<p><strong>不正经用途：</strong></p>
<ul>
<li>诈骗（前面说的那种）</li>
<li>伪造录音</li>
<li>未经授权用别人的声音</li>
</ul>
<hr>
<h2 id="怎么防骗">怎么防骗</h2>
<ol>
<li><strong>涉及转账，打电话确认</strong>。语音消息不算数。</li>
<li><strong>设暗号</strong>。家人之间约定一个只有你们知道的词。</li>
<li><strong>听细节</strong>。AI声音太&quot;完美&quot;——没有呼吸声、没有口水音、没有犹豫。</li>
</ol>
<hr>
<h2 id="怎么玩">怎么玩</h2>
<p><strong>免费方案：</strong> Coqui TTS（开源），需要自己部署</p>
<p><strong>付费方案：</strong> ElevenLabs，$11/月起，效果最好</p>
<p><strong>录音技巧：</strong></p>
<ul>
<li>安静环境</li>
<li>正常语速</li>
<li>至少60秒，内容越丰富越好</li>
</ul>
<hr>
<h2 id="配音演员会失业吗">配音演员会失业吗</h2>
<p>低端活会被抢：有声书旁白、广告配音、游戏NPC。</p>
<p>高端活抢不走：需要情感演绎的角色、艺术创作。</p>
<p><strong>新机会：</strong> 授权自己的声音收版权费、做AI配音指导。</p>
<hr>
<h2 id="最后">最后</h2>
<p>技术没有善恶，看人怎么用。</p>
<p>玩声音克隆记得：<strong>用自己的声音玩，别克隆别人的</strong>。</p>
<p>有问题留言。</p>
<hr>
<p><em>相关链接：<a href="https://elevenlabs.io/">ElevenLabs</a> | <a href="https://github.com/coqui-ai/TTS">Coqui TTS</a></em></p>
]]></content:encoded></item></channel></rss>