3
votes

ValueError: Impossible de trouver la graine de jeton! Https://translate.google.com a-t-il changé?

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.


0 commentaires

4 Réponses :


1
votes

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


0 commentaires

0
votes

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.


0 commentaires

0
votes

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


0 commentaires

0
votes

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


0 commentaires