[Gelöst] Starter mit Terminalbefehl erstellen.

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

[Gelöst] Starter mit Terminalbefehl erstellen.

Beitrag von ottonormal » 14.04.2017 19:40:18

Hallo,

ich teste gerade "pico2wave". Mit dem Befehl im Terminal:

Code: Alles auswählen

pico2wave --lang de-DE --wave test.wav  "$(cat test.txt)"
erhalte ich eine WAV-Datei von dem Text. Ist zwar nicht berauschend, aber es funktioniert ohne Google und ist für einfachere Sachen brauchbar. Wenn ich mir nun einen Starter erstelle:

Code: Alles auswählen

[Desktop Entry]
Type=Application
Name=Text-zu-WAV
Exec=pico2wave --lang de-DE --wave test.wav  "$(cat test.txt)"
Icon=/media/Daten/Bilder/DesktopSymbole/TexttoSpeech.png
Categories=
oder den Befehl ins Openboxmenü eintrage, funktioniert das auch, aber in der WAV-Datei ist nur "Sonderzeichen cat test punkt" zu hören. Der eigentliche Inhalt der Datei fehlt.

Was muss ich anstellen, damit der Befehl auch in einem Starter oder OBox-Menüeintrag richtig funktioniert?
Zuletzt geändert von ottonormal am 15.04.2017 11:37:51, insgesamt 1-mal geändert.

maroc

Re: Starter mit Terminalbefehl erstellen.

Beitrag von maroc » 14.04.2017 21:17:42

Ein eingeklammerter Befehl hinter einem "$" wird in einer Subshell ausgeführt, und die wird aus einer Desktop-Datei wohl nicht so ohne weiteres aufgerufen. So erkläre ich mir das jedenfalls.

Mit explizitem bash-Aufruf klappt es aber dann doch, zumindest bei mir:

Code: Alles auswählen

Exec=/bin/bash -c "pico2wave --lang de-DE --wave test.wav \"$(test.txt)\""
ottonormal hat geschrieben:Ist zwar nicht berauschend, aber es funktioniert ohne Google und ist für einfachere Sachen brauchbar.
Ich habe gestern noch etwas mit pico2wave experimentiert. Per Bearbeitung mit SoX lässt sich der Klang der ausgegebenen Audiodatei deutlich "knackiger" gestalten, obwohl das im Ergebnis wohl letztlich auch Geschmackssache ist:

Code: Alles auswählen

sox -qVO -v 0.5 test.wav test-neu.wav gain -l 6 treble 20 bass -8
Entscheidend fand ich vor allem das "Hochregeln" der Höhen, also hier "treble 20". Wobei man mit dem Wert natürlich noch experimentieren kann (ich habe kein allzu gutes Gehör und trage Hörgeräte; was für mich halbwegs angenehm und deutlich klingt, kommt bei anderen möglicherweise eher als Gekrächze an :wink: ).

Benutzeravatar
seep
Beiträge: 544
Registriert: 31.10.2004 14:21:08
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: HSK

Re: Starter mit Terminalbefehl erstellen.

Beitrag von seep » 14.04.2017 21:30:00

ottonormal hat geschrieben:Exec=pico2wave --lang de-DE --wave test.wav "$(cat test.txt)"
Workaround: Schreib dieses Kommando in ein Script und rufe das Script per Menüeintrag auf.

P.S.: Selten so ein doofes Commandline-Interface gesehen, dieses pico2wave kann ja nicht einmal von der Standardeingabe lese geschweige denn aus einer Datei. :facepalm:

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Starter mit Terminalbefehl erstellen.

Beitrag von ottonormal » 14.04.2017 22:12:00

Danke für Eure Antworten. :THX:

