Seite 1 von 1

gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 15:21
von toper3902
Hallo zusammen,
mit diesem Programm speichere ich den Inhalt einer Liste in einer Audiodatei.

Code: Alles auswählen

import sys

from gtts import gTTS


text = ["hallo","2","4"]
mytext = str(text)
print(mytext)
language = "de"
myobj = gTTS(text=mytext, lang=language, slow=False)
myobj.save("test.mp3")
Meine Frage:
Wie schaffe ich es dass zwischen den Wörtern, also den einzelnen Teilen der Liste eine Pause entsteht.

z.B.
Hallo (2 Sekunden pause) 2 ...

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 16:00
von ArtooDetoo
Mal ganz naiv: Hast du probiert da ein oder mehrere Leerzeichen zwischen einzufügen, wie z. B. ["Hallo', ' ', 'Welt']?

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 16:44
von toper3902
Ja, habe sämtlich Zeichen ausprobiert:
/ ... \n "" u.s.w
Aberentweder passiert nichts oder das Zeichen wird ausgesprochen

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 16:44
von __deets__
Das ist erstmal ganz schoen schraeg, dass du einfach eine String-Repraesentation aus deiner Liste machst. Statt da durch

" ".join(text)

einen vernuenftigen String zu bauen.

Und dann muss man wohl SSML benutzen: https://cloud.google.com/text-to-speech/docs/ssml

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 16:52
von toper3902
So wie ich das sehe ist das aber nicht für python gedacht oder?

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 16:54
von __deets__
Das ist fuer GTTS gedacht. Hast du es einfach mal *ausprobiert*? Python ist an dieser Stelle doch nur eine sehr duenne Schicht ueber Server-APIs von Google. Und die verstehen SSML. Welchen Grund hast du anzunehmen, das waere nicht so, wenn du Python benutzt, um damit zu reden?

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 16:58
von toper3902
Naja, das ganze funktioniert nicht so wie es da steht. Vielleicht bin ich einfach zu blöd aber dass funktioniert so bei mir nicht

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 17:00
von __deets__
Was funktioniert nicht? Was machst du? Ich sehe nichts von SSML in dem Code den du bisher gepostet hast. Darum weiss ich auch nicht, woran es liegt. An dir, oder an der Python Bibliothek.

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 17:02
von toper3902
Wie genau muss das ganze denn aussehen.
Könntest du mal einen Beispielcode posten?

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 17:24
von __deets__
Also gerade noch behauptest du, du haettest etwas probiert. Und jetzt kannst du das nicht zeigen, aber ich soll dir was programmieren? Aha. Ich komm mir jetzt etwas verarscht vor, aber gut.

Code: Alles auswählen

mytext = """<speak>
  Here are <say-as interpret-as="characters">SSML</say-as> samples.
  I can pause <break time="3s"/>.
  I can play a sound
  <audio src="https://www.example.com/MY_MP3_FILE.mp3">didn't get your MP3 audio file</audio>.
  I can speak in cardinals. Your number is <say-as interpret-as="cardinal">10</say-as>.
  Or I can speak in ordinals. You are <say-as interpret-as="ordinal">10</say-as> in line.
  Or I can even speak in digits. The digits for ten are <say-as interpret-as="characters">10</say-as>.
  I can also substitute phrases, like the <sub alias="World Wide Web Consortium">W3C</sub>.
  Finally, I can speak a paragraph with two sentences.
  <p><s>This is sentence one.</s><s>This is sentence two.</s></p>
</speak>"""
Diesen text statt deinem, den ich so aus der Seite, die ich dir genannt habe, kopiert habe, einfach mit gtts verarbeiten, so wie du es bisher schon machst.

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 17:28
von toper3902
Dann ließt er mir aber nur die ganzen Zeilen vor und führt keine Befehle oder so aus.

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 17:33
von __deets__
Was soll das heissen? Macht er die Pause? Macht er keine Pause? Was genau liest er dir vor?

Du musst echt an deiner Art, hier Fragen zu stellen und Probleme zu beschreiben arbeiten. Wir sind nicht dazu da, dir deine Probleme ohne auch nur einen Hauch von Eigeninitiative deinerseits zu loesen.

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 17:35
von toper3902
Er lißt mir alles vor also :
größerals break time istgleich ...

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 17:59
von __deets__
Die Bibliothek scheint selbst tokenisieren zu wollen. Was du mal probieren kannst ist, zusaetzlich zu deinem Text einen dummen Tokenizer mitzugeben:

Code: Alles auswählen

myobj = gTTS(text=mytext, lang=language, slow=False, tokenizer_func=lambda text: [text])

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 18:03
von toper3902
Da verändert sich nichts.
Er erkennt zwar den Befehl, aber es passiert nichts

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 18:05
von __deets__
Dann hab' ich auch keine andere Idee mehr.

Re: gtts pause einbauen

Verfasst: Montag 25. Februar 2019, 18:06
von toper3902
Ok, trotzdem vielen Dank für den Versuch