首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyttsx语音性别

Pyttsx语音性别
EN

Stack Overflow用户
提问于 2017-03-17 06:28:01
回答 7查看 14.6K关注 0票数 2

下午好,我正在学习并使用pyttsx进行演讲,问题是我想使用它作为“女性”的声音,但我不能使用下面的代码:

代码语言:javascript
复制
import pyttsx as pt
from pyttsx import voice
engine = pt.init()
voices = engine.getProperty('voices')
#engine.setProperty('gender', 'female') # also does not work
engine.setProperty('female', voice.Voice.gender) #not even
engine.setProperty('female', voice.gender) #does not work
engine.setProperty('voice', voices[4].id)
engine.say("Hello World")
engine.runAndWait()


class Voice(object):
    def __init__(self, id, name=None, languages=[], gender=None, age=None):
        self.id = id
        self.name = name
        self.languages = languages
        self.gender = gender
        self.age = age
EN

回答 7

Stack Overflow用户

发布于 2017-03-19 02:42:46

我使用下面的代码遍历声音来找到女性的声音

代码语言:javascript
复制
import pyttsx
engine = pyttsx.init()
voices = engine.getProperty('voices')
for voice in voices:
   engine.setProperty('voice', voice.id)
   print voice.id
   engine.say('The quick brown fox jumped over the lazy dog.')
engine.runAndWait()

在我的Windows10机器上,女声是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0

所以我修改了我的代码,如下所示

代码语言:javascript
复制
import pyttsx
engine = pyttsx.init()
engine.setProperty('voice', 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0')
engine.say('The quick brown fox jumped over the lazy dog.')
engine.runAndWait() 
票数 5
EN

Stack Overflow用户

发布于 2017-05-12 15:43:48

如果您使用linux/espeak...

更改此处的代码engine.setProperty('voice', 'english+f1')

您可以通过添加直到f4的f1来更改语音

票数 5
EN

Stack Overflow用户

发布于 2017-05-14 12:02:50

这是一个更简单的解决方案:

代码语言:javascript
复制
engine = pyttsx.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42845942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档