語音複製與深偽音訊
進階4 分鐘閱讀更新於 2026-03-13
以語音複製對 AI 系統進行社交工程、繞過語音驗證、對語者驗證系統的攻擊,以及偵測技術。
語音複製:技術
語音複製已從需要數小時訓練資料演進到僅需數秒參考音訊即可產出令人信服的結果。
現代語音複製如何運作
參考音訊(3–30 秒)
│
▼
┌─────────────────┐
│ Speaker Encoder │ ← 擷取聲音特徵
└─────────────────┘
│
▼
Speaker Embedding
│
▼
┌─────────────────┐
│ TTS 合成 │ ← 由文字 + embedding 產生語音
│ (VITS/XTTS 等) │
└─────────────────┘
│
▼
被複製的語音音訊
主要系統與能力
| 系統 | 最低參考音訊 | 品質 | 延遲 | 取得 |
|---|---|---|---|---|
| XTTS v2 | 6 秒 | 高 | 中 | 開源 |
| OpenVoice | 5 秒 | 高 | 低 | 開源 |
| ElevenLabs | 30 秒 | 非常高 | 低 | 商用 API |
| Bark | 3–10 秒 | 中高 | 中 | 開源 |
| VALL-E(Microsoft) | 3 秒 | 非常高 | 高 | 僅研究 |
# 範例:以 XTTS(Coqui TTS)進行語音複製
from TTS.api import TTS
def clone_voice(
reference_audio_path: str,
text_to_speak: str,
output_path: str = "cloned_output.wav"
) -> str:
"""自參考音訊複製語音並產生新語音。"""
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2")
tts.tts_to_file(
text=text_to_speak,
speaker_wav=reference_audio_path,
language="en",
file_path=output_path
)
return output_path語音驗證繞過
語音驗證如何運作
語者驗證系統將傳入音訊樣本的聲音特徵與已註冊之聲紋比對:
註冊:
使用者發聲 → 擷取聲紋 → 存入資料庫
驗證:
宣稱身分的使用者發聲 → 擷取聲紋 → 與儲存聲紋比對
若相似度 > 門檻 → 通過驗證
攻擊向量
最簡單的做法:錄下目標語音後重播。現代系統以活體偵測對抗此法,但對基本實作仍有效。
# 重播本身很簡單——挑戰在於繞過活體偵測
# 有些系統會檢查:
# 1. 背景雜訊模式(太乾淨即可疑)
# 2. 麥克風特徵
# 3. 即時互動(隨機挑戰片語)以語音複製於目標聲音中生成任意文字,繞過文字相依驗證:
def bypass_text_dependent_verification(
target_voice_sample: str,
challenge_phrase: str
) -> str:
"""
以目標聲音生成挑戰片語。
可繞過要求使用者朗讀特定片語之文字相依驗證。
"""
return clone_voice(
reference_audio_path=target_voice_sample,
text_to_speak=challenge_phrase,
output_path="bypass_attempt.wav"
)打造與目標具相同語者 embedding、但聽起來不像他本人的音訊:
def adversarial_speaker_embedding(
speaker_model,
target_embedding: torch.Tensor,
source_audio: torch.Tensor,
num_steps: int = 500
) -> torch.Tensor:
"""
修改來源音訊以吻合目標語者 embedding,
同時保留所說內容。
"""
delta = torch.zeros_like(source_audio, requires_grad=True)
for step in range(num_steps):
adv_audio = source_audio + delta
current_embedding = speaker_model.encode(adv_audio)
# 最小化與目標 embedding 之距離
loss = torch.nn.functional.mse_loss(
current_embedding, target_embedding
)
loss.backward()
with torch.no_grad():
delta.data -= 0.001 * delta.grad.sign()
delta.data = torch.clamp(delta.data, -0.05, 0.05)
delta.grad.zero_()
return (source_audio + delta).detach()深偽音訊用於社交工程
語音複製不僅是直接技術攻擊——它啟動對 AI 系統與人類的社交工程攻擊。
AI 代理操弄
以語音指令執行動作的語音控制 AI 代理可被鎖定:
攻擊情境:
1. 取得授權使用者的聲音樣本(公開演講、社群媒體)
2. 用開源工具複製該語音
3. 以複製語音生成指令
4. 遞送至語音控制 AI 系統
- 經電話(語音銀行、客服)
- 經揚聲器(智慧家庭、辦公室系統)
- 經音訊檔(語音信箱、會議錄音)
脈絡中的深偽音訊
| 情境 | 影響 | 可行性 |
|---|---|---|
| 複製 CEO 聲音進行電匯 | 財務損失 | 高(參考音訊可自財報電話取得) |
| 複製授權使用者以通過語音閘 AI 系統 | 未授權存取 | 高 |
| 偽造語音訊息操弄 AI 助理 | 執行動作 | 中高 |
| 以複製語音投毒訓練資料 | 模型腐化 | 中 |
| 於視訊通話中以複製語音 + 深偽影片 | 完整冒充 | 中(需即時處理) |
偵測技術
音訊深偽偵測
當前偵測做法及其侷限:
| 技術 | 機制 | 強項 | 弱點 |
|---|---|---|---|
| 頻譜分析 | 於頻域偵測合成假影 | 對已知 TTS 系統良好 | 對高品質複製失效 |
| 活體偵測 | 檢查即時語音的徵兆(呼吸、微停頓) | 對重播有效 | 可經後處理繞過 |
| 假影偵測 | 以真 vs. 假音訊訓練之神經網路 | 對新系統具概化 | 與更好的合成進行軍備競賽 |
| 挑戰—回應 | 要求即時口語互動 | 擊敗預錄攻擊 | 可被即時複製擊敗 |
| 浮水印 | 檢查是否缺少預期浮水印 | 來源已知時有效 | 攻擊者可能無已打上浮水印的來源 |
偵測程式範例
import torch
import numpy as np
def extract_deepfake_features(audio: np.ndarray, sr: int = 16000) -> dict:
"""
擷取合成音訊的指標特徵。
真實語音具有難以完美複製的特徵:
- 基頻微變(jitter)
- 振幅波動(shimmer)
- 自然呼吸模式
- 共振峰轉換
"""
features = {}
# 音高 jitter(基頻的變動)
# 合成聲音常具不自然平滑的音高
# 此為簡化檢查
frame_size = int(0.03 * sr) # 30ms frame
energies = []
for i in range(0, len(audio) - frame_size, frame_size):
frame = audio[i:i + frame_size]
energies.append(np.sqrt(np.mean(frame ** 2)))
features["energy_variance"] = np.var(energies)
features["energy_jitter"] = np.mean(np.abs(np.diff(energies)))
# 頻譜平坦度(合成音訊常具不同之頻譜特性)
from scipy.fft import rfft
spectrum = np.abs(rfft(audio))
geometric_mean = np.exp(np.mean(np.log(spectrum + 1e-10)))
arithmetic_mean = np.mean(spectrum)
features["spectral_flatness"] = geometric_mean / (arithmetic_mean + 1e-10)
return features相關主題
參考資料
- "VALL-E: Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers" - Wang et al.(2023)- 以 3 秒音訊樣本進行 zero-shot 語音複製
- "ASVspoof 2024: Speech Deepfake Detection Challenge" - Yamagishi et al.(2024)- 語音深偽偵測基準的前沿狀態
- "Defending Against Voice Cloning Attacks via Adversarial Perturbation" - Huang et al.(2024)- 以對抗音訊浮水印進行語音複製之主動防禦
- "Real-Time Voice Cloning" - Jemine(2019)- 展示技術普及性的開源語音複製實作
Knowledge Check
對抗驗證系統之語音複製攻擊,最穩健的防禦為何?