staging.inyokaproject.org

[BookToMP3]Hörbücher selbst erstellen

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Skripte/Book-To-MP3.

Manabe

Anmeldungsdatum:
20. Januar 2010

Beiträge: Zähle...

Um aus pdf, doc, html, htm, rtf, txt oder lit Dateien Hörbücher/dokumente (mp3) zu erstellen, habe ich mir folgendes Skript erstellt. Die Qualität ist meiner Meinung nach ausreichend, um Dokumente unterwegs ohne Schmerzen "lesen" zu können. Probleme bestehen noch bei englischen Wörtern in deutschen Texten (z.B. Fachtexten).

Wiki-Link

Benötigte Pakete sind:

poppler-utils (pdftotext)

convlit (clit)

html2text

catdoc

espeak

mbrola

lame

mp3splt(optional)

Diese können über:

sudo apt-get install <Paketname>

installiert werden.

Anschließen müssen noch zwei mbrola-Stimmen (en1, de6) auf folgender Seite heruntergeladen werden.

http://tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html

en1: British English Male (5.7Mb) Alan V. Black

de6: German Male (48.5Mb) Saarland University

Die Dateien mit root-Rechten nach /usr/share/mbrola entpacken. Die Verzeichnisse de6 und en1 sollten sich somit im Ordner /usr/share/mbrola befinden.

Der Aufruf erfolgt dann über

./book2mp3.sh <pdf, doc, html, htm, rtf, txt or lit file>

Beispiel

./book2mp3.sh "/home/niemand/Homer - Odyssee.pdf"

Den Code als ausführbare .sh - Datei (z.B. book2mp3.sh) speichern oder Anhang herunterladen.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
#clear
#------------------------------------#
#  Umwandeln von Text in Sprache      #
#------------------------------------#
#
#------------------------------------#
#  Parameter Behandlung              #
#------------------------------------#
while getopts hp opt
do
  case "$opt" in
    h)            echo -e "book2mp3 <pdf, doc, html, htm, rtf, txt or lit file>";exit 1;;
    \?) exit 1;;
  esac
done
shift $(($OPTIND - 1))
if [ "$1" ]
then
  SOURCE="$1"  
  shift
fi
#------------------------------------#
#  Umwandlung:   Buch-Datei in Text  #
#------------------------------------#
ENDOFF=${SOURCE##*.}
cd "$(dirname "$SOURCE")"
mkdir tmp
cd tmp
case "$ENDOFF" in
  pdf)            pdftotext "$SOURCE" sp.txt;;
  lit)            clit "$SOURCE" "$(dirname "$SOURCE")/tmp"; html2text *.htm* > sp.txt;;
  txt)            cp "$SOURCE" sp.txt;;
  htm)            html2text "$SOURCE" > sp.txt;;
  html)           html2text "$SOURCE" > sp.txt;;
  rtf)            catdoc "$SOURCE" > sp.txt;;
  doc)            catdoc "$SOURCE" > sp.txt;;
  \?) exit 1;;
esac
# löschen von Seitennummern
sed -e 's/[01234567890]*$//g' sp.txt > spc.txt
#------------------------------------#
#  ermitteln der Sprache des Buches  #
#------------------------------------#
ENTXT=$(cat spc.txt | grep -c " the ")
DETXT=$(cat spc.txt | grep -c " der ")
echo "Artikelzahl (article count)   en $ENTXT : de $DETXT"
#------------------------------------#
#  Umwandlung:   Text in Sprache     #
#------------------------------------#
if [ $ENTXT -le $DETXT ]
then
  espeak -v german-mbrola-6 -f spc.txt -w -.wav | mbrola -e -t 1.15 -f 0.9 /usr/share/mbrola/de6/de6 - -.wav | lame -h -V 2 - "$SOURCE.mp3"
else
  espeak -v mb-en1 -f spc.txt -w -.wav | mbrola -e -t 1.15 -f 0.9 /usr/share/mbrola/en1/en1 - -.wav | lame -h -V 2 - "$SOURCE.mp3"
fi
cd ..
rm tmp/*
rmdir tmp
#------------------------------------#
#  Aufteilen der MP3-Datei           #
#------------------------------------#
# nachfolgende Zeilen auskommentieren falls nur eine große mp3-Datei erwünscht ist
#mp3splt -t 30.0 -a -d "hoerbuch$(date +%s)" -o track_@N "$SOURCE.mp3"
# auskommentieren falls auch eine große mp3-Datei erwünscht ist
#rm "$SOURCE.mp3"

Benutzung erfolgt auf eigene Gefahr!

Viel Vergnügen beim Ausprobieren.

Moderiert von redknight:

Ins Wikiforum verschoben.

Bearbeitet von redknight:

Artikelnamen in den Titel editiert.

book2mp3.sh (2.2 KiB)
Script hoerbuch erstellen
Download book2mp3.sh

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

Ich wuerde Dir dringend empfehlen, einen Wiki-Artikel zu erstellen. Hier im Forum findet man es schon uebermorgen nicht mehr wieder...

TomTobin

Avatar von TomTobin

Anmeldungsdatum:
24. August 2007

Beiträge: 3081

Hallo Manabe,

Willkommen im Forum ☺

Leider kann ich die Pakete pdftotext, clit und mbrola nicht installieren, Wo bekomme ich die denn her bzw. ein Verweis auf die (Paket)quelle wäre im (Wiki?)Artikel nützlich 😉

Gruß

Tom

Manabe

(Themenstarter)

Anmeldungsdatum:
20. Januar 2010

Beiträge: 12

poppler-utils ist das Paket für pdftotext

mbrola gib es in karmic zumindest in der Synaptic Paketverwaltung: mbrola (multiverse/sound)

clit ist im paket: convlit(universe/utils)

wiki ist in Arbeit

TomTobin

Avatar von TomTobin

Anmeldungsdatum:
24. August 2007

Beiträge: 3081

Danke für die Rückmeldung. poppler-utils und convlit konnte ich nun installieren bzw. waren vorhanden. Nur mbrola ist nicht auffindbar. Ich verwende noch 9.04. Gibts dafür noch ne andere Quelle?

Gruß

Tom

Manabe

(Themenstarter)

Anmeldungsdatum:
20. Januar 2010

Beiträge: 12

hallo das Paket gibt es hier:

mbrola3.0.1_i386.deb

Eine weitere Hilfe zur Installation hier (ist zwar ein Artikel zu Hadifix aber auch mbrola)

TomTobin

Avatar von TomTobin

Anmeldungsdatum:
24. August 2007

Beiträge: 3081

Schade, ich bin wohl raus ☹

Das Paket meldet mir: "Falsche Systemarchitektur" und unter der Hadifix-Beschreibung steht:

Diese Lösung ist für die amd64 Architektur nicht geeignet da es kein amd64 Debian Paket von MBROLA gibt!

Bitte im Wiki-Artikel vermerken wenn es keine amd64 Lösung gibt 😳

Gruß

Tom

Manabe

(Themenstarter)

Anmeldungsdatum:
20. Januar 2010

Beiträge: 12

TomTobin

Avatar von TomTobin

Anmeldungsdatum:
24. August 2007

Beiträge: 3081

Habe mir den Wiki-Artikel angesehen - prima 👍

Eine Frage hätte ich noch - leider kann ich es nicht ausprobieren - aber ich denke ein Hinweis wie die Rechte unter /usr/share/mbrola ausehen müssten wäre für Anfänger ganz angebracht. Wenn ich die en1 und de6 Archive nämlich mit einem nautilus(root) dort entpacke landen die dort mit dem jeweiligen Verzeichnisnamen und den Rechten drwx-––- - ich denke mal da wird schon mindestens ein drwxrr– benötigt 😉

Gruß

Tom

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

TomTobin schrieb:

ich denke mal da wird schon mindestens ein drwxrr– benötigt

Das reicht nicht. Besser drwxr-xr-x verwenden.

Manabe

(Themenstarter)

Anmeldungsdatum:
20. Januar 2010

Beiträge: 12

eigentlich sollten Leserechte ausreichen, ist etwas wie ein wav-file aber sicher ist sicher.

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

Manabe schrieb:

eigentlich sollten Leserechte ausreichen, ist etwas wie ein wav-file aber sicher ist sicher.

Man muss zwischen Ordner- und Dateirechten unterscheiden. Fuer Dateien dementsprechend -rwxr--r--. Habe ich im Artikel ergaenzt.

Manabe

(Themenstarter)

Anmeldungsdatum:
20. Januar 2010

Beiträge: 12

Danke super.

TomTobin

Avatar von TomTobin

Anmeldungsdatum:
24. August 2007

Beiträge: 3081

Ich hab noch etwas gesucht für amd64 mit 9.04 😉

Hier gibts ein amd64-Paket für karmic: http://packages.ubuntu.com/de/karmic/amd64/mbrola/download

Ich habe das Paket mal unter jaunty (amd64) getestet. Funktioniert ohne Probleme, alle Abhängigkeiten waren erfüllt.

Hab mir dann ein pdf vorlesen lassen. Es erscheint zwar noch ein Fehler am Ende des Skripts aber es liegt eine funktionierende mp3-Datei vor.

tom@tom:~$ ./book2mp3.sh /home/tom/Downloads/test.pdf
Articlezahl (article count)   en 0 : de 3
LAME 3.98 64bits (http://www.mp3dev.org/)
Using polyphase lowpass filter, transition band: 10758 Hz - 11025 Hz
Encoding <stdin> to /home/tom/Downloads/test.pdf.mp3
Encoding as 22.05 kHz single-ch MPEG-2 Layer III VBR(q=2)
Mp3Splt 2.1 (2004/Sep/28) by Matteo Trotta <matteo.trotta@lib.unimib.it>
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Error: your output format may be ambiguous! (@t or @n missing)
tom@tom:~$ 

Gruß

Tom

Manabe

(Themenstarter)

Anmeldungsdatum:
20. Januar 2010

Beiträge: 12

super habe es in der wiki ergänzt.

PS: ich benutze book2mp3 wie unten angegeben, um unter KDE mit dem Plasma plugin "Magischer Ordner" und Gnome die "Nautilus Actions" dazu, mir Texte per Drag'n Drop oder Rechtsklick vorlesen zu lassen. Dazu muss nur die lame- durch eine aplay-Variante ersetzt werden (Vorsicht bei langen Dokumenten).

1
2
3
#espeak -v german-mbrola-6 -f spc.txt -w -.wav | mbrola -e -t 1.15 -f 0.9 /usr/share/mbrola/de6/de6 - -.wav | lame -h -V 2 - "$SOURCE.mp3"

espeak -v german-mbrola-6 -f spc.txt -w - | mbrola -e -t 1.15 -f 0.9 /usr/share/mbrola/de6/de6 - - | aplay -f cd -r 11000
Antworten |