@maroc
Mit Deinem Befehl erhalte ich eine nur 44Bytes große, leere WAV-Datei. Das funktioniert bei mir leider nicht.
Was den Klang anbelangt schraube ich auch gerne die Höhen etwas nach oben und die Bässe nach unten. Das allerbeste Gehör habe ich auch schon lange nicht mehr. Ich mache das aber mit einem Hardwaremixer, der an meinem Soundausgang hängt und die entsprechenden Regler hat.

@seep
Ich würde das mit dem Script gerne ausprobieren, habe aber überhaupt keine Ahnung davon. Hab eben mal auf einer Ubuntu-Seite etwas darüber gelesen und nichts davon begriffen. Gibt es irgendwo vielleicht ein Musterscript, das man mit meinem Befehl entsprechend anpassen könnte, zum Download?

Benutzeravatar
seep
Beiträge: 544
Registriert: 31.10.2004 14:21:08
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: HSK

Re: Starter mit Terminalbefehl erstellen.

Beitrag von seep » 14.04.2017 22:33:13

Öffne einen beliebigen Editor Deiner Wahl. Schreibe das hinein:

Code: Alles auswählen

#!/bin/sh
pico2wave --lang de-DE --wave test.wav "$(cat test.txt)"
Speichere die Zeilen als testpico.sh in Deinem Homeverzeichnis. Gebe in der Kommandzeile ein: chmod +x testpico.sh

Öffne den Starter und gebe als auszuführendes Kommando "/home/DEINNAME/testpico.sh" ein. Speichern. Ausprobieren.

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Starter mit Terminalbefehl erstellen.

Beitrag von ottonormal » 14.04.2017 23:04:56

Vielen Dank :THX: . Kurz, knapp und klar verständlich. Und es funktioniert! :D

Hab gerade beim Ergebnis auch noch etwas den Klang geregelt und muss sagen, dass das dadurch deutlich verständlicher für mich geworden ist. Nicht schlecht für eine Computerstimme :wink: .

Benutzeravatar
seep
Beiträge: 544
Registriert: 31.10.2004 14:21:08
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: HSK

Re: Starter mit Terminalbefehl erstellen.

Beitrag von seep » 15.04.2017 08:14:16

Prima. Es gibt auch espeak, das kann man auch mit Dateien oder per Standardeingabe füttern:

espeak "Hello, World!"
espeak -v de "Hallo, Welt! Dies ist ein Test."
echo "Hallo, Welt! Dies ist ein Test." | espeak -v de
dmesg | espeak

:mrgreen:

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Starter mit Terminalbefehl erstellen.

Beitrag von ottonormal » 15.04.2017 10:44:03

Danke, werde ich auch noch mal testen. Im Augenblick gefällt mir pico2wav ganz gut. Ich habe das inzwischen auch noch etwas erweitert und kann nun markierten Text im Browser oder einem anderen Programm direkt vorlesen lassen.

Dabei habe ich mich an diese Anleitung:
https://www.youtube.com/watch?annotatio ... jBtKRd7c34
gehalten. Die beiden Scripte, die zum Start und Stoppen dafür erforderlich sind, habe ich von hier:
http://paste.ubuntu.com/16222801/
und hier:
http://paste.ubuntu.com/14864680/
heruntergeladen.

Das Vorlesen auf diese Art funktioniert auch, nur das Stoppen nicht. Anhalten kann ich die Wiedergabe nur mit der Eingabe von "killall play". Ich weiß aber nicht ob das so gut ist, müsste da nicht auch noch eine temporäre WAV-Datei gelöscht werden, oder anderes?
Obwohl, das löscht doch auch Bleachbit, das ich regelmäßig nutze, oder?

Benutzeravatar
ottonormal
Beiträge: 3404
Registriert: 20.01.2014 22:25:29

Re: Starter mit Terminalbefehl erstellen.

Beitrag von ottonormal » 15.04.2017 11:37:03

Es ist gefunden: "avplay" musste ich durch "ffmpeg" ersetzen. Ist ja auch eigentlich klar :roll: .

Antworten