我正在开发一个使用 gTTS 的语音识别项目。问题是,当我运行代码时,系统没有响应。 (它不会回答我的查询)我根据我的知识尝试但无法解决它。如果有人能帮助我解决这个问题,我将非常感激。首先十分感谢。 这是我的代码:
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)
我已经分别测试了语音识别和gtts库,以检查它们是否正常工作。两人都没有什么问题。但是当我尝试在实际代码中使用它们时,出现了问题并且我无法弄清楚。
以下是库的代码片段。
gTTS
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))
我是一名学生,这是我的学术项目。请有人帮我解决这个问题。
试试这个;
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代替gTTS,它不需要网络来操作
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()
这个。希望您的问题得到解决。
您的新代码变为;
import pyttsx
def speak(audioString):
print(audioString)
engine = pyttsx.init()
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-40)
engine.say(audioString)
engine.runAndWait()
我对 gtts 也有类似的问题(没有生成文本转语音的音频),我通过更新模块来修复它,如下所示:
pip install -U gtts
您可能使用 CMD 或其他终端安装了 gtts,但您尝试在 Jupyter Notebook 或其他环境(我的意思是另一个环境)中运行它。要解决此问题,请在同一环境中安装 gtts...