0
を与える: Errno 13 Permission denied: 'file.mp3' Python Error while re-opening sound file in pythonはPythonでファイルを再開ける私が検索し、解決策がここで提案を実装しようとしたアクセス権のエラー
をしかし、これに何か良い解決策があるようには思えません。ここに私のコードは、誰でも私がここで間違って何を言っていることができます:
#!/usr/bin/env python3
# Requires PyAudio and PySpeech.
import time, os
import speech_recognition as sr
from gtts import gTTS
import pygame as pg
import mutagen.mp3
#Find out what input sound device is default (use if you have issues with microphone)
#import pyaudio
#sdev= pyaudio.pa.get_default_input_device()
def play_music(sound_file, volume=0.8):
'''
stream music with mixer.music module in a blocking manner
this will stream the sound from disk while playing
'''
# set up the mixer, this will set it up according to your sound file
mp3 = mutagen.mp3.MP3(sound_file)
pg.mixer.init(frequency=mp3.info.sample_rate)
pg.mixer.music.set_volume(volume)
try:
pg.mixer.music.load(sound_file)
print("HoBo Sound file {} loaded!".format(sound_file))
except pg.error:
print("HoBo Sound file {} not found! ({})".format(sound_file, pg.get_error()))
return
pg.mixer.music.play()
while pg.mixer.music.get_busy() == True:
continue
pg.mixer.quit()
sound_file.close()
def speak(audioString):
print(audioString)
tts = gTTS(text=audioString, lang='en')
tts.save("audio.mp3")
# pick a mp3 file in folder or give full path
sound_file = "audio.mp3"
# optional volume 0 to 1.0
volume = 0.6
play_music(sound_file, volume)
def audioIn():
# Record Audio from Microphone
r = sr.Recognizer()
with sr.Microphone() as source:
print("Say something!")
audio = r.listen(source)
# 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 = 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 hobo(data):
if "how are you" in data:
speak("I am fine")
if "what time is it" in data:
speak(time.ctime())
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 + "/&")
# Starts the program
#time.sleep(2)
speak("Testing")
while(data != "stop"):
data = audioIn()
hobo(data)
else:
quit
質問を具体的にすることはできますか? Stackoverflowは、人々にコードを投げ、何が間違っているのかを期待するサイトではありません。コード内でどこがクラッシュしますか? –
そして私が最初に思ったのは、ファイルを正しく閉じていないということだったので、再度開いてみると、既に使用されていました。文字列変数( 'sound_file.close()')に '.close()'を呼んでいるようです。 Mutagenでやるべきことは本当ですか?私はあなたのためにドキュメントを読む時間を取るつもりはありません。 –
ありがとう、大変申し訳ありませんが、これは私がstackoverflowを使用した初めてです。私は次回にもっとうまくいくでしょう:) あなたは実際に右の方向に私を指すのを助け、play_music関数にmp3.save()を追加すると進歩に役立ちました。 ありがとうございました! – BrotherHelmer