语音合成辅助电话激活 Windows

几年前我在远景论坛上写过一篇不打电话来离线激活 Windows 或 Office 的 帖子,然而通过那个链接获得确认 ID 的途径已经不可用了。如今那个网页服务似乎已经变成 Getcid,并且 不再免费开放使用。于是乎,只能回到老路子电话激活。

印象中那个服务获得结果的响应速度远小于 10 秒,服务底层使用机器人接听电话的可能性不高,其是否使用了微软私有的 API 也不得而知。

以前国内的电话激活失败率非常高(现在不知道怎样),而英国、美国的电话激活的成功率非常高。经测试目前仍可使用 Skype 拨打两国免费激活电话、Google Voice 可以直接拨打美国电话。以前英国电话全流程都可以按键盘而不开口,现在似乎已经不行了。我用下来感觉语音识别的准确度不高(当然和我的发音有关系),有时一组数字报多次才可能被正确识别。

对于这个问题,突然想到找个 TTS 服务,结果发现浏览器已经有这个 API 了,于是预定义了一些文本来生成语音。经测试,对面再没有任何识别错误的地方。以后可考虑使用使用语音识别或 AI 来实现全自动化,但目前使用机会不多,这样就足够了。

<!DOCTYPE html>
<html lang="en" style="color-scheme: dark">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Activation</title>
    <style>
      #\$groups {
        display: grid;
      }

      input {
        width: -webkit-fill-available;
      }
    </style>
  </head>

  <body>
    <input type="text" id="$installId" />
    <div id="$script">
      <button>activate windows</button>
      <button>activate office</button>
      <button>only one</button>
      <button>yes</button>
      <button>I'm ready</button>
      <button>next</button>
      <button>ok</button>
      <div id="$groups"></div>
    </div>
    <script>
      $script.addEventListener('click', (e) => {
        const { target: $el } = e;
        if ($el.tagName !== 'BUTTON') return;
        speechSynthesis.speak(new SpeechSynthesisUtterance($el.textContent));
      });

      $installId.addEventListener('change', () => {
        $groups.textContent = '';
        $installId.value.split('-').forEach((group) => {
          const button = document.createElement('button');
          button.textContent = [...group].join(' ');
          $groups.append(button);
        });
      });
    </script>
  </body>
</html>
# 安装 Windows 密钥
slmgr /ipk YTMG3-N6DKC-DKB77-7M9GH-8HVX7
# 复制安装 ID 到剪贴板
(cscript (gcm slmgr).Path -dti | sls '\d{63}').Matches[0] -replace '\d{7}(?=\d)', '$&-' | scb
# 使用确认 ID(CID)激活
slmgr /atp 000000000000000000000000000000000000000000000000