5

我正在制作一个使用 gTTS 和 Google Speech 的助手,但出现了这个错误。语音识别很好,因为它可以毫无错误地识别。我用打印功能进行了测试,但是当我想要文本到语音时,这个错误就来了。...

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)

...不知道我做错了什么。一些指导将不胜感激。它一直要求我不确定的令牌种子。

4

7 回答 7

1

谷歌似乎已经更新并切换到另一种生成语音的方式。

此问题目前在 GitHub 上打开,您可以在此处查看更新。

这可能需要一段时间才能得到解决,因为开发人员需要了解 Google 做了哪些更改。

于 2020-11-10T10:39:22.833 回答
1

您应该考虑检查您的 gTTS 令牌包版本。如果您通过 pip 安装了该软件包,请在命令提示符下尝试此行:

pip install gTTS-token --upgrade

至少在我的情况下,这是解决此类错误消息的方法

于 2020-11-09T18:59:59.807 回答
1

做这两个升级

pip3 install gTTS-token --upgrade
pip3 install gTTS --upgrade

为我工作

于 2020-12-20T08:33:42.817 回答
1

您可能需要重新安装 gTTS

sudo pip uninstall gTTS
sudo pip install gTTS

尝试更新 gTTS 以及requests。这有帮助。如果您仍然收到错误并且您在本地同时拥有 anaconda 和 python,请尝试调试~/.local/lib/python3.6/site-packages,如果升级 gTTS 反映了您的包并且您正在使用相同的包。

于 2020-12-23T08:26:40.983 回答
0

我有时也遇到此错误,但有时代码运行完美,可能是 gtts 或 pyaudio 的问题。我建议您使用 pyttsx 库,我认为它比 gtts 好得多,因为我正在研究它并给我最好的结果。

你可以在这里检查 pyttsx 的安装

于 2020-11-11T05:50:22.863 回答
0

卸载和重新安装 gTTS 对我有用。

于 2021-01-19T05:19:00.900 回答
0

您需要更新 gTTs-token 包为此使用以下命令:

pip install gTTS-token --upgrade

这将更新当前包

于 2020-11-17T17:01:19.967 回答