我的语法有一个限制。我前段时间刚尝试过python
,我是从AI开始的。我制作了一个像Jarvis这样的机器人来帮助我打开google或youtube。在Pythonspot.com提供的教程中,它显示为Ubuntu教程,但我使用的是Windows。还有一些工具或插件在windows中是不起作用的是mpg321
。我已经找到了mixer.music
的替代品来播放AI的声音。这是有效的,但我对第二个声音有限制,即我用audio.mp3
发出第一个声音,然后当我的第二个声音使用相同的文件名时,即audio.mp3
,我有这样的限制
回溯(最近一次调用):
文件"D:\@AI Projects\Jarvis\Jarvis.py",第71行,jarvis(数据)
文件"D:\@AI Projects\Jarvis\Jarvis.py",第53行,使用jarvis speak(ctime())
在speak tts.save("audio.mp3")中,文件"D:\@AI Projects\Jarvis\Jarvis.py",第17行
文件"C:\Users\inialdan\AppData\Local\Programs\Python\Python36\lib\site-packages\gtts\tts.py",第110行,在save with open(savefile,'wb')中,作为f: PermissionError: Errno 13权限被拒绝:'audio.mp3‘
这是我的代码
#!/usr/bin/env python3
# Requires PyAudio and PySpeech.
import speech_recognition as sr
from time import ctime
import time
import os
import subprocess
from gtts import gTTS
from pygame import mixer
def speak(audioString):
print(audioString)
tts = gTTS(text=audioString, lang='en')
tts.save("audio.mp3")
mixer.init()
mixer.music.load('D:/@AI Projects/Jarvis/audio.mp3')
mixer.music.play()
def recordAudio():
r = sr.Recognizer()
with sr.Microphone() as source:
print("Try to say something!")
audio = r.listen(source)
data = ""
try:
data = r.recognize_google(audio)
print("You said : " + data)
except sr.UnknownValueError:
print("I'm Sorry, i couldn't understand what you mean ...")
except sr.RequestError as e:
print("Could not request results from Google Speech Recognition service; {0}".format(e))
return data
def jarvis(data):
CHROME = os.path.join('C:\\', 'Program Files (x86)', 'Google', 'Chrome', 'Application', 'chrome.exe')
if "jarvis" in data:
speak("Yes, sir ?")
if "what is your name" in data:
speak("You can call me, Jarvis")
if "where do you leave" in data:
speak("In your heart.")
if "how are you" in data:
speak("I am fine")
if "what time is it" in data:
speak(ctime())
if "where is" in data:
data = data.split(" ")
location = data[2]
speak("Hold on Aldan, I will show you where " + location + " is.")
os.system('taskkill /im chrome.exe')
subprocess.call([CHROME, "https://www.google.nl/maps/place/" + location + "/&"])
if "open" in data:
data = data.split(" ")
application = data[1]
speak("Hold on Aldan, I will show you " + application)
os.system('taskkill /im chrome.exe')
subprocess.call([CHROME, "https://www." + application + ".com"])
time.sleep(2)
speak("Hi Aldan, How may I assist you?")
while 1:
data = recordAudio()
jarvis(data)
我尝试过使用os.remove ();删除audio.mp3并重写它。但还是失败了
https://stackoverflow.com/questions/49097649
复制相似问题