Pyttsx 未显示 Windows 10 上已安装的语言

Sil*_*uck 4 python speech-to-text windows-10 pyttsx

我正在尝试使用 pyttsx3 说出法语文本。但是,仅提供英语。

\n\n

遵循如何更改 pyttsx3 中的声音?,我尝试按照此处的说明安装法语语音包https://support.office.com/en-us/article/how-to-download-text-to-speech-languages-for-windows-10-d5a6b612- b3ae-423f-afa5-4f6caf1ec5d3

\n\n

我重新启动了计算机,现在已安装法语语音转文本模块,并可在 Windows 设置中的 \xe2\x80\x9cvoice\xe2\x80\x9d 菜单下使用。测试按钮起作用了,我听到了法语的测试样本。

\n\n

我尝试运行以下代码来查看 pyttsx3 可用的内容:

\n\n
import pyttsx3 \nengine = pyttsx3.init() \nvoices = engine.getProperty(\'voices\') \nfor voice in voices: \n    print(voice, voice.id) \n    engine.setProperty(\'voice\', voice.id) \n    engine.say("Hello World!") \n    engine.runAndWait() \n    engine.stop() \n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,我只得到以下输出:

\n\n
<Voice id=HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\TTS_MS_EN-US_ZIRA_11.0\n          name=Microsoft Zira Desktop - English (United States)\n          languages=[]\n          gender=None\n          age=None> HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\TTS_MS_EN-US_ZIRA_11.0\n
Run Code Online (Sandbox Code Playgroud)\n\n

我缺少什么?

\n

Sil*_*uck 5

我通过执行此处描述的操作找到了解决方法: https ://www.ghacks.net/2018/08/11/unlock-all-windows-10-tts-voices-system-wide-to-get-more-of -他们/

以下是我所遵循的步骤的摘要。它假设您已经下载了原始问题中的语音包。

  1. 打开regedit.exe(Win​​dows + R,然后键入 regedit)并导航到注册表项Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens

  2. 右键单击您要使用的声音并选择导出。

  3. 使用文本编辑器(例如 Notepad++)打开导出的文件。

  4. 再次复制文件中的所有文本,这样所有内容都会重复两次(第一行除外Windows Registry Editor Version 5.00)。

  5. 在数据的第一部分中,替换\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\TokensHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens(您必须在两个不同的位置执行此操作)。

  6. 在第二部分(您在下面粘贴的部分)中,执行相同的操作,但进行更改HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens(同样,有两个地方需要更改)。

  7. 保存文件,关闭它,然后双击它。接受注册表修改。

  8. 重启你的电脑。

现在导出的声音可以与 pyttsx3 一起使用!