我正在尝试使用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
我想念什么?
答案 0 :(得分:-1)
我通过执行此处描述的方法找到了解决方法: https://www.ghacks.net/2018/08/11/unlock-all-windows-10-tts-voices-system-wide-to-get-more-of-them/
这是我遵循的步骤的摘要。它假定您已经像原始问题中一样下载了语音包。
打开regedit.exe
(在Windows + R中,键入regedit)并导航到注册表项Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens
。
右键单击要使用的语音,然后选择导出。
使用文本编辑器(例如Notepad ++)打开导出的文件。
第二次将所有文本复制到文件中,以便两次都拥有(第一行Windows Registry Editor Version 5.00
除外)。
在数据的第一部分中,将\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens
替换为HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens
(您必须在两个不同的位置进行此操作)。
在第二部分(您在下面粘贴的部分)中,执行相同的操作,但更改为HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\SPEECH\Voices\Tokens
(再次更改两个位置)。
保存文件,将其关闭,然后双击它。接受注册表修改。
重新启动计算机。
现在,导出的声音可用于pyttsx3!