#python #python-3.x #voice-recognition #pyttsx
#python #python-3.x #распознавание голоса #pyttsx
Вопрос:
Я пытаюсь создать виртуального помощника. Мне нужен голос с именем PaulM, который присутствует в моем regedit. Но любой индекс возвращает мне только DAVID voice, даже не ZIRA или любой другой.
import pyttsx3
import datetime
import speech_recognition as sr
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voices', voices[2].id)
i=0
while i<5:
print(voices[i].id)
i = 1
rate = engine.getProperty('rate')
engine.setProperty('rate', 150)
volume = engine.getProperty('volume')
engine.setProperty('volume',0.5 )
def speak(audio):
engine.say(audio)
engine.runAndWait()
def wishMe():
hour = int(datetime.datetime.now().hour)
if hour>=0 and hour<12:
speak('Good morning')
elif hour>=12 and hour<18:
speak("Hi there, Good Afternoon")
else:
speak("Hi there, Good Evening")
if __name__ == "__main__":
wishMe()
speak("Good morning and thank you for one more day of knowing me to the core but still not leaving me. You’re a good friend indeed!")
HKEY_LOCAL_MACHINESOFTWAREMicrosoftSpeechVoicesTokensTTS_MS_EN-US_DAVID_11.0
HKEY_LOCAL_MACHINESOFTWAREMicrosoftSpeechVoicesTokensTTS_MS_EN-GB_HAZEL_11.0
HKEY_LOCAL_MACHINESOFTWAREMicrosoftSpeechVoicesTokensMSTTS_V110_frFR_PaulM
HKEY_LOCAL_MACHINESOFTWAREMicrosoftSpeechVoicesTokensTTS_MS_EN-US_ZIRA_11.0
HKEY_LOCAL_MACHINESOFTWAREMicrosoftSpeechVoicesTokensTTS_MS_FR-FR_HORTENSE_11.0
Ответ №1:
Это не зависит от pyttsx3. Голоса поступают из ‘sapi5’.Поэтому обязательно загрузите последнюю версию sapi5 с —https://www.microsoft.com/en-us/download/details.aspx?id=10121 Если на вашем компьютере предварительно установлен sapi5, вам нужно проверить, сколько лет вашему компьютеру, поскольку голоса теперь изменены на 2, но это не всегда одно и то же. Раньше был только David . HTH
Ответ №2:
Я видел ваш код, со мной была та же проблема. И я решил это, позвольте мне рассказать вам. Это ваш код:
voices = engine.getProperty('voices')
engine.setProperty('voices', voices[2].id)
и исправьте это, заменив свой код на:
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[2].id)
Просто удалите «s» из «voices», IDK это ошибка. Но почему-то ошибка не отображается.
Надеюсь, это поможет!