问题描述
我有一个 .py 文件,它通过导入调用另一个文件,然后根据需要执行的操作调用更多文件。当第一个文件 WakeWord.py 运行时,它会调用下一个文件,然后正确调用所有其他文件,并且没有问题。最后一部分是再次调用原始文件。该文件运行时有一个 consol 打印 print("im listening")
,这就是它不会再进一步的地方。由于有多少代码将其分解为第一个和最后一个文件,以查看是否有人可能有解决方案。
import speech_recognition as sr
from pydub.playback import play
from pydub import AudioSegment
import random
from gtts import gTTS
import os
import time
r = sr.Recognizer()
def record_audio(ask=False):
with sr.Microphone() as source:
if ask:
bob_speak(ask)
audio = r.listen(source)
voice_data = ''
try:
voice_data = r.recognize_google(audio)
except sr.UnkNownValueError:
bob_speak("again")
except sr.RequestError:
bob_speak("link broken")
return voice_data
def bob_speak(audio_string):
tts = gTTS(text = audio_string,lang = 'en',slow=False)
random.randint(1,1000000)
audio_file = 'audio-' + str(r) + '.mp3'
tts.save(audio_file)
sound = AudioSegment.from_mp3(audio_file)
print(audio_string)
time.sleep(0.1)
play(sound)
os.remove(audio_file)
def GetVoiceData(voice_data):
if 'wake up' in voice_data:
print("im listening")
time.sleep(1)
import VoiceLookup
time.sleep(1)
print("going to sleep")
while 1:
voice_data = record_audio()
GetVoiceData(voice_data)
VoiceLookup.py 文件用于搜索数据库,最后一个文件是下面的 KillMotors.py。
import os
import RPi.GPIO as GPIO
from time import sleep
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
print ("Killing Motor Drivers")
sleep(1)
os.remove("MotorCode.py")
print ("Cleaning Files")
sleep(1)
os.remove("Coor.py")
GPIO.setup(13,GPIO.OUT,initial=GPIO.LOW)
GPIO.setup(26,initial=GPIO.LOW)
GPIO.setup(6,initial=GPIO.LOW)
GPIO.setup(11,initial=GPIO.LOW)
GPIO.setup(21,initial=GPIO.LOW)
GPIO.setup(20,initial=GPIO.LOW)
GPIO.setup(16,initial=GPIO.LOW)
GPIO.setup(12,initial=GPIO.LOW)
import WakeWord.py
exit()
Wakeword.py 启动后,我得到一个“我在听”的提示,但它不会超过那个。任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)