Forum“mbrola, txt2pho und lame” hand in hand??
florian m – Dienstag, 08. März 2005 21:52 Uhr

Hallo alle zusammen,

Was ich möchte:
Text in mp3 wandeln g

Was schon geht:
Text in wav Dateien wandeln, und wav Dateien in mp3 wandeln

Sprich sowohl mbrola/txt2pho laufen als auch der lame encoder läuft für
sich selbst perfekt.

Was nicht geht:
Wenn ich lame anweise keine direkte wav datei zu wandeln sondern in
>stdin< nach dem Ausgangsmaterial suchen soll, welches vorher von mbrola dort deponiert wurde weist die erzeugte mp3 datei nur komisches Rauschen auf. Hat jemand eine Idee woran das liegen könnte? bzw. was man dagegen machen kann außer den Umweg über ein shell skript zu gehen. Vielen Dank schon mal im Vorraus Florian

2 Antworten
Guenter Gehl – Mittwoch, 09. März 2005 07:26 Uhr

Das Problem ist, daß in der wav-Datei am Anfang im Header die Länge eingetragen wird und die ist erst am Ende der Synthese bekannt. Deshalb kannst du die wav-Synthese nicht in eine Pipe lenken, sondern mußt über eine temp-Datei gehen. Häßlich, aber da bin ich auch zuerst reingefallen, als ich mbrola mal ausprobiert habe.
Falls du die Syntheseergebnisse öffentlich zugänglich machst, so würde ich dir zur Vermeidung einer unklaren rechtlichen Situation allerdings anstelle von mp3 doch lieber ogg-Format empfehlen.

Conleth Ruane – Mittwoch, 09. März 2005 10:36 Uhr

Wenn ich es noch richtig im Kopf habe muss du nur entsprechende optionen mitgeben um den Input zu beschreiben, vorallem die Bitrate (-b), mode (-m) und sampling rate (-s) spezifizieren.

z.B. | lame -r -m m -b 16 -s 22.05 – out.mp3

Hope this helps.
Bye
Con

florian m – Mittwoch, 09. März 2005 14:42 Uhr

dein tipp con scheint nicht zu funktionieren ….

ich finde die sache eigendlich sowieso etwas komisch durch die eingabe von
“lame –longhelp”

bekommt man nämlich
“…
usage: lame [options] [outfile]

and/or can be “-“, which means stdin/stdout.
…”

funktioniert aber nicht … was guenter gesagt hat kommt mir auch ganz
plausibel vor ..

thx florian

Conleth Ruane – Mittwoch, 09. März 2005 15:12 Uhr

Wahrscheinlich brauchst du noch die Option -x.
Folgendes klappt wunderbar bei mir:

echo “Hallo. Das ist ein test” | txt2pho | mbrola /usr/local/mbrola/txt2pho/data/de3 – – | lame -x -m m -b 16 -s 22.05 – xxx.mp3

Bye
Con

Conleth Ruane – Mittwoch, 09. März 2005 15:13 Uhr

Alles in einer zeile natürlich. ;-)

florian m – Donnerstag, 10. März 2005 14:44 Uhr

=) fast schon perfekt …. freu

aber mal spaß beiseite, die funktion -x scheint echt was bewirkt zu haben …
komisch ist nur das wenn ich erst ne wav erzeuge und dann ne mp3 draus mache
eine angenehme frauenstimme zum vorschein kommt. wenn ich aber direkt ne mp3
daus mache kommt ne stimme die sich anhört als hätte man n altes tonband
schneller laufen lassen. das wav file und das mp3 file sind aber gleich “lang”.

klappt das bei dir besser con, an was könnte das liegen??
gruß florian

Conleth Ruane – Donnerstag, 10. März 2005 16:01 Uhr

Hi Florian,

bei mir ist es ähnlich, also habe ich noch ein Paar lame Optionen ausprobiert.

Mit -v bekommst du ein mp3 File der genausogut klingt wie der aus dem wav File erzeugte. Ist allerdings etwas grösser.

… | lame -x -m m -b 16 -v -s 22.05 – xxx.mp3

Wenn du zusätzlich noch -V 8 angibst, kommt ein datei heraus der etwas kleiner ist als der aus dem wav File erzeugte aber noch gut klingt.

… | lame -x -m m -b 16 -v -V 8 -s 22.05 – xxx.mp3

Mit unterschiedliche Werte für -V kannst du ein Kompromis erreichen zwischen Grösse und Qualität.

Bye
Con