Windows 中的合成器听起来比 Linux 中好得多(Python 和 pyttsx3)

问题描述 投票:0回答:2

我基于 pyttsx3 库(波兰语)在 python 中制作了一个简单的 text_to_speech 函数。

import pyttsx3 as tts

engine = tts.init()
engine.setProperty('rate', 130)
engine.setProperty('voice', 'polish')

def text_to_speech(text):
    engine.say(text)
    engine.runAndWait()

当我在 Windows 上运行时,声音还可以接受,但在 Linux 中听起来很糟糕 (Windows 10 和 ubuntu 18.04,两台机器上的 pyttsx==2.9)。

我还制作了 for 循环来打印所有可用的声音:

voices = engine.getProperty('voices')

for voice in voices:
    print("Voice:")
    print("ID: %s" %voice.id)
    print("Name: %s" %voice.name)
    print("Age: %s" %voice.age)
    print("Gender: %s" %voice.gender)
    print("Languages Known: %s" %voice.languages)

窗口输出:

Voice: ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_PL-PL_PAULINA_11.0 Name: Microsoft Paulina Desktop - Polish Age: None Gender: None Languages Known: [] Voice: ID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0 Name: Microsoft Zira Desktop - English (United States) Age: None Gender: None Languages Known: []

Linux 中的输出:

Voice:
ID: english-us
Name: english-us
Age: None
Gender: male
Languages Known: \[b'\\x02en-us'\]

Voice:
ID: polish
Name: polish
Age: None
Gender: male
Languages Known: \[b'\\x05pl'\]

Voice:
ID: brazil
Name: brazil
Age: None
Gender: male
Languages Known: \[b'\\x05pt-br'\]

 
and a lot of other languages
(...)

有没有办法在 Linux 版本的 pyttsx3(或者其他库)上安装其他波兰语声音?

python windows ubuntu pyttsx3 polish
2个回答
1
投票

好吧,我发现 Windows 合成器 sapi5 可能无法转移到 linux。

来自 pyttsx3 文档:

pyttsx3 2.6 版包含以下文本转语音合成器的驱动程序。仅列出驱动程序经过测试并已知可以工作的操作系统。驱动程序可能适用于其他系统。

  • Windows XP、Windows Vista 和 Windows 8,8.1、10 上的 SAPI5
  • Mac OS X 10.5 (Leopard) 和 10.6 (Snow Leopard) 上的 NSSpeechSynthesizer
  • 谈论 Ubuntu 桌面版 8.10 (Intrepid)、9.04 (Jaunty) 和 9.10 (Karmic)

但我还发现有 gTTS 库支持 Linux 上听起来不错的波兰语声音:)


0
投票

在 Windows 中,将语言设置为 setProperty 中的第二个参数对我来说不起作用。相反,我对声音中的声音做了: if voice.name.contains("法语"): engine.setProperty('语音', voice.id) 打破

© www.soinside.com 2019 - 2024. All rights reserved.