Je crée un assistant qui utilise gTTS et Google Speech mais cette erreur apparaît. Cela convient à la reconnaissance vocale car il peut reconnaître sans défauts. J'ai testé avec la fonction d'impression mais quand je veux de la synthèse vocale, ce bogue arrive. ...
import speech_recognition as sr
from time import ctime
import time
import playsound
import os
import random
from gtts import gTTS
import webbrowser
r = sr.Recognizer()
def record_audio(ask=False):
with sr.Microphone() as source:
if ask:
watson_speak(ask)
audio = r.listen(source)
voice_data = ''
try:
voice_data = r.recognize_google(audio)
except sr.UnknownValueError:
watson_speak("Sorry, I did not catch that")
except sr.RequestError:
watson_speak("I am offline right now")
return voice_data
def watson_speak(audio_string):
tts = gTTS(text=audio_string, lang='en')
r = random.randint(1, 10000000)
audio_file = 'audio-' + str(r) + '.mp3'
tts.save(audio_file)
playsound.playsound(audio_file)
print(audio_string)
os.remove(audio_file)
def respond(voice_data):
if 'what is your name' in voice_data:
watson_speak("My name is Watson")
if 'what time is it' in voice_data:
watson_speak(ctime())
if 'search' in voice_data:
search = record_audio("What do you want to search for?")
url = "https://duckduckgo.com/?t=ffnt&q=" + search
webbrowser.get().open(url)
watson_speak("Here is what I found for " + search)
if 'find location' in voice_data:
location = record_audio("What is the location?")
url = "https://google.nl/maps/place/" + location + "/&"
webbrowser.get().open(url)
watson_speak("Here is the location of " + location)
if 'exit' in voice_data:
exit()
time.sleep(1)
watson_speak("How can I help you?")
while 1:
voice_data = record_audio()
respond(voice_data)
... Je ne sais pas ce que j'ai fait de mal. Quelques conseils seraient grandement appréciés. Il ne cesse de demander une graine symbolique dont je ne suis pas sûr.
4 Réponses :
Vous devriez envisager de vérifier la version de votre package gTTS-token. Si vous avez installé le package via pip, essayez cette ligne dans une invite de commande:
pip install gTTS-token --upgrade
C'était au moins dans mon cas le correctif pour ce type de message d'erreur
Il semble que Google a mis à jour et est passé à un autre moyen de générer de la parole.
Ce problème est actuellement ouvert sur GitHub, vous pouvez vérifier les mises à jour ici .
Cela prendra probablement un certain temps pour que cela soit corrigé car les développeurs doivent comprendre quels changements ont été apportés par Google.
J'ai aussi parfois cette erreur, mais parfois le code fonctionne parfaitement, peut-être que c'est un problème avec gtts ou pyaudio. Je vous recommande d'utiliser la bibliothèque pyttsx qui est, à mon avis, bien meilleure que gtts car je travaille dessus et me donne les meilleurs résultats.
vous pouvez vérifier l'installation de pyttsx ici
vous devez mettre à jour le package gTTs-token Pour cela, utilisez la commande ci-dessous:
pip install gTTS-token --upgrade
cela mettra à jour le package actuel