語音與音訊模型的對抗性攻擊
針對語音辨識、語音助理與音訊語言模型(包括隱藏命令與心理聲學遮蔽)製作對抗性音訊的技術。
概覽
音訊與語音模型是現代 AI 系統關鍵的輸入通道。Whisper 等自動語音辨識(ASR)系統驅動語音介面、轉錄服務與多模態 AI 助理。OpenAI、Google 與 Anthropic 的語音控制代理接受口說命令,由 ASR 轉錄後交由語言模型處理。Gemini 2.5 Pro 等音訊語言模型則能原生地同時處理音訊與文字。
上述系統都面臨對抗性音訊的威脅——精心設計的聲音會讓模型轉錄或解讀的內容,與人類聽到的完全不同。影響範圍從將隱藏命令注入語音助理,到繞過音訊認證系統都有。Carlini 與 Wagner(2018)的研究證實,對抗性擾動可使 ASR 系統將聽起來如背景噪音或無關對話的音訊,轉錄成攻擊者指定的任意目標句子。
本文涵蓋音訊對抗性攻擊的完整光譜,從簡單的空中重播攻擊,到利用人類與機器聽覺感知差異的複雜心理聲學隱藏技術。
ASR 處理流程架構與攻擊面
現代語音辨識流程
理解 ASR 處理流程對於辨識對抗性攻擊的介入點至關重要。下方程式碼以 Python 的 dataclass 與 Enum 定義 ASR 各階段(擷取、預處理、特徵擷取、編碼器、解碼器、語言模型、後處理)的攻擊面對映,每個階段記錄:描述、攻擊向量清單、是否需要實體存取、偵測難度。
主要映射如下:
- CAPTURE(音訊擷取):麥克風擷取音訊波形。攻擊向量包括空中對抗性音訊播放、超出人耳範圍的超音波注入,以及對麥克風硬體的電磁干擾。需要實體存取,偵測難度「中」。
- PREPROCESSING(預處理):雜訊抑制、語音活動偵測(VAD)、正規化。攻擊向量包括能在雜訊抑制後存活的設計音訊、利用 VAD 閾值,以及在非語音頻段中藏入對抗性訊號。不需實體存取,偵測難度「中」。
- FEATURE_EXTRACTION(特徵擷取):計算梅爾頻譜圖或 MFCC。攻擊向量包括針對特定梅爾頻率格點的擾動、心理聲學遮蔽利用、STFT 視窗中的時序擾動。偵測難度「高」。
- ENCODER(編碼器):以 Transformer 編碼器處理特徵。攻擊向量為基於梯度的對抗性擾動、透過設計特徵操縱注意力,以及通用對抗性擾動。偵測難度「極高」。
- DECODER(解碼器):自回歸符元生成。攻擊向量包括目標解碼操縱、束搜尋利用、符元級對抗性引導。偵測難度「極高」。
程式最後以 print_attack_surface_report() 輸出結構化報告,逐階段列出描述、偵測難度、是否需實體存取,以及具體攻擊向量清單。
Whisper 架構特點
OpenAI 的 Whisper 模型(驅動眾多生產環境 ASR 部署)採用編碼器—解碼器 Transformer 架構,以 30 秒為單位的對數梅爾頻譜圖為輸入。編碼器產生一序列音訊嵌入,解碼器再自回歸地生成文字符元。
與對抗性攻擊相關的關鍵架構屬性:
| 屬性 | 值 | 安全意涵 |
|---|---|---|
| 輸入格式 | 80 通道對數梅爾頻譜圖 | 擾動必須在梅爾轉換後存活 |
| 切片長度 | 16kHz 下 30 秒 | 攻擊必須容納於 480,000 個樣本內 |
| 編碼器 | 採用正弦位置編碼的 Transformer | 可能製作位置相依的擾動 |
| 解碼器 | 自回歸,對編碼器進行交叉注意力 | 透過操縱編碼器實現目標轉錄 |
| 語言偵測 | 解碼器的前幾個符元 | 可被操縱以強制切換語言 |
| 時間戳預測 | 特殊的時間戳符元 | 時序對齊可被破壞 |
隱藏命令攻擊
心理聲學隱藏
最精密的音訊對抗性攻擊會利用心理聲學遮蔽——亦即當某些頻率存在大音量聲音時,人耳無法聽見鄰近頻率較小聲音的現象。攻擊者將對抗性擾動置於音訊頻譜被遮蔽的區域,便能製造出對人類聽來正常、但對 ASR 系統卻含有隱藏命令的音訊。
下方程式碼以 PsychoacousticMask 資料類別表示特定時間訊框的遮蔽閾值,包含訊框索引、以 Hz 計的頻率格點陣列,以及以 dB SPL 計的遮蔽閾值陣列。compute_masking_threshold() 函式採用基於 ISO 226 等響度曲線的簡化模型與同時性遮蔽,對音訊訊號計算逐訊框的遮蔽閾值。流程為:套用漢寧窗、計算功率頻譜、換算至 dB、以 np.fft.rfftfreq 取得頻率格點,再以 _simplified_masking_model() 估算閾值。
_simplified_masking_model() 以功率頻譜局部極大值辨識音調遮蔽者(tonal masker),再以簡化的擴散函式推算各格點的遮蔽強度,並與聽覺絕對閾值取最大值作為最終閾值。實務上還需 bark 尺度轉換、音調/非音調遮蔽者辨識與標準擴散函式。
AdversarialAudioGenerator 類別接受 ASR 模型、取樣率、最大迭代次數與學習率作為建構參數,其 generate() 方法對輸入的原始音訊與目標轉錄字串,以下流程迭代最佳化擾動:計算心理聲學遮蔽閾值、對 original_audio + perturbation 跑 ASR 模型前向傳遞、以 CTC 損失對目標轉錄計算梯度並更新擾動、每次迭代後透過 _project_to_mask() 將擾動投影至遮蔽閾值以下。最終回傳對抗性音訊、擾動、以 dB 為單位的訊雜比(SNR)與目標轉錄。
_project_to_mask() 逐訊框將擾動的頻譜幅值截斷至遮蔽閾值(由 dB 換算為線性)以下,保留相位後反 FFT 重建;_compute_snr() 則以 10 * log10(signal_power / noise_power) 計算 SNR。
超音波命令注入
超音波攻擊在人耳範圍以上(通常為 18–20 kHz 以上)運作,但利用麥克風硬體的非線性失真,將超音波訊號解調至裝置擷取的可聽範圍。
以下程式碼展示如何生成帶有語音命令的超音波載波訊號,參考 Zhang 等人(2017)的 DolphinAttack。generate_ultrasonic_command() 接受命令文字(用於選擇預錄音訊)、載波頻率(預設 25 kHz)、輸出取樣率(必須 > 2 倍載波頻率,滿足奈奎斯特)、訊號長度與調變型態(am 振幅調變或 fm 頻率調變)。
實作流程:檢查奈奎斯特限制、產生載波正弦波、以多個語音頻段(300、500、800、1200、2000、3000 Hz)隨機相位疊加模擬基頻訊號、將基頻正規化。若為 AM,則以 (1 + 0.8 * baseband) * carrier 產出調變訊號;若為 FM,則以相位積分方式加入 2 kHz 頻偏。最後將幅值正規化至 0.95 以避免 clipping。
此類訊號對人類不可聞(載波 25 kHz),但可透過 MEMS 麥克風的非線性將調變內容「走私」進音訊輸入。
對音訊語言模型的攻擊
直接音訊提示詞注入
Gemini 2.5 Pro、GPT-4o 等現代多模態模型能原生處理音訊。不像傳統「ASR 先轉錄、再丟 LLM」的流程,這類模型將音訊視為第一等輸入模態。這產生新的攻擊面:對抗性音訊能直接操縱語言模型的行為,而不必經過獨立的 ASR 階段。
下方程式碼定義 AudioPromptInjectionTester 類別,針對音訊語言模型測試音訊型提示詞注入。不同於攻擊獨立 ASR 系統,此類攻擊目標為多模態模型的聯合音訊—語言處理,對抗性音訊必須影響模型的文字生成行為,而不僅是轉錄輸出。
關鍵方法:
test_hidden_instruction_in_audio():以 base64 編碼將含有以心理聲學遮蔽嵌入對抗性指令的良性音訊傳送至多模態 API,檢查模型是否遵循隱藏音訊指令而非系統提示詞。test_audio_text_conflict():當音訊與文字指令衝突時測試模型行為,揭示其指令優先順序(偏好文字通道或音訊通道)。generate_assessment_report():彙整測試結果,計算隱藏指令成功率,並對映至 MITRE ATLAS 的AML.T0048、AML.T0043與 OWASP LLM01(提示詞注入)。
內部輔助方法包括 _encode_audio()(以 base64 編碼音訊檔)、_call_multimodal_api()(需針對目標廠商實作)、_check_instruction_compliance()(需實作合規檢查邏輯)。
語音克隆進行社交工程
語音克隆攻擊結合語音合成與社交工程,在語音認證 AI 系統中冒充被授權使用者。
以下 VoiceCloningRisk 資料類別描述目標系統的語音克隆風險評估,包含系統名稱、認證方式、所需語音樣本數、克隆品質閾值、繞過可能性與緩解措施清單。VOICE_CLONING_RISK_MATRIX 列出三個代表性案例:
- 語音啟用銀行:以聲紋加通關密語認證,約需 30 個樣本,品質閾值 0.85,繞過可能性「中」。緩解包括活性偵測(呼吸、唇動)、多因素認證(語音 + PIN)、會話期間的連續講者驗證,以及對語音特徵的異常偵測。
- 智慧家庭語音助理:採用較弱的說話者辨識,約需 5 個樣本,閾值 0.6,繞過可能性「高」。緩解包括對敏感動作要求實體確認、超音波活性偵測、語音之外的行為生物辨識。
- AI 代理語音介面:沒有語音認證,無所謂繞過。緩解為不將語音作為認證因子、對工具使用要求明確確認、實作動作層級授權。
assess_voice_cloning_risk() 接受系統設定字典,依據是否啟用語音認證、活性偵測與多因素認證判定風險等級(低/中/高或不適用),並給出建議。攻擊對映至 MITRE ATLAS AML.T0048(對抗性輸入)與 OWASP LLM01(提示詞注入)。
空中攻擊考量
實體世界限制
空中攻擊必須考量數位攻擊可忽略的環境因素:
| 因素 | 對攻擊的影響 | 攻擊者的緩解 |
|---|---|---|
| 背景雜訊 | 遮蔽擾動訊號 | 加大擾動幅度(降低隱蔽性) |
| 房間殘響 | 扭曲訊號時序 | 最佳化時模擬房間脈衝回應 |
| 距離衰減 | 降低訊號功率 | 使用指向性喇叭或加大音量 |
| 麥克風特性 | 頻率響應不同 | 針對目標麥克風機型最佳化 |
| 音訊壓縮 | 有損編碼破壞擾動 | 設計對預期編碼具韌性的擾動 |
| 取樣率不匹配 | 產生混疊雜訊 | 最佳化取樣率須與目標系統一致 |
下方 simulate_over_the_air_channel() 函式模擬對抗性音訊從喇叭傳送至目標裝置麥克風的實體通道,將各項物理通道效應納入最佳化:
- 距離衰減:依平方反比律計算源至麥克風距離的衰減係數。
- 房間殘響:以簡化脈衝回應建模,包含直達路徑、由聲速 343 m/s 推算延遲的前期反射(至多 6 個,幅值 0.7^i 衰減),以及隨時間指數衰減的擴散尾部。
- 加性背景雜訊:以指定 SNR 生成高斯白噪音疊加。
此模擬能在對抗性音訊最佳化過程中產生能承受真實播放環境的擾動。
防禦音訊對抗性攻擊
防禦策略
| 防禦 | 機制 | 效果 | 缺點 |
|---|---|---|---|
| 音訊預處理(壓縮、重量化) | 破壞高頻擾動 | 中等 | 降低音質;面對自適應攻擊 |
| 輸入轉換集成 | 多個預處理管線投票決定轉錄 | 佳 | 延遲高;運算成本 |
| 對抗性訓練 | 以對抗性樣本訓練 ASR | 對已知攻擊有效 | 無法類推至新攻擊 |
| 活性偵測 | 驗證音訊來源為真人 | 對空中攻擊佳 | 不適用於數位音訊輸入 |
| 講者驗證 | 驗證講者身份 | 對冒充佳 | 易受語音克隆攻擊 |
| 頻譜分析 | 偵測異常頻率型態 | 中等 | 誤報率高 |
| 雙通道驗證 | 比較兩支麥克風 | 對實體攻擊佳 | 需修改硬體 |
實作音訊輸入清理
以下 AudioSanitizer 類別展示對音訊輸入的清理管線,透過串聯多種轉換削弱對抗性擾動,同時盡量保留語音可理解性。單一轉換並不足夠,但組合後能顯著提高攻擊者的難度。
建構參數含取樣率、壓縮品質、降取樣倍率、雜訊底限(以 dB 計)。sanitize() 依序套用四個步驟:
- 頻帶通濾波(
_apply_bandpass_filter):以scipy.signal.butter建構 4 階帶通濾波器(80–7000 Hz),移除語音頻帶以外的頻率內容;多數對抗性擾動會在主要語音頻帶之外放入能量。 - 量化雜訊注入(
_apply_quantization_noise):依雜訊底限加入小幅隨機雜訊,打亂精確的擾動值。 - 時域平滑(
_apply_temporal_smoothing):以移動平均卷積模糊擾動的尖銳邊界。 - 隨機重取樣(
_apply_random_resampling):先降取樣再以線性內插升取樣,銷毀高頻擾動。
音訊系統紅隊測試方法論
對啟用音訊的 AI 系統進行紅隊演練時,遵循以下結構化流程:
-
辨識音訊輸入路徑:直接麥克風擷取、檔案上傳、串流音訊、影片內嵌音訊、音訊 URL。
-
測試基本重播攻擊:透過靠近目標裝置的喇叭播放預錄命令,作為不需訊號處理的基線測試。
-
測試隱藏命令攻擊:以 Whisper 代理模型產生心理聲學遮蔽的對抗性音訊,驗證對抗性轉錄是否能轉移至目標系統。
-
測試超音波注入:若可實體進入目標環境,測試超音波命令注入,此需要能發出 20 kHz 以上頻率的特殊喇叭。
-
測試語音克隆:若目標系統使用語音認證,根據公開可得的授權使用者語音樣本,評估語音克隆攻擊的可行性。
-
測試音訊語言模型注入:對使用原生音訊語言模型的系統,測試對抗性音訊是否能覆蓋系統提示詞或注入指令。
-
以 MITRE ATLAS 映射記錄發現:將每項發現對映至 AML.T0048(對抗性輸入)或相關子技術。
參考文獻
- Carlini, N. and Wagner, D. "Audio Adversarial Examples: Targeted Attacks on Speech-to-Text." IEEE S&P Workshop on Deep Learning and Security (2018).
- Schonherr, L., et al. "Adversarial Attacks Against Automatic Speech Recognition Systems via Psychoacoustic Hiding." NDSS (2019).
- Zhang, G., et al. "DolphinAttack: Inaudible Voice Commands." ACM CCS (2017).
- Abdullah, H., et al. "SoK: The Faults in our ASRs: An Overview of Attacks against Automatic Speech Recognition and Speaker Identification Systems." IEEE S&P (2021).
- MITRE ATLAS framework — https://atlas.mitre.org
- OWASP LLM Top 10 — https://owasp.org/www-project-top-10-for-large-language-model-applications/
心理聲學隱藏之所以對對抗性音訊攻擊特別有效,原因是什麼?
為何超音波命令注入攻擊能成功,即使使用的是人耳聽不到的頻率?