iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
AI Engineering

《AI Companion:30 天打造一個會聽、會說、會記得你的 AI 夥伴》系列 第 4

Day 04|讓 AI 用熟悉的聲音說話:Voice Cloning 實作

  • 分享至 

  • xImage
  •  

Day 03 完成 TTS 後,AI 已經可以把文字轉成語音。

但一般 TTS 使用的是模型原本提供的聲線。如果希望 AI Companion 不只是「會說話」,而是能用指定的人聲說出新的內容,就需要進一步加入 Voice Cloning

今天的目標很單純:

參考真人錄音

新的輸入文字

Voice Cloning

產生相似聲線的新語音

Playback

Voice Cloning 是什麼?

一般 TTS 只需要輸入文字,就能使用預設聲線產生語音。

Voice Cloning 則會額外提供一段 Reference Audio,讓模型參考說話者的聲音特徵,再用相似的聲線說出原本沒有錄過的新句子。

這次我沿用 Day 03 測試過的 Qwen3-TTS,並透過 Voicebox 封裝 Voice Cloning 流程。

Reference Audio 要多長?

今天第一個想測的是:參考音訊越長,效果會不會越好?

我從同一段 18.02 秒的真人錄音中裁出三組:

  • 5 秒
  • 10 秒
  • 18.02 秒

接著固定輸入同一句:

今天天氣很好,我們一起出去走走吧。

另外還遇到一個實作上的問題。

Qwen3-TTS 除了 Reference Audio,也需要對應的 Reference Text。如果把 18 秒完整逐字稿直接配給 5 秒音檔,文字裡就會出現音訊根本沒有說到的內容。

所以最後的流程變成:

Reference Audio

裁切不同長度

Whisper 個別重新辨識

取得對應 Reference Text

Voice Cloning

實測速度

正式測試前先進行一次 Warm-up,並把模型載入時間和推論時間分開計算。

模型載入:約 3.39 秒
Warm-up:約 3.25 秒

Reference 推論時間 產生音訊 RTF
5 秒 7.26s 4.24s 1.71
10 秒 8.87s 4.80s 1.85
18.02 秒 9.34s 4.40s 2.12

可以看到這次測試中,Reference 越長,推論時間也跟著增加。

從 5 秒到 18 秒,RTF 從 1.71 增加到 2.12,大約增加 24%。

和一般 TTS 差多少?

Day 03 使用的 Kokoro 82M,平均 RTF 約為:

0.046

而今天 Qwen3-TTS Voice Cloning:

1.71~2.12

也就是大約慢了 37~46 倍

這也讓我更確定目前採用雙 TTS 是比較合理的:

一般即時聊天
→ Kokoro 82M

需要指定/熟悉聲線
→ Qwen3-TTS Voice Cloning

而不是所有對話都使用 Voice Cloning。

聲音自然,不一定代表像本人

實際聽 Voice Cloning 的結果時,我發現不能只用「好不好聽」來判斷效果。

有些語音聽起來很自然、發音也很順,但仔細聽會覺得聲音沒有那麼像原本的人;相反地,有些聲線很接近 Reference Audio,但說話的節奏或語氣可能沒有那麼自然。

所以這次我主要從兩個方向來比較:

  • 自然度:聽起來順不順、像不像正常人在說話
  • 聲線相似度:產生的聲音和原本的人有多像

至於 Reference Audio 越長是不是就一定越像本人,還是要把 5 秒、10 秒和 18 秒的結果實際聽過之後才能確定。

今天完成了什麼?

最後三組 Reference 都成功產生新語音,而且 ASR 回聽的新句子皆辨識正確。

今天最大的收穫是:Voice Cloning 成功,不代表它適合所有對話。

它可以提供指定聲線,但也需要付出更高的推論成本。因此在 AI Companion 中,一般聊天仍然以低延遲 TTS 為主,而 Voice Cloning 留給真正需要熟悉聲音的情境。

下一步 Day 05,就要第一次把:

STT → LLM → TTS

真正串成一條完整的語音對話 Pipeline。


上一篇
Day 03|讓 AI 開口說話:從 Text-to-Speech 開始
下一篇
Day 05|STT → LLM → TTS:第一次讓 AI Companion 真正開口對話
系列文
《AI Companion:30 天打造一個會聽、會說、會記得你的 AI 夥伴》6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言