Ошибка разрешения в Google Cloud Text To Speech - Python - PullRequest
0 голосов
/ 20 ноября 2018

Я создаю чат-бота с использованием 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)
...