检测到论坛CSS可能没有正确加载,如出现排版混乱请刷新重试。

We detected that the CSS might not be loaded correctly. If the website displays abnormally, Please refresh and try again.

  • Windows
  • T先生使用Windows奇奇怪怪的方法 (三):将Cortana“带回”Windows

让我们在本帖开坑一年后完成本帖的更新。
受B站用户@初生之鸟的视频《教你如何把小娜当 TTS》影响,我打算在2024年的Windows 11上恢复Cortana的中文TTS。关键点是,Windows内置了本语言的Cortana TTS(中文是Hongyu),所以在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\手动添加Hongyu的TTS就好。不过,视频中的方法有很大局限性。

  1. 视频中提及的方法需要利用Windows中内置的Cortana SystemApp的隔离注册表,而Windows早已在Windows 10 2004中移除了内置的Cortana SystemApp。不过这不关键,我已经将注册表内容搞了出来。
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MSTTS_V110_zhCN_HongyuM]
    @="Microsoft Hongyu Desktop - Chinese (Simplified, PRC)"
    "LangDataPath"="%windir%\\Speech_OneCore\\Engines\\TTS\\zh-CN\\MSTTSLoczhCN.dat"
    "LangUpdateDataDirectory"="%SystemDrive%\\Data\\SharedData\\Speech_OneCore\\Engines\\TTS\\zh-CN"
    "VoicePath"="%windir%\\Speech_OneCore\\Engines\\TTS\\zh-CN\\M2052Hongyu"
    "VoiceUpdateDataDirectory"="%SystemDrive%\\Data\\SharedData\\Speech_OneCore\\Engines\\TTS\\zh-CN"
    "804"="Microsoft Hongyu Desktop - Chinese (Simplified, PRC)"
    "CLSID"="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\MSTTS_V110_zhCN_HongyuM\Attributes]
    "Version"="11.0"
    "Language"="804"
    "Gender"="Female"
    "Age"="Adult"
    "DataVersion"="11.0.2013.1022"
    "SharedPronunciation"=""
    "Name"="Microsoft Hongyu Desktop"
    "Vendor"="Microsoft"
    "PersonalAssistant"="1"
    PS:Microsoft Hongyu Desktop - Chinese (Simplified, PRC)Microsoft Hongyu Desktop可以替换为其他名称,我使用了Cortana
  2. 视频中提及的方案,忽略了32位应用调用TTS。不过这不关键,手动追加WOW6432Node的键值就好。
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens\MSTTS_V110_zhCN_HongyuM]
    @="Microsoft Hongyu Desktop - Chinese (Simplified, PRC)"
    "LangDataPath"="%windir%\\Speech_OneCore\\Engines\\TTS\\zh-CN\\MSTTSLoczhCN.dat"
    "LangUpdateDataDirectory"="%SystemDrive%\\Data\\SharedData\\Speech_OneCore\\Engines\\TTS\\zh-CN"
    "VoicePath"="%windir%\\Speech_OneCore\\Engines\\TTS\\zh-CN\\M2052Hongyu"
    "VoiceUpdateDataDirectory"="%SystemDrive%\\Data\\SharedData\\Speech_OneCore\\Engines\\TTS\\zh-CN"
    "804"="Microsoft Hongyu Desktop - Chinese (Simplified, PRC)"
    "CLSID"="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens\MSTTS_V110_zhCN_HongyuM\Attributes]
    "Version"="11.0"
    "Language"="804"
    "Gender"="Female"
    "Age"="Adult"
    "DataVersion"="11.0.2013.1022"
    "SharedPronunciation"=""
    "Name"="Microsoft Hongyu Desktop"
    "Vendor"="Microsoft"
    "PersonalAssistant"="1"
    现在,我们已经可以在调用SAPI 5的软件中看到我们刚才添加的Hongyu TTS了。

    效果展示:

    但是这并未顺利完事
22 天 后
ThinkBou 更改标题为「纪念微软完成收购诺基亚手机业务10周年
2 个月 后
ThinkBou 更改标题为「T先生使用Windows奇奇怪怪的方法 (三):将Coratana“带回”Windows
6 个月 后

但是,原作者好像忽略了什么事情……为了让UWP等使用WinRT API的应用也能调用Hongyu的TTS,原作者在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens\处添加了相关键值。然而,我们查看设置的语音设置页面,并未发现新添加的Hongyu TTS。

