Skript für Ansagen in mp3-Dateien

@Dave: das ist eigentlich nicht frech, sondern nachvollziehbar. Die stellen den Sprachservice beim Translator ja nicht als TTS-Service sondern als Ergänzung für den Übersetzungsservice zur Verfügung. Da kann man nichts anderes verlangen.

Übrigens geht notevibes inzwischen auch nur noch manuell (ich hatte dazu ja auch schon ein Automatisierungsscript gepostet). Die automatische Verwendung wird nun durch Recaptchas verhindert. Das ist das natürliche Wettrüsten und auch in Ordnung so. Die wollen mit ihrem kostenlosen Service ja auch (über Werbung) Geld verdienen (was in Ordnung ist), was mit einem automatisierten Script ja umgangen wird.

@stephan: Gegen das Zahlen spricht eigentlich nichts. Mich stört, dass ich mich da registrieren muss.

Ich hab aus Gründen auch keinen Google Account und mache alles via say am Mac oder eben via Amazon Polly (Amazon Account eh vorhanden). Kann das Script ja alles drei. Polly auch deswegen weil ich die files ja dann auch zum Download anbiete.

1 „Gefällt mir“

Tja, die Optionen habe ich nicht. Weder Mac noch Amazon-Account… :unamused:

Du hast noch nie bei Amazon bestellt? WOW :open_mouth: (auch wenn das jetzt hier derbe OT wird)

Ich präzisiere: ich habe kein AWS-Konto (AWS = Amazon Web Services)

Des is ja das scheene, kannste dich mit dem normalen Account einloggen. Man braucht nichmals Zahlungsmittel hinterlegen (weil ja vorhanden). Ich gebe allerdings zu, AWS ist nichts für absolute Anfänger. War auch heilfroh als ich das alles irgendwie fertig konfiguriert hatte (mit Usern und Rechten und pi pa po).

2 „Gefällt mir“

Kann mir jemand helfen. Ich bekommen immer eine Fehlermeldung wenn ich das Skript ausführe:
Die API von Goolge ist aktiv.

python add_lead_in_messages.py -i ‚04_Bibi_und_Tina‘ -o /home/tsteinbe/Downloads/04 --use-google-key=123445

Generating: temp-lead-in.mp3 - Das Fohlen
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1035 0 775 100 260 2444 820 --:–:-- --:–:-- --:–:-- 3264
Traceback (most recent call last):
File „add_lead_in_messages.py“, line 124, in
addLeadInMessage(args.input, args.output)
File „add_lead_in_messages.py“, line 55, in addLeadInMessage
addLeadInMessage(os.path.join(inputPath, child), os.path.join(outputPath, child))
File „add_lead_in_messages.py“, line 82, in addLeadInMessage
text_to_speech.textToSpeechUsingArgs(text=text, targetFile=tempLeadInFile, args=args)
File „/home/tsteinbe/Downloads/text_to_speech.py“, line 55, in textToSpeechUsingArgs
textToSpeech(text, targetFile, lang=args.lang, useAmazon=args.use_amazon, useGoogleKey=args.use_google_key)
File „/home/tsteinbe/Downloads/text_to_speech.py“, line 81, in textToSpeech
mp3Data = base64.b64decode(responseJson[‚audioContent‘])
KeyError: ‚audioContent‘

python -V -> Python 2.7.15+

Wenn ich das Skript mit Python3 aufrufe bekomme ich noch einen anderen Fehler:

python3 add_lead_in_messages.py -i ‚04_Bibi_und_Tina‘ -o /home/tsteinbe/Downloads/04 --use-google-key=12345
File „add_lead_in_messages.py“, line 106
except Exception, e:
^
SyntaxError: invalid syntax

python3 -V -> Python 3.6.8

Ich weiß nicht mehr weiter… Habt Ihr eine Idee bin aktuell auf Linux Mint 19.2 unterwegs…

Lad dir nochmal die aktuellste Version von @Dave oder mir runter. Du nutzt noch eine alte Version.

Ich vermute, dass es auch mit dem aktuellen Skript nicht gehen wird. Ist die Google Api aktiviert?
Oben im Thread ging es schonmal um den gleichen Fehler:

bild1

Hier nach ja. Habe eine API-Key aber es funktioniert nicht auch mit den neuen Skripten von @Dave geht es nicht hier passiert nichts:

Adding lead-in „Das Fohlen“ to /home/tsteinbe/Downloads/04/001_Das_Fohlen.mp3

Generating: temp-lead-in.mp3 - Das Fohlen
HTTP Error 403: Forbidden
Traceback (most recent call last):
File „./add_lead_in_messages.py“, line 135, in
addLeadInMessage(args.input, args.output)
File „./add_lead_in_messages.py“, line 55, in addLeadInMessage
addLeadInMessage(os.path.join(inputPath, child), os.path.join(outputPath, child))
File „./add_lead_in_messages.py“, line 84, in addLeadInMessage
text_to_speech.textToSpeechUsingArgs(text=text, targetFile=tempLeadInFile, args=args)
File „/home/tsteinbe/Downloads/text_to_speech.py“, line 64, in textToSpeechUsingArgs
textToSpeech(text, targetFile, lang=args.lang, useAmazon=args.use_amazon, useGoogleKey=args.use_google_key)
File „/home/tsteinbe/Downloads/text_to_speech.py“, line 90, in textToSpeech
mp3Data = base64.b64decode(responseJson[‚audioContent‘])
TypeError: ‚NoneType‘ object is not subscriptable

Hmm raum bekomme ich ein 403 nach einer gewissen Zeit.

Das gilt es herauszufinden. Den genauen Inhalt der Fehlermeldung kann man mit dem o.g. „print“ Befehl sichtbar machen. Einfach in der text-to-speech.py an der genannten Stelle hinzufügen. Kann eigentlich nur ein Problem mit dem Api Key, Berechtigungen o.ä. sein. Wenn du die Api grade erst aktiviert hast, kann es auch einen Moment dauern, bis alle Google Systeme davon wissen.

Der API key ist ansdcheinend richtig, sonst würdest du ein HTTP Error 400: Bad Request bekommen. Schau mal nach den Einschränkungen für den API Key (kann man für bestimmte Services erlauben, auf Clients beschränken, …).

1 „Gefällt mir“

Moment mal. Lese ich das richtig: Speech-to-Text API? Was hast du denn damit genau vor? :grinning:
Versuchs mal mit Text-to-Speech :slightly_smiling_face:

2 „Gefällt mir“

Sorry… :exploding_head: Wer lesen kann ist klar im vorteil. @Dave hast recht nachdem Aktivieren der richtigen API geht auch das Skript. Sorry

1 „Gefällt mir“

Das freut mich zu hören.

Der „print“ Befehl hätte übrigens mit dem aktuellen Skript gar nicht funktioniert :frowning: Ich habe mir grad mal den Code angeschaut und an der besagten Stelle funktioniert das etwas anders als bisher. Eine vernünftige Ausgabe wäre natürlich schöner. Die Meldungen der Google Api sind ja mitunter sehr aufschlussreich und ich denke es wäre sinnvoll diese Informationen im Fehlerfall einfach immer mit auszugeben.

Ich habe mich bisher kaum mit exceptions beschäftigt, aber um die Meldungen der Google Api anzuzeigen, könnte man in der text-to-speech.py die Zeilen

    except Exception as e:
        print(e)

ersetzen durch etwas wie:

    except urllib.error.HTTPError as e:
        print(e)
        print(e.read().decode())
        sys.exit(3)

Gute Idee!

„So, if it compiles, ship it!“ © DevOps oder alternativ git push; git request-pull :wink:

1 „Gefällt mir“

Hallo,

versuche gerade das add_lead_in_messages.py Skript auf einem Mac zu verwenden.

Nach ein paar Zeilen erhalte ich die folgende Fehlermeldung:

temp.aiff: No such file or directory

Jemand ne Idee?

Verwendest du die aktuelle Version aus meinem Repo?

ja…gerade nochmal geprüft.

Wie sieht denn der Befehl aus den du eingegeben hast? Kannst du die komplette Ausgabe posten?