返回博客
指纹

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}`)
);

语音数量、名称和语言应与配置文件的目标平台匹配。

开始使用

  1. GitHub 下载 BotBrowser
  2. 使用 --bot-profile 加载配置文件
  3. 在控制台中检查 speechSynthesis.getVoices() 确认对齐
  4. 与其他指纹信号对比验证跨平台一致性
#speech-synthesis#fingerprinting#privacy#tts#voice