通过搜索引擎的帮助,很容易就发现解决方法:How to enable Microsoft Eva (Cortana's voice) on Windows 10?。结论是,C:\Windows\System32\Speech_OneCore\Common\zh-CN\C:\Windows\SysWOW64\Speech_OneCore\Common\zh-CN\处,添加相关.xml文件,以支持通过WinRT TTS API的应用能够使用Hongyu TTS。

<?xml version="1.0" encoding="utf-8"?>
<Tokens>
  <Category name="Voices" categoryBase="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore">
    <Token name="MSTTS_V110_zhCN_HongyuM">
      <String name="" value="Microsoft Hongyu - Chinese (Simplified, PRC)" />
      <String name="LangDataPath" value="%windir%\Speech_OneCore\Engines\TTS\zh-CN\MSTTSLoczhCN.dat" />
      <String name="VoicePath" value="%windir%\Speech_OneCore\Engines\TTS\zh-CN\M2052Hongyu" />
      <String name="804" value="Microsoft Hongyu - Chinese (Simplified, PRC)" />
      <String name="CLSID" value="{179F3D56-1B0B-42B2-A962-59B7EF59FE1B}" />
      <Attribute name="Version" value="11.0" />
      <Attribute name="Language" value="804" />
      <Attribute name="Gender" value="Female" />
      <Attribute name="Age" value="Adult" />
      <Attribute name="DataVersion" value="11.0.2013.1022" />
      <Attribute name="SharedPronunciation" value="" />
      <Attribute name="Name" value="Microsoft Hongyu" />
      <Attribute name="Vendor" value="Microsoft" />
      <Attribute name="SayAsSupport" value="spell=NativeSupported; cardinal=GlobalSupported; ordinal=NativeSupported; date=GlobalSupported; time=GlobalSupported; telephone=NativeSupported; computer=NativeSupported; address=NativeSupported; percentage=NativeSupported; currency=NativeSupported; message=NativeSupported; url=NativeSupported; alphanumeric=NativeSupported" />
      <Attribute name="SampleText" value="您已选择 %1 作为默认语音" />
    </Token>
  </Category>
</Tokens>

PS:Microsoft Hongyu - Chinese (Simplified, PRC)Microsoft Hongyu可以替换为其他名称,我使用了Cortana.xml文件可以命名为Tokens_TTS_zh-CN_Hongyu.xml

这样,我们就可以让使用WinRT API的应用也能调用Hongyu的TTS了。

4 个月 后
ThinkBou 更改标题为「T先生使用Windows奇奇怪怪的方法 (三):将Cortana“带回”Windows

最后总结一下。

  1. 这是全互联网你能找到的将Cortana TTS带回Windows最准确,最高效(但是不全面)的教程。同时,本教程也为手动添加TTS提供了重要参考。
  2. 上述提及的链接中的内容请谨参考,那些链接里的方法有些并不准确,有些没有效果。

但是……

如果你真的去听这个语音,会发现十分僵硬,完全不是当年记忆中的小娜。

现在是2025年,我们可以有很多种方法尽力还原当年小娜的语音效果:

  • 可以调优小娜的tts,改善其输出时的声调和速度。
  • 可以基于互联网上现存的小娜视频中的声音,通过AI训练tts模型
  • 可以抢劫丹棱街某公司,逼迫他们交出?!/@*%--?

所以,这个路程并未结束,仅仅是个开始,我们只是走完了第一部分的第一篇章。作者将尽力探索,会适时更新后续,直到用今天的技术真正复活小娜。


不过即便如此,我们还是得不到自然语音版的小娜😭😭😭
https://wvbimg2-1310561333.cos.ap-tokyo.myqcloud.com/2025-03-22/1742664381-277972-getvoice.mp3

    ThinkBou 尽力还原当年小娜的语音效果

    首先先支持一下(

    自然语音看起来是使用了 AI 模型运算的,使用了 onnxruntime 组件

    或许咱手搓一个()
    另外我们都知道,Windows 10 oobe 里面的小娜没网也有正常的语气,实在怀念不如一起去扒里面的 SSML 吧🤔

      DaleZ SSML 的话可能还放在微软不知道还在不在的服务器里()

        Baka632 我记得您应该还做过一个可以触发小娜自定义响应的应用(),好像也是有自动调教语气的来着?会不会语气微调在本地也有一部分存在……


        DaleZ 自然语音看起来是使用了 AI 模型运算的,使用了 onnxruntime 组件

        我希望仅仅只是生成了 SSML 而不是直接生成语音,自然语音也是包,而里面的内容和结构很类似于 Hongyu。
        https://apps.microsoft.com/detail/9nthzkrrfghd?hl=zh-CN&gl=CN
        https://apps.microsoft.com/detail/9nlcmwx9zzjz?hl=zh-CN&gl=CN

          DaleZ 好像也是有自动调教语气的来着?

          没有,我只是单纯把文本扔到小娜让她自己说话

          © 2025 wvbCommunity 管理团队

          删封申诉 | 知乎专栏 | 状态监控 | 用户协议(EULA) | 隐私政策

          本站文章除其作者特殊声明外,一律采用CC BY-NC-SA 4.0许可协议进行授权,进行转载或二次创作时务必以相同协议进行共享,严禁用于商业用途。