In dem Beitrag vor ein paar Tagen, hatte ich gezeigt wie mit einem Online-Service mp3 Dateien erzeugt werden können. Dazu schrieb Fred (Vielen Danke für die Idee): „Warum nicht einfach auf dem Raspberrypi die mp3 oder wav Voice-Dateien selber erstellen?
Beispiel
1 |
pico2wave --lang=de-DE --wave=in.wav "Warum nicht einfach auf dem Raspberrypi die mp3 oder wav Voice-Dateien selber erstellen? Viele Grüße sagt die Eule. Hi hi hi ..." |
Das geht sehr einfach und ohne Online-Service der limitiert oder kostenpflichtig ist. Und die Qualität ist auch ganz gut. Hier eine Beispielausgabe im wav Format:
Das kann dann mit lame in mp3 umgewandelt werden, hier die Beispiel Datei:
Dazu muss auf dem Raspberry Pi pico2wave und lame und für mein Script auch id3v2 installiert werden:
1 2 3 |
sudo apt-get update sudo apt-get upgrade sudo apt-get install libttspico-utils lame id3v2 |
Zum testen kann eine wav Datei mit Inhalt 77,7 wie folgt erzeugt werden:
1 |
pico2wave --lang=de-DE --wave=77.7.wav "77,7" |
Aus der wav Datei kann dann mit lame eine mp3 Datei erstellt werden:
LAME 32bits version 3.99.5 (http://lame.sf.net)
usage: lame [options]
Also z.B.
1 |
lame -b 320 "77.7.wav" |
Um nun alle Dateien von 0 bis 100 in 0,1 Schritten zu erzeugen, kann mein Script verwendet werden. Das dauert auch nur ca. 10 Minuten.
Oder hier die 2020 mp3 und wav Dateien als Archive mp3-0-100-dezimal.zip (66 MB) zur kostenlosen Nutzung downloaden.
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 |
#!/bin/bash # # Thomas Wenzlaff # # Das Script create-tag-mp3-files-dezimal.sh erzeugt wav und mp3 Dateien im Verzeichnis mit # einer Nachkommastelle. # # VERZEICHNIS="./pico2wave" cd $VERZEICHNIS || exit echo "Starte erzeugen ..." counter=0 while [ $counter -le 100 ] do dezcounter=0 while [ $dezcounter -le 9 ] do echo "Erzeuge: $counter,$dezcounter.wav" pico2wave --lang=de-DE --wave="$counter.$dezcounter.wav" "$counter,$dezcounter" echo "Erzeuge mp3 Datei $counter.$dezcounter.mp3" lame -b 320 "$counter.$dezcounter.wav" ((dezcounter++)) done ((counter++)) done echo "Tagge alle $VERZEICHNIS *.mp3 Dateien" for i in *.mp3 ; do dateiname=$(echo "${i}" | sed 's/.mp3$//') echo "${i}" id3v2 -t "Ansage der Zahl $dateiname" -T "1" -A "wenzlaff.de" -a "Thomas Wenzlaff" -y "2018" -c "$dateiname" -g 39 "${i}" done echo "Erzeuge eine Zip Datei ..." cd .. zip -r mp3-0-100-dezimal.zip $VERZEICHNIS |
Natürlich können auch andere Texte anstatt Zahlen verwendet werden. Oder auch alles zur Laufzeit neu generiert werden. Auch könnte man lame zum taggen nehmen, wie lame -? auch zeigt, aber ich hatte es mit id3v2 schon fertig.