Skript für Ansagen in mp3-Dateien

Probiere es mal mit dem öffentlichen Key aus dem verlinken Posting. Da musst du nichts extra einrichten.

Zugegeben, es ist nicht so einfach und nach einem Jahr auch nicht mehr kostenlos (nen komplettes Set erzeugen kosten 0,01$). Ich stelle die Dateien deswegen ja auch zur Verfügung (vorallem weil da die Lizenz Lage relativ klar ist).

Ist sie absolut nicht. Ich ranke die Engines momentan so:

  1. Google/Amazon (tun sich IMHO nichts)
  2. say von macOS
  3. gTTS
1 „Gefällt mir“

Werde ich mal machen. Danke für den Link!

Wenn du das schon sagst :sweat_smile:

OK. Alles klar. Dann werde ich mal den verlinkten Google Key nehmen.

Ich hab mal eine Hörprobe aller 4 Engines hochgeladen. Könnt ihr selber mal vergleichen. Link hällt 48h.

Das Probehören ist beendet. :wink:

3 „Gefällt mir“

Danke fürs Teilen, jetzt verstehe ich was du meinst. Im direkten Vergleich ist Google TTS mMn immer noch am besten. Klingt am natürlichsten und ist am besten verständlich.
Zwischen MacOS say und Polly könnte ich mich jetzt ehrlich gesagt nicht entscheiden.
gTTS würde ich aber definitiv keiner der anderen Optionen vorziehen. Klingt doch ziemlich synthetisch und etwas abgehackt.

3 „Gefällt mir“

Bevor ich das Script kannte, habe ich händisch versucht die Titel über Internetseiten als MP3 zu generieren und dann vor die Höhrspiele zu packen.
Die kostenlosen Stimmen klangen alle noch schlimmer :grimacing:
Deshalb fand ich gTTS nicht so schlimm. Aber im Vergleich mit den anderen 3 ist es eindeutig das schlechteste. Schade eigentlich.
Außerdem habe ich festgestellt, dass zusammengesetzte Wörter manchmal buchstabiert werden. Keine Ahnung warum, aber durch trennen der Wörter mit Bindestrich oder Leerezichen läßt sich das abstellen.

Ja die Unterschiede sind schon erheblich, zumindest was gtts betrifft.

Dem stimme ich auch zu. Wobei ich doch erstaunt bin, dass say garnicht mal sooo schlecht klingt.

Habt ihr bei say mal die verschiedenen Stimmen ausprobiert? Ich finde da gibt es auch nochmal einen enormen Unterschied in der Qualität.
Allerdings ist der Umgang mit englischen Worten in deutschen Texten z.T. gruselig (z.T. Dann wieder gut :man_shrugging:t2:)
Kann einer was zu Google und Amazon sagen, wie das da ist?

Naja es ist für jede Sprache ja im Prinzip eine andere Stimme. Wenn du mit —lang eine andere Sprache wählst wird automatisch je nach Dienst die passende Stimme gewählt, das hatte @Til damals praktischerweise so eingebaut. Teilweise gibt es mehrere Möglichkeiten, ich hab halt die gewählt, die mir am besten gefallen hat als ich das für fr (Achtung: Hierfür gibt es kein Sprachfile), nl und es erweitert habe:

Also ich meinte schon innerhalb einer Sprache.
Für Deutsch gibt es glaube ich zur Zeit 5 Stimmen oder so, die sich eben auch in den Pausen und Betonungen unterscheiden.

Genau, jetzt bezogen auf say gefällt mir Anna am besten, deswegen ist die in meinem Repo eben voreingestellt.

Ich bekomme folgende Fehlermeldung nach Eingabe der Zeile:
python add_lead_in_messages.py -i "B:\Music\1 Tonuino\Astrid Lindgren\Mehr von uns Kindern aus Bullerbü CD1\01_Wir Kinder aus Bullerbü.mp3" -o "B:\Tonuino\tmp\02\011_01_Wir_Kinder_aus_Bullerbue.mp3" --file-regex "Mehr von uns Kindern aus Bullerbü CD1" --use-google-key="API key xyz"

Traceback (most recent call last):
  File "add_lead_in_messages.py", line 135, in <module>
    addLeadInMessage(args.input, args.output)
  File "add_lead_in_messages.py", line 76, in addLeadInMessage
    text = re.sub(fileRegex, titlePattern, inputFileName).replace('_', ' ').strip()
  File "C:\Users\AppData\Local\Programs\Python\Python37-32\lib\re.py", line 194, in sub
    return _compile(pattern, flags).sub(repl, string, count)
  File "C:\Users\AppData\Local\Programs\Python\Python37-32\lib\re.py", line 311, in _subx
    template = _compile_repl(template, pattern)
  File "C:\Users\AppData\Local\Programs\Python\Python37-32\lib\re.py", line 302, in _compile_repl
    return sre_parse.parse_template(repl, pattern)
  File "C:\Users\AppData\Local\Programs\Python\Python37-32\lib\sre_parse.py", line 1012, in parse_template
    addgroup(int(this[1:]), len(this) - 1)
  File "C:\Users\AppData\Local\Programs\Python\Python37-32\lib\sre_parse.py", line 956, in addgroup
    raise s.error("invalid group reference %d" % index, pos)
re.error: invalid group reference 1 at position 1

Ich vermute, dass hier wieder die - und _ im Dateinamen das Problem verursachen. Kann man das im Skript irgendwie anpassen? Kenne mich mit Python nicht aus um das selbst zu lösen.

Bei mir waren Leerzeichen mal ein Problem. Versuche mal, ob du ohne Leerzeichen auch die Fehlermeldung bekommst. Bei mir werden Leerzeichen als Trennung zwischen Parametern interpretiert.
Edit: hier waren es auch die - und _

Ohne die Anführungszeichen gab es bei mir auch Probleme mit den Leerzeichen. Aber das sollte jetzt nicht mehr das Problem sein. Werde es aber trotzdem mal testen.

Genau, daher meine Vermutung…

Und das ist meine Hoffnung:

Mittlerweile weiß ich, woran es liegt. Die Leerzeichen sind es nicht. Auch das - und _ nicht.

Das Problem wird durch --file-regex verursacht. @stephan, @Dave, hattet ihr das mal probiert bzw. läuft das bei euch?

Was sollen wir probiert haben?

Den Zusatz mit --file-regex. Ich würde gerne einen eigenen Namen vorgeben.

Negativ, habe ich nie benutzt.

Hmm, ok. Dann gibt es da wohl einen Bug. Muss mir einen Workaround überlegen.

Die --file-regex wird zusammen mit --title-pattern verwendet.

Beispiel

Das Verzeichnis sieht so aus:

+- 04_Michel
    +- 001_Michel_Folge 1_Michel in der Suppenschüssel.mp3
    +- 002_Michel_Folge 2_Michel muss mehr Männchen machen.mp3
    +- 003_Michel_Folge 3_Michel bringt die Welt in Ordnung.mp3

Aufruf:

python add_lead_in_messages.py -i '04_Michel' -o my-target --use-amazon --file-regex '.*_Folge \d+_(.*)' --title-pattern '\1'

Dann wird folgendes angesagt:

  • Michel in der Suppenschüssel
  • Michel muss mehr Männchen machen
  • Michel bringt die Welt in Ordnung
2 „Gefällt mir“