2017-07-27 86 views
0

我正在使用gTTS语音识别项目。问题是,当我运行代码时,系统不响应它。 (它不会回答我的查询)我尝试按照我的知识,但无法解决它。如果有人能帮我解决这个问题,我将不胜感激。首先十分感谢。 这里是我的代码:gTTS与python不工作

import speech_recognition as sr 
from time import ctime 
import time 
import os 
import pyaudio 
from gtts import gTTS 


def speak(audioString): 
    print(audioString) 
    tts = gTTS(text=audioString, lang='en') 
    tts.save("audio.wav") 
    os.system("audio.wav") 


def recordaudio(): 
    # Record Audio 
    r = sr.Recognizer() 
    with sr.Microphone() as source: 
     r.adjust_for_ambient_noise(source) 
     print("Say something!") 
    audio = r.listen(source) 
    time.sleep(2) 
    # Speech recognition using Google Speech Recognition 
    data = "" 
    try: 
     data = r.recognize_google(audio) 
     print("You said: " + data) 
    except sr.UnknownValueError: 
     print("Google Speech Recognition could not understand audio") 
    except sr.RequestError as e: 
     print("Could not request results from Google Speech Recognition service; {0}".format(e)) 

    return data 


def ADA(data): 
    if "how are you" in data: 
     speak("I am fine") 

    if "what time is it" in data: 
     speak(ctime()) 

    if "What is your name" in data: 
     speak("Call me ADA.") 

    if "where is" in data: 
     data = data.split(" ") 
     location = data[2] 
     speak("Hold on Sir, I will show you where " + location + " is.") 
     os.system("chromium-browser https://www.google.nl/maps/place/" + location + "/&") 


# initialization 
time.sleep(2) 
speak("Hi Touseef, what can I do for you?") 
while 1: 
    data = recordaudio() 
    ADA(data) 

我已经测试了语音识别和这些GTT库分别向检查自己是否工作或没有。他们俩都没有错。但是当我尝试在我的实际代码中使用它们时,出现了一些错误,我无法弄清楚。

以下是库的代码片段。

腹围

from gtts import gTTS 
import os 
tts = gTTS(text='Helllo, Good morning my name is ADA. How can I help you?', lang='en') 
tts.save("good.mp3") 
os.system("good.mp3") 

语音识别

import speech_recognition as sr 

r = sr.Recognizer() 
with sr.Microphone() as source: 
    r.adjust_for_ambient_noise(source) 
    print("Say something!") 
    audio = r.listen(source) 


try: 
    print(r.recognize_google(audio)) 
except sr.UnknownValueError: 
    print("Could not understand audio") 
except sr.RequestError as e: 
    print("Could not request results from Google Speech Recognition service; {0}".format(e)) 

我是一个学生,这是我的学术项目。请有人帮我解决这个问题。

回答

0

试试这个;

import speech_recognition as sr 
from time import ctime 
import time 
import os 
import pyaudio 
from gtts import gTTS 


def speak(audioString): 
    print(audioString) 
    tts = gTTS(text=audioString, lang='en') 
    tts.save("audio1.wav") 
    os.system("audio1.wav") 


def recordaudio(): 
    # obtain audio from the microphone 
    r = sr.Recognizer() 
    with sr.Microphone() as source: 
     print ('Attention! Say something') 
     audio = r.listen(source) 

    # recognize speech using Google Speech Recognition 
    try: 
    # for testing purposes, we're just using the default API key 
    # to use another API key, use `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")` 
    # instead of `r.recognize_google(audio)` 
     data='something' 
     data = r.recognize_google(audio,language='en-US') 

    except sr.UnknownValueError: 
     print ('Attention ! Google could not understand audio') 
     data='Could not understand anything' 
    except sr.RequestError as e: 

     print ('Attention ! Could not request results from Google service.') 

    return data 


def ADA(data): 
    if "how are you" in data: 
     speak("I am fine") 

    if "what time is it" in data: 
     speak(ctime()) 

    if "What is your name" in data: 
     speak("Call me ADA.") 

    if "where is" in data: 
     data = data.split(" ") 
     location = data[2:] 
     speak("Hold on Sir, I will show you where " + location + " is.") 
     os.system("chromium-browser https://www.google.nl/maps/place/" + location + "/&") 


# initialization 
time.sleep(2) 
#speak("Hi Touseef, what can I do for you?") 
while 1: 
    data = recordaudio() 
    ADA(data) 

而不是使用腹围可以使用pyTTsx不需要净像

import pyttsx 
engine = pyttsx.init() 
rate = engine.getProperty('rate') 
engine.setProperty('rate', rate-40) 
engine.say('how are yo8u? 123456789 123 1 2 3 4 5 6 7 8 9') 
engine.runAndWait() 

操作this.Hope你[R问题得到解决的。

您的新代码变为;

import pyttsx 


def speak(audioString): 
    print(audioString)  
    engine = pyttsx.init() 
    rate = engine.getProperty('rate') 
    engine.setProperty('rate', rate-40) 
    engine.say(audioString) 
    engine.runAndWait() 
+0

它没有为我工作。现在它停留在“注意,说些什么”之后没有任何东西出现。该程序继续假装它仍在收听。 –

+0

你是否在麦克风中说过什么,以及你使用的是什么操作系统?我在win xp上测试过它像黄油 –

+0

这里是视频链接[https://drive.google.com/file/d/0B7ccI33Aew5fRlNYbE5MeUZ5YU0/view?usp=sharing] –