ubuntuusers.de

Ubuntu liest vor!

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11314

Wohnort: Bremen

Hi!

grumpy grizzly schrieb:

Ja die doppelten Anführungszeichen meinte ich, was für einen Zweck sollte denn echo ""$bla"" haben? Das ist das selbe wie echo $bla. Bash kennt keine inneren und äußeren Anführungszeichen, falls das deine Idee dahinter war?

Die "Idee" war, irgendwie zu versuchen, die Anführsungsstriche in den Variablentext mit hineinzubekommen; dazu kamen dann noch mangelndes Wissen und zunehmende Müdigkeit 😉

Da geht es sogar so:

CONFIG2=`cat $(yad --file-selection --title "Name und Ort der Konfigurationsdatei-Datei" --filename="$HOME/.sane/xsane/xsane2speech.conf")`

Ich meinte eigentlich dass die beiden Schreibweisen äquivalent sind und man sich deshalb für eine von beiden entscheiden sollte. ☺ Die Kommandoersetzung kann man verschachteln, also $(... $(...)) funktioniert auch.

Da muss ich inhaltlich erstmal passen; die $()-Konstruktion hatte ich aus der Yad-Beispiel-Seite so übernommen, und auch nur für yad eingesetzt 😉

so long
hank

grumpy_grizzly

Avatar von grumpy_grizzly

Anmeldungsdatum:
26. Dezember 2011

Beiträge: 263

Wohnort: Stockholm

Heinrich Schwietering schrieb:

Die "Idee" war, irgendwie zu versuchen, die Anführsungsstriche in den Variablentext mit hineinzubekommen; dazu kamen dann noch mangelndes Wissen und zunehmende Müdigkeit 😉

Dachte ich mir schon, das würde dann z.B. so funktionieren:

echo \""$VARIABLE1 $VARIABLE2 $VARIABLE3"\"

Da muss ich inhaltlich erstmal passen; die $()-Konstruktion hatte ich aus der Yad-Beispiel-Seite so übernommen, und auch nur für yad eingesetzt 😉

Achso, ich hatte angenommen du wüsstest was du tust. 😉 Also anstatt

CONFIG2=`cat $(yad --file-selection --title "Name und Ort der Konfigurationsdatei-Datei" --filename="$HOME/.sane/xsane/xsane2speech.conf")`

schreibst du besser

CONFIG2=$(cat $(yad --file-selection --title "Name und Ort der Konfigurationsdatei-Datei" --filename="$HOME/.sane/xsane/xsane2speech.conf"))

Der Effekt von

$(...) und `...`

ist der selbe. Das was drin steht wird in einer sub-shell ausgeführt und die Ausgabe dieser sub-shell wird an dieser Stelle eingesetzt. Auch wenn beide Schreibweisen äquivalent sind ist es nicht wirklich sinnvoll beide zu mischen. ☺

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11314

Wohnort: Bremen

Hi!

grumpy grizzly schrieb:

Dachte ich mir schon, das würde dann z.B. so funktionieren:

echo \""$VARIABLE1 $VARIABLE2 $VARIABLE3"\"

Jo, das hatte ich dann irgendwann auch raus, und auch, dass einfache " um mehrere Variablen durchaus sinnvoll sein können. Oder 😉?

Achso, ich hatte angenommen du wüsstest was du tust. 😉

Unglaublich, wie konnte denn der Eindruck nur entstehen 😲 🤣

Also anstatt

CONFIG2=`cat $(yad --file-selection --title "Name und Ort der Konfigurationsdatei-Datei" --filename="$HOME/.sane/xsane/xsane2speech.conf")`

schreibst du besser

CONFIG2=$(cat $(yad --file-selection --title "Name und Ort der Konfigurationsdatei-Datei" --filename="$HOME/.sane/xsane/xsane2speech.conf"))

Der Effekt von

$(...) und `...`

ist der selbe. Das was drin steht wird in einer sub-shell ausgeführt und die Ausgabe dieser sub-shell wird an dieser Stelle eingesetzt. Auch wenn beide Schreibweisen äquivalent sind ist es nicht wirklich sinnvoll beide zu mischen. ☺

Ok, danke, und wieder was dazugelernt 😉. Vielleicht weiß ich ja irgendwann wirklich, was ich tue, aber bis dahin gibts ja die hilfreiche Unterstützung von euch 👍

so long
hank

EDIT: Im Anhang die aktuellste Version des Konfig-Erstell-Skriptes! EDIT 2: Ooops - eine Leerstelle eliminiert... (24.01.)

xsanekonf.sh (4.1 KiB)
Nochmal verbesserte Version des xsane2speech-Konfigurationserstellungsskriptes
Download xsanekonf.sh

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11314

Wohnort: Bremen

Hi!

Hier jetzt die angekündigte xsane2speech-Version mit yad-Unterstützung (statt Zenity). Die Auswahl-Dialoge erscheinen rechts unten; das kann in den Skripten angepasst werden ( -- geometry -0-0 regelt die Position). Die Schaltflächen können per Tastatur über die Cursortasten angewählt, und mit der Leertaste aktiviert werden. Ob man die Schaltflächen auch per definierter Taste auf der Tastatur belegen kann habe ich leider nicht herausfinden können, aber so ist es auch schon einfacher vorher. Es wird jetzt auch eine Infobox ausgegeben, wenn die Texterkennung oder die mp3-Erstellung abgeschlossen ist, die dann von Orca o.ä. auch vorgelesen werden könnte (die Boxen verschwindet nach ca. 10 Sekunden von selbst, der Wert kann aber über die --timeout-Option im Skript angepasst werden). Die Idee mit der Fortschrittsanzeige konnte ich nicht umsetzen, dazu müsste wohl so etwas wie ein Counter gestartet werden, und da weiß ich nicht, ob das überhaupt möglich ist, weil ja nicht absehbar ist, wie lange denn eine Umwandlung tatsächlich dauert.

Außerdem habe ich für die Wiedergabe mit eSpeak die Möglichkeit eingebaut, die Stimme zu wechseln, oder anzupassen. Man kann also erstmal reinhören, und wenn es nicht gefällt, "Beenden" wählen, dann hat man die Möglichkeit, eine andere Stimme und/oder Einstellung zu testen. Die Optionen dazu müssen dann allerdings per Tastatur eingegeben werden, in der Form "mb-de6 -s134 -g4" (nur einfache Leerstellen!), es kann dann angehört, und bei Bedarf auch nochmals korrigiert werden (wieder über "Beenden", dann erfolgt eine erneute Abfrage dazu). Diese Stimmeinstellung wird dann auch für eine mp3-Erstellung verwendet. Für Festival ist das etwas komplexer, daher hab' ich bisher nicht versucht, es einzubauen...

Im Hauptskript muss ggf. der Pfad für das select.sh-Skript angepasst werden, wenn dieses nicht im PATH liegt, über die Variable SEL. Dasselbe gilt, wenn ein selbstkompiliertes deutschsprachiges Festival verwendet werden soll, anzupassende Variable/Pfad dafür ist FESTIVAL.

Die Grundkonfiguration von xsane2speech kann über das Skript aus dem Post oben erfolgen, man wird (hoffentlich 😉) fehlerfrei durch die Angaben geleitet. Man kann dann die Werte in einer Datei speichern, und sie später wieder über den Aufruf des xsanekonf.sh-Skriptes in XSane eintragen lassen; das Skript startet XSane mit den angegebenen Werten/Konfigdatei für xsane2speech.

Ich hoffe, so ist es insgesamt "bedienerfreundlicher"; einziger Nachteil ist, dass dafür yad benötigt wird, das aber über ein PPA beziehbar ist, und hoffentlich bald auch in die Ubuntu-Quellen Einzug findet.

Ich freue mich über Rückmeldungen!

so long
hank

select.sh (2.9 KiB)
Wiedergabesteuerung für xsane2speech
Download select.sh
xsane2speech.sh (11.1 KiB)
xsane2speech - Vorlesen mit XSane
Download xsane2speech.sh

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11314

Wohnort: Bremen

Hi!

Ein Jahr später: Diese Versionen sind jetzt - nochmal gründlich überarbeitet - im Wiki: xsane2speech . Tester willkommen!

so long
hank

Antworten |