指纹
BotBrowser 语音合成保护:平台一致的语音列表
BotBrowser 如何控制 SpeechSynthesis 语音列表以匹配加载配置文件的目标平台。
隐私风险
SpeechSynthesis API 暴露可用的文字转语音声音列表,该列表因操作系统、浏览器版本和已安装语言包而异。这构成了潜在的追踪信号。BotBrowser 将语音列表输出与加载配置文件的目标平台对齐。
配置文件控制的语音列表
加载配置文件会自动配置正确的语音列表:
chrome --bot-profile="/path/to/profile.enc" \
--user-data-dir="$(mktemp -d)"
如果配置文件代表 Windows 系统,语音列表将包含该 Windows 版本预期的语音,无论实际宿主操作系统是什么。
跨平台一致性
这是语音列表保护最重要的场景。在 Linux 服务器上运行 Windows 配置文件通常会暴露平台原生语音,泄露真实宿主环境。BotBrowser 确保语音列表与配置文件匹配,保持平台身份在所有指纹表面上的一致性。
与其他信号对齐
语音列表数据是整体身份图景的一部分。BotBrowser 配置文件将语音列表与 navigator.platform、User-Agent 和其他操作系统级指标对齐,使所有信号一致。
验证
加载配置文件后,在控制台中验证语音列表:
function getVoices() {
return new Promise((resolve) => {
const voices = speechSynthesis.getVoices();
if (voices.length > 0) return resolve(voices);
speechSynthesis.onvoiceschanged = () =>
resolve(speechSynthesis.getVoices());
});
}
const voices = await getVoices();
console.log(`Voice count: ${voices.length}`);
voices.forEach(v =>
console.log(`${v.name} (${v.lang}) local: ${v.localService}`)
);
语音数量、名称和语言应与配置文件的目标平台匹配。
开始使用
- 从 GitHub 下载 BotBrowser
- 使用
--bot-profile加载配置文件 - 在控制台中检查
speechSynthesis.getVoices()确认对齐 - 与其他指纹信号对比验证跨平台一致性
#speech-synthesis#fingerprinting#privacy#tts#voice