from urllib.request import URLopener
from urllib.parse import quote
from pygame import mixer
def speak(text):
downloader = URLopener()
downloader.addheader('Referer', 'https://translate.google.com/')
downloader.addheader('User-agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36')
downloader.retrieve('https://translate.google.com/translate_tts?ie=UTF-8&q={0}&tl=en&client=tw-ob'.format(quote(text)), 'storage/tts.mp3')
mixer.init()
mixer.music.load('storage/tts.mp3')
mixer.music.play()
Hier die Mine Code ist, wenn ich versuche funtion in zweites Mal zu verwenden, es mir Fehler gibt (sorry für schlechtes Englisch)urllib - abrufen bekommt Fehler auf dem zweiten Lauf
downloader.retrieve('https://translate.google.com/translate_tts?ie=UTF-8&q={
0}&tl=en&client=tw-ob'.format(quote(text)), 'storage/tts.mp3')
File "C:\Users\pc\AppData\Local\Programs\Python\Python36-32\lib\urllib\request
.py", line 1800, in retrieve
tfp = open(filename, 'wb')
PermissionError: [Errno 13] Permission denied: 'storage/tts.mp3'
auch habe ich versucht, aber es war es kein Ton spielen arbeiten, aber immer noch denselben Fehler zu erzeugen
def speak(text):
downloader = URLopener()
downloader.addheader('Referer', 'https://translate.google.com/')
downloader.addheader('User-agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36')
downloader.retrieve('https://translate.google.com/translate_tts?ie=UTF-8&q={0}&tl=en&client=tw-ob'.format(quote(text)), 'storage/tts.mp3')
mixer.init()
mixer.music.load('storage/tts.mp3')
mixer.music.play()
while mixer.music.get_busy():
pass
mixer.music.stop()
Nicht ein urllib Ausgabe (btw stoppt, können Sie [Anfragen] (http verwenden möchten: //docs.python-requests.org/en/master/)), es sei denn, urlib hat es nicht geschlossen(). Ihr Programm konnte die Datei zum Schreiben nicht öffnen. Hast du es irgendwo anders geöffnet? –
Es scheint sich um eine Berechtigung zu handeln, die für die Datei durch den Abrufaufruf abgelehnt wurde, möglicherweise aufgrund der Tatsache, dass Ihr Mixer noch Griffe für diese Datei hält. – BoboDarph