Seite 1 von 1
pdf2mp3
Verfasst: Samstag 13. November 2010, 22:37
von busfahrer
Hallo
ausgehend von diesem Thread
http://forum.ubuntuusers.de/topic/pdf-d ... n-pdf2mp3/ im UU-Forum und diesem
http://media.cdn.ubuntu-de.org/forum/at ... 17/pdf2mp3 original Skript, habe ich mich mal versucht das Skript zu überarbeiten.Habe diverse os.popen und os.system aufrufe durch subprocess bzw. durch Python Bordmittel ersetzt.Würde jetzt gerne ein oder zwei Meinungen dazu hören ob man das Skript so auf die Menschheit los lassen kann.
Gruß....busfahrer
Hier der Link zum überarbeiteten Skript ->
http://www.python-forum.de/pastebin.php?mode=view&s=88
Re: pdf2mp3
Verfasst: Samstag 13. November 2010, 23:16
von EyDu
Ich würde ein wenig zusammenstampfen:
Code: Alles auswählen
def main():
...
result = convert(options.file, options.output)
if result is not None:
print result
return 2
def convert(filename_inp, filename_out):
if not os.path.isfile(filename_inp):
return '*** input file %s does not exist ***' % filename_inp
extension_out = os.path.splitext(filename_out)[1]
if extension_out not in('.wav', '.mp3'):
return 'please decide whether you want wav or mp3 format by \
typing -o filename.wav or -o filename.mp3'
extension = os.path.splitext(filename_inp)[1]
if extension not in('.dat', '.txt', '.pdf')
return '*** input file does not have extension (.txt, .dat, .pdf) ***'
if extension == '.pdf':
print 'converting pdf file: %s to ASCII' % filename_inp
pdf_convert_to_ascii(filename_inp)
filename_inp = "%s.txt" % filename_inp[:-len(extension)]
convert_to_wav(filename_inp, filename_out, options.voice)
if extension_out == '.mp3':
convert_wav_2_mp3(filename_out)
Vielleicht noch hier und dort ein paar Konstanten.
Natürlich alles ungetestet.
Re: pdf2mp3
Verfasst: Sonntag 14. November 2010, 12:18
von busfahrer
Hallo
vielen Dank @EyDu für deine Anregungen.Habe mal versucht sie umzusetzen und das ist dabei raus gekommen.Wäre nett wenn da noch mal jemand drüber schaut.
Skript ->
http://www.python-forum.de/pastebin.php?mode=view&s=89
Gruß...busfahrer
Re: pdf2mp3
Verfasst: Sonntag 14. November 2010, 12:28
von EyDu
Man könnte statt den "return"s in "convert" auch Ausnahmen werfen.
Re: pdf2mp3
Verfasst: Sonntag 14. November 2010, 12:41
von busfahrer
EyDu hat geschrieben:Man könnte statt den "return"s in "convert" auch Ausnahmen werfen.
Das Spiel mit den Exceptions bereitet mit noch große Schwierigkeiten

Ansonsten könnte man das Skript so auf die Menschheit los lasse?
Gruß...busfahrer
P.s.: Ich wäre dir natürlich auch nicht böse, wenn du mir für so eine Ausnahme ein kleines Beispiel geben würdest

Re: pdf2mp3
Verfasst: Sonntag 14. November 2010, 14:59
von DaMutz
ohne das ich dein Skript im Detail angesehen habe, hätte ich noch eine kleine Anpassung im folgenden Codeteil:
Code: Alles auswählen
def convert_wav_2_mp3(filename_out):
call(['lame', '-f', filename_out[:-4] + '.wav', filename_out[:-4] + '.mp3'])
os.remove(filename_out[:-4] + '.wav')
was ist wenn lame nicht installiert ist, oder die Konvertierung fehlschlägt. Dann wird die .wav Datei einfach gelöscht. Nicht unbedingt ein Benutzerfreundliches verhalten, imho.
Re: pdf2mp3
Verfasst: Sonntag 14. November 2010, 16:40
von busfahrer
Hallo
das ``lame`` nicht installiert ist sollte so Gott will nicht passieren, da die Abhängigkeiten des Skripts im Skript selbst erwähnt werden.
Code: Alles auswählen
# LIST OF PACKAGES NEEDED:
# you need to install the following packages:
# sudo apt-get install python poppler-utils festival festvox-rablpc16k
# lame espeak
Ansonsten hab ich diesen Teil jetzt so geändert
Code: Alles auswählen
def convert_wav_2_mp3(filename_out):
retcode = call(['lame', '-f', filename_out[:-4] + '.wav',
filename_out[:-4] + '.mp3'])
if retcode == 0:
print 'Datei %s wurde erfolgreich erstellt'% filename_out
os.remove(filename_out[:-4] + '.wav')
Gruß...busfahrer