Pyttsx没有在Windows 10上显示已安装的语言

时间:2019-06-24 06:26:14

标签: python windows-10 speech-to-text pyttsx

我正在尝试使用pyttsx3说法语文本。但是,只有英语可用。

按照How to change the voice in pyttsx3?的建议,我尝试按照此处https://support.office.com/en-us/article/how-to-download-text-to-speech-languages-for-windows-10-d5a6b612-b3ae-423f-afa5-4f6caf1ec5d3的说明安装法语语音包。

我重新启动计算机,现在在Windows设置的“语音”菜单下安装了法语文本语音模块,并且可以使用该语言。测试按钮起作用,我听到了法语的测试样本。

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

import pyttsx3 
engine = pyttsx3.init() 
voices = engine.getProperty('voices') 
for voice in voices: 
    print(voice, voice.id) 
    engine.setProperty('voice', voice.id) 
    engine.say("Hello World!") 
    engine.runAndWait() 
    engine.stop() 

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

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

我想念什么?

1 个答案:

答案 0 :(得分:-1)

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

这是我遵循的步骤的摘要。它假定您已经像原始问题中一样下载了语音包。

  1. 打开regedit.exe(在Windows + 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\Tokens替换为HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens(您必须在两个不同的位置进行此操作)。

  6. 在第二部分(您在下面粘贴的部分)中,执行相同的操作,但更改为HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens(再次更改两个位置)。

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

  8. 重新启动计算机。

现在,导出的声音可用​​于pyttsx3!