Я создаю чат-бота с использованием Python, Anaconda с редактором кода VS.Я использую облако Google для преобразования текста в речь, и он работает нормально, если я не задаю ему вопрос, для которого он должен выполнить if "mean" in text
, он говорит PermissionError: [Errno 13] Permission denied: 'D:\\Programming\\python\\thief.mp3'
.
Примечание: для остальных утверждений elif (которые я здесь не показывал) он работает как шарм и прекрасно отвечает в речи, что делает этот вопрос не дубликатом любого другого вопроса..
Фрагмент кода:
from PyDictionary import PyDictionary
dictionary=PyDictionary()
bannedWord=["what","does","mean"]
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
voice = texttospeech.types.VoiceSelectionParams(
language_code='en-US',
ssml_gender=texttospeech.enums.SsmlVoiceGender.NEUTRAL)
audio_config = texttospeech.types.AudioConfig(
audio_encoding=texttospeech.enums.AudioEncoding.MP3)
class commander:
def __init__(self):
pass
def discover(self,text):
if "mean" in text:
x=' '.join(i for i in text.split() if i not in bannedWord)
print(x)
#noun=dictionary.meaning(x)["Noun"]
noun=dictionary.meaning(x)
if noun["Noun"]:
for count,ele in enumerate(noun["Noun"]):
self.respond(ele)
elif noun["Verb"]:
for count,ele in enumerate(noun["Verb"]):
self.respond(ele)
elif noun["Adjective"]:
for count,ele in enumerate(noun["Adjective"]):
self.respond(ele)
elif noun["Adverb"]:
for count,ele in enumerate(noun["Adverb"]):
self.respond(ele)
def respond(self,response):
print(response)
synthesis_input = texttospeech.types.SynthesisInput(text=response)
response = client.synthesize_speech(synthesis_input, voice, audio_config)
with open(r'D:\Programming\python\thief.mp3', 'wb') as out:
out.write(response.audio_content)
print('Audio content written to file "output.mp3"')
music.load(r"D:\Programming\python\thief.mp3")
music.play()
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)