Мне нужно скачать отдельную библиотеку голосов для pyttsx?
Я скачал pyttsx, и он, кажется, работает нормально, за исключением того, что в списке голосов только один голос (Microsoft Anna). Я хотел бы иметь возможность изменить его на мужской голос, но я ничего не пробовал или исследования не помогли! Вот мой текущий тестовый код:
import pyttsx
engine = pyttsx.init()
engine.setProperty('rate', 100)
voices = engine.getProperty('voices')
for voice in voices:
print "Using voice:", repr(voice.name)
engine.setProperty('voice', voice.id)
engine.setProperty('gender', 'male') #this doesn't raise an error, but also won't do anything
engine.say("Hi there, how's you ?")
engine.say("A B C D E F G H I J K L M")
engine.say("N O P Q R S T U V W X Y Z")
engine.say("0 1 2 3 4 5 6 7 8 9")
engine.say("Sunday Monday Tuesday Wednesday Thursday Friday Saturday")
engine.say("Violet Indigo Blue Green Yellow Orange Red")
engine.say("Apple Banana Cherry Date Guava")
engine.runAndWait()
и это работает только для одного цикла. Если я скажу "печать (голоса)", будет напечатан список, содержащий только один элемент. Какие-либо предложения?
3 ответа
Поскольку вы сказали, что используете MS Anna, я предполагаю, что вы используете Windows 7. Платформа MS Speech Platform - единственная, о которой я знаю, что вы можете предоставить вам дополнительные "голоса".
Есть много коммерческих, но, конечно, большинство придется заплатить, а некоторые приходят с бесплатной пробной версией.
PYTTSX не имеет дополнительных голосов, он только предоставляет вам инструменты для доступа к тому, что у вас есть.
голоса хранятся в списке, который можно распечатать. напечатайте голоса, чтобы получить все голоса, которые есть в вашей системе. `
двигатель = pyttsx3.init()
voices = engine.getProperty("голоса")
engine.setProperty ("голос", voices[1].id)
`
Попробуй это
import pyttsx
engine = pyttsx.init()
engine.setProperty('rate', 100)
voices = engine.getProperty('voices')
for voice in range(len(voices)):
engine.setProperty('voice', voices[voices].id)
# engine.setProperty('gender', 'male') This function won't work if you don't have any female voices in your system