先來個小測驗。
下面兩段音檔,分別是一段真人親口說的聲音,另一段是 AI 生成的聲音。你分得出哪個是真的嗎?
(如果出現 403 錯誤,請試著用無痕視窗播放。)
音檔 A
音檔 B
答案在這裡:正解是 B,B 才是本人。
A 是用一個叫做 VoiceStudio 的應用程式,搭配 VoxCPM2 這個模型做出來的聲音複製。參考素材只有一段約 15 秒、請本人朗讀另一段文字的錄音而已。沒有使用雲端語音合成服務,而是在手邊的 Mac 上直接生成(模型事先已下載完成)。
怎麼樣?仔細比對的話或許能聽出來,但如果只是隨便一聽,應該很難分辨吧。
聲音錄音與複製聲音的公開,已取得本人同意。
VoiceStudio 是一款可在本機電腦上運作的語音 AI 桌面應用程式。它可以在不需要雲端、也不需要 API 金鑰的情況下,進行聲音複製與影片配音。它的特色之一是可以切換不同的語音生成模型,這次使用了以下兩個:
模型這次的用途VoxCPM2測驗音檔,以及「戰戰兢兢」「焦急」的比較。可以用文字指示說話方式OmniVoiceVoiceStudio 的預設模型。只用來比較平常的說話方式(不支援情緒指示)這次請公司內部成員協助,做了以下幾件事:
另外,也請本人用「戰戰兢兢」「焦急」兩種方式朗讀。對複製聲音也下達了相同意思的指示(「怖がりながら恐る恐る」以及英文的「panicking, rushed, speaking very fast」),看看連情緒也能不能模仿。
朗讀的文章如下:
喔,您好,我是山田。
關於前幾天請您準備的資料,我想在下週開會前先稍微跟您討論一下,所以打電話來。
我之後會再與您聯絡。
先麻煩您了。
結論
複製聲音的範本,只有這一段 15.3 秒的錄音。請本人朗讀的是另一段不同於電話文章的內容,如下:
你好。今天我是為了測試 AI 語音合成,正在朗讀這段文字。用的是平常的聲音,語速稍微慢一點。
範本錄音(公司內部成員的聲音)
測驗中的兩段音檔,正是這個比較結果(測驗中的 A 是 VoxCPM2 複製聲音)。另外也用 OmniVoice 做了參考,整理成數字如下:
說話速度(假名/秒)音高與本人錄音的相似度本人5.58108Hz—複製聲音(VoxCPM2)6.21105Hz0.809複製聲音(OmniVoice)5.5499Hz0.825(複製聲音各生成 3 次,取中位數。「相似度」是指與本人錄音的聲音接近程度,以 0 到 1 表示,越接近 1 越相似。定義見檢證方法中的「評估」)
以下並列本人以「戰戰兢兢」「焦急」方式朗讀的錄音,以及對複製聲音(VoxCPM2)下達相同意思指示後生成的音檔。
本人・戰戰兢兢
複製聲音・指示「怖がりながら恐る恐る」
本人・焦急
複製聲音・指示「panicking, rushed, speaking very fast」
說話速度(假名/秒)音高與本人相同讀法的相似度本人・平常5.58108Hz—本人・戰戰兢兢6.09138Hz—本人・焦急8.54151Hz—複製聲音・無指示6.21105Hz—複製聲音・「怖がりながら恐る恐る」7.0793Hz0.476複製聲音・「panicking, rushed, speaking very fast」8.4093Hz0.529(複製聲音的數值皆為各生成 3 次的中位數。上方可聽到的音檔,是三次中的其中一個。選哪一個,寫在最後的「關於公開的音檔」中)
另外,無指示的複製聲音與有指示的複製聲音,在 VoiceStudio 內部的生成方式也不同(詳見檢證方法)。因此,下面所見的差異中,凡是拿有無指示的複製聲音互相比較的部分(速度、音高、相似度),除了指示本身的效果外,也包含了生成方式不同所造成的影響。
有趣的是,即使是同一個人的錄音,只要朗讀方式不同,「相似度」也會明顯下降。
比較項目相似度範本錄音 與 本人・平常0.881範本錄音 與 本人・焦急0.629範本錄音 與 本人・戰戰兢兢0.600即使是同一個人的聲音,只要情緒加進去,這個數值也會大幅變動。因此,單靠「相似度」很難判斷情緒是否被成功重現。結果 2 中約 0.50 的數字,與其說是「聲音變成別人了」,不如說是「朗讀方式不同」所造成的影響更大。
複製聲音本身已經做得相當像本人了。不過,要靠文字指示來改變情緒,似乎還需要再下一些工夫。
項目內容機器Mac(Apple M4、記憶體 16GB)VoiceStudiov0.5.7(main 28bf2c7a),從原始碼啟動實施日2026-10-27~28模型VoxCPM2(無指示・有指示)、OmniVoice(僅無指示)生成各條件各用 seed 0・1・2 生成 3 次### 生成
將同一段範本錄音傳給 VoiceStudio 後端的 /generate,透過更改引擎(engine)、指示(instruct)與 seed(seed)來生成(埠號為驗證環境中的設定)。其中,「戰戰兢兢」維持日文原文,「焦急」則使用英文的「panicking, rushed, speaking very fast」。對指示的遵循強度(guidance_scale)為預設的 2.0。
curl -X POST http://localhost:3900/generate \
-F engine=voxcpm2 \
-F seed=0 \
-F "instruct=怖がりながら恐る恐る" \
-F "text=喔,您好,我是山田。關於前幾天請您準備的資料,我想在下週開會前先稍微跟您討論一下,所以打電話來。我之後會再與您聯絡。先麻煩您了。" \
-F [email protected] \
-o out.wav
指標方法說話速度將文章轉成假名後的字數 ÷ 聲音從開始到結束的長度(包含中間停頓)音高使用 librosa 的 pyin 求出的音高中位數相似度使用 WavLM-large + ECAPA-TDNN 萃取說話者特徵,並計算餘弦相似度(SIM-o)。模型為 k2-fsa/TTS_eval_models。表中的相似度是在錄音原始狀態下量測的值(尚未裁掉前後空白),即使裁掉空白後重新量測,差異也在 0.015 以內。朗讀確認使用 faster-whisper(large-v3)做逐字稿,再與文章比對
guidance_scale)調到 3.0 時,「焦急」會變成 9.68,比本人還快。不過,與範本聲音的相似度會從 0.82 降到 0.78,個人特徵稍微變淡關於公開的音檔- 為了方便比對,無論是本人錄音還是複製聲音,都裁切成從聲音開始前 0.3 秒到結束後 0.4 秒的長度,並統一音量與格式(24kHz、單聲道 mp3)。這是因為本人錄音在開始錄音後到真正開口前,有約 2 秒空白,若不裁切,會變成測驗提示
讀錯字的部分關於複製聲音的逐字稿與原文不一致之處,幾乎都出在開頭的「喔,」上(由於逐字稿 AI 有時會省略句首短詞,所以本文附上的 6 段音檔,已重新只檢查開頭部分,確認「喔」有被辨識出來)。另外,有 1 段把「稍微跟您討論一下」辨識成了「稍微跟您討論一下下」。
授權- VoxCPM2:模型卡標示為 Apache 2.0。VoiceStudio 介面會顯示為「可商用」,但這是根據申報授權做出的顯示,對 VoiceStudio 來說屬於「未確認」的處理
原文出處:https://qiita.com/nakata-sapeet/items/f883c3cf009785c51bcc