chuixiawang/Noisy-Speaker-Anonymization

GitHub: chuixiawang/Noisy-Speaker-Anonymization

CASR 是一个针对噪声环境下说话人匿名化的轻量级运行时控制层,通过条件级操作点恢复在无需测试时噪声标签的情况下自动调节匿名化强度以平衡隐私与可懂度。

Stars: 1 | Forks: 0

# 噪声说话人匿名化的条件级操作点恢复 这是**条件聚合状态恢复 (CASR)** 的参考实现和评估协议,CASR 是一个用于噪声说话人匿名化的轻量级 runtime 控制层。 ## 动机 说话人匿名化必须在隐藏说话人身份的同时保持语音可懂度。在背景噪声环境下,针对纯净语音校准的强度可能不再提供适当的隐私与实用性权衡。我们的实验表明,噪声主要导致操作点的实用性一侧发生偏移,而不是引起系统性的隐私崩溃。

Motivation: noisy deployment shifts the privacy-utility operating point

在嘈杂的部署环境中,隐私始终保持在相对较窄的 EER 范围内,而可懂度却急剧下降,这促使我们进行条件依赖的操作点恢复。

## 方法 CASR 将此问题表述为**隐藏噪声条件下的操作点恢复**。它冻结匿名化 backbone,不需要测试时的噪声标签,并执行以下操作: 1. 从轻量级声学特征预测语句级匿名化强度; 2. 将预测结果聚合为稳定的条件级决策; 3. 将校准后的强度应用于未更改的匿名化 backbone;以及 4. 发出只读的 Alpha-Control Evidence Gate (ACEG) 记录,用于审计决策一致性和不确定性。 因此,CASR 是对现有基于 SSL 的说话人匿名化 backbone 的补充,而不是替代它们。

Complete CASR method with offline reference, online condition-level recovery, and ACEG audit

## 主要结果 - CASR 在 **8 个**典型噪声条件中的 **7 个**里恢复了离线参考强度,而无需在测试时使用噪声标签。 - 在 EER、WER 和 CER 方面,它与离线参考策略的最大面板均值差距为 **0.31 个百分点**。 - 该控制器每条语句增加了约 **5.20 毫秒**的开销,约占我们设置中 backbone 推理时间的 **1.0%**。 - ACEG 记录在不改变所选强度的情况下控制了一致性和不确定性。

Privacy and utility operating points under canonical noise conditions

在整个典型噪声面板中,隐私始终保持在相对较窄的 EER 范围内,而 WER 会随着噪声变得严重而显著恶化。

## 条件级恢复 发布的控制器为每条语句预测一个强度,然后在条件级别聚合对齐后的预测结果。下面的分布图显示了聚合有用的原因:大多数条件集中在离线参考强度附近,而困难的 babble 条件则表现出更宽的不确定性。

Utterance-level CASR strength distributions across eight canonical conditions

红色虚线标出了每种条件的离线参考强度。CASR 在七种条件中恢复了相同的强度;唯一的不匹配出现在 `babble_snr5dB` 条件下。 ## 发布的组件 - `src/casr/features.py`:消融研究中使用的八个声学描述符。 - `src/casr/controller.py`:二次预测器、条件聚合、不确定性校准和 ACEG。 - `src/casr/protocol.py`:确定性的 20 个说话人/200 条语句的 LibriSpeech 协议,包含 900 次正向验证试验和 900 次负向验证试验。 - `src/casr/noise.py`:在目标 SNR 下进行的确定性加性噪声混合。 - `src/casr/metrics.py` 和 `src/casr/bootstrap.py`:EER、WER/CER 以及配对 bootstrap 辅助工具。 - `configs/`:发布的 CASR 策略、离线参考强度和协议元数据。 - `artifacts/canonical_utterance_predictions.json`:1,600 条派生的预测记录,用于在不分发语音的情况下检查条件级恢复。 该代码库故意排除了语音语料库、噪声录音、模型权重、生成的音频以及第三方的匿名化实现。 ## 安装 ``` python -m venv .venv source .venv/bin/activate python -m pip install -e . ``` 参考控制器需要 Python 3.10 或更高版本以及 NumPy。传递给发布策略的音频必须是单声道、16 位 PCM,并且采样率为 16 kHz。 ## 复现典型决策 ``` python scripts/recover_canonical.py ``` 此命令读取发布的语句级预测,应用相同的条件级控制路径,并打印出所有八个典型条件的恢复强度和 ACEG 元数据。 要检查单个条件: ``` casr recover \ --policy configs/casr_policy.json \ --predictions artifacts/canonical_utterance_predictions.json \ --condition babble_snr5dB ``` ## 构建评估协议 单独下载 LibriSpeech,并将命令指向包含 `SPEAKERS.TXT` 和 `test-clean/` 的目录: ``` casr build-protocol \ --data-root /path/to/LibriSpeech \ --output outputs/eval_protocol \ --seed 2026 ``` 生成的协议包含 20 个说话人,每个说话人 10 条语句,900 次同说话人试验,以及 900 次不同说话人试验。有关完整的评估定义,请参阅 [`docs/EVALUATION_PROTOCOL.md`](docs/EVALUATION_PROTOCOL.md)。 ## 范围与限制 这是论文的控制层和协议发布,而不是一个独立的 SSL-SAS backbone。端到端波形匿名化需要一个暴露匿名化强度 `alpha` 的兼容 backbone。报告的策略是在 20、10、5 和 0 dB 的白噪声和 babble 噪声下校准的;在未见的噪声类型上的性能不应被解释为保证的泛化能力。 ## 数据与许可声明 未重新分发任何语料库音频。请在 CC BY 4.0 许可下从 OpenSLR 获取 [LibriSpeech](https://www.openslr.org/12/) 和 [MUSAN](https://www.openslr.org/17/)。请在 CC BY-SA 3.0 许可下从其官方 Zenodo 记录中获取 [DEMAND](https://zenodo.org/records/1227121)。 该代码库目前未指定开源软件许可证。在选择许可证之前,除了查看和评估已发布的材料外,不授予任何再利用权利。 ## 引用 论文引用将在发表后添加。
标签:人工智能, 匿名化, 噪声鲁棒性, 学术研究, 用户模式Hook绕过, 语音处理, 语音隐私, 逆向工具