我正在使用Windows 10 Powershell中的System.Speech对象进行文本转语音项目,并且正在尝试安装新语音。
我按照以下说明安装了新的系统语音:
在任何版本的 Windows 10 上,单击"开始>设置",然后按照 这些步骤:
选择"开始" 按钮,然后选择"设置">"时间和语言">"区域和语言"。
选择"添加语言",然后从列表中选择所需的语言。 只有下表中列出的语言才会具有文本到语音转换 能力。
安装新语言后(这可能需要一些时间 时刻(,在"区域和语言"列表中选择它,然后选择 选项。
在"语言选项">"语音"下,选择"下载"。
重新启动计算机。将安装文本到语音转换语音 当机器重新打开时。
我可以看到这些声音安装在设置中,它们也显示在Windows 10文本到语音转换程序中。但是,当我运行 GetInstalledVoices(( 时,这些声音不会显示。Powershell 中的 VoiceInfo 命令。
我是否需要执行一些额外的设置层才能使 System.Speech 识别这些新声音?
问题在于这篇文章的第一个答案:Windows 10 TTS语音没有出现?
Windows 10默认安装了两个不同的TTS引擎。那里 是 WinRT 语音合成 API(在 Windows.Media.SpeechSynthesis 命名空间(和 SAPI 语音 合成 API(在 System.Speech.Synthesis 命名空间和 COM 中( ISp语音接口(。
David 和 Zira 是 SAPI 语音;语言包安装 WinRT 声音。
SAPI API 和语音是遗留 API,不会更进一步 发达;所有新的声音和努力都将进入WinRT API和 声音。
如果要使用语言包语音,则需要移动 应用程序转到 WinRT 并使用 WinRT API。
System.Speech 对象仅适用于 SAPI API 语音。幸运的是,Windows并没有在任何地方清楚地记录这一事实,你必须在你偶然遇到的随机堆栈溢出帖子中找到它。
文本到语音转换语音 ID 位于两个不同的注册表位置。
1(HKEY_LOCAL_MACHINE\软件\Microsoft\语音\语音\令牌
2(HKEY_LOCAL_MACHINE\软件\Microsoft\Speech_OneCore\语音\令牌\
位置编号"1"仅包含一些语音 ID,而位置编号"2"包含所有语音 ID。
因此,请尝试手动将每个注册表值从位置"2"复制到位置"1"。