Benachrichtigungen vorlesen mit espeak in Bourne-again shell

Moderator: renaissance

Antworten
Benutzeravatar
renaissance
Site Admin
Beiträge: 38
Registriert: Freitag 30. April 2021, 13:30
Wohnort: Halle / Saale
Kontaktdaten:

Benachrichtigungen vorlesen mit espeak in Bourne-again shell

Beitrag von renaissance »

Voraussetzung für die Verwendung unter Linux, sind die erforderlichen Installationen wie nachfolgend. Weiterhin wird ebenfalls die deutsche Sprache für espeak installiert.

Code: Alles auswählen

/usr/bin/sudo /usr/bin/apt-get install espeak
/usr/bin/sudo /usr/bin/apt-get install mbrola mbrola-de2 mbrola-de3 mbrola-de4 mbrola-de5 mbrola-de6 mbrola-de7 
Um die Benachrichtigungen abzufragen und den Inhalt zu erfassen, in einem Terminal nachfolgende Befehlszeile eingeben und das Terminal geöffnet lassen.

Code: Alles auswählen

/usr/bin/dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "member=Notify\|string"
Zum testen, in einem zusätzlichen Terminal nachfolgendes eingeben.

Code: Alles auswählen

/usr/bin/notify-send "Das ist eine Benachrichtigung"
Der Text wird nicht vorgelesen, sondern im Terminal erfasst und kann als 'string' weiterverarbeitet werden.

Für die Sprachausgabe über espeak, wird die Benachrichtigung über die Kommandozeile abgefangen. Dafür nachfolgende Zeile in einem Terminal eingeben und das Terminal geöffnet halten.

Code: Alles auswählen

/usr/bin/dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "string" | grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | grep --line-buffered -v '^\s*$' | xargs -I '{}' /usr/bin/espeak -vmb-de2 {}
Zum testen, in einem zusätzlichen Terminal nachfolgendes eingeben.

Code: Alles auswählen

/usr/bin/notify-send "Das ist eine Benachrichtigung"
Verbesserte Sprachausgabe und Geschwindigkeit
Der Standardwert für espeak des Parameter '-s', ist bei 175 Wörter / Minute. Diesen beliebig anpassen, oder die installierten Sprachen jeweils mit

Code: Alles auswählen

-vmb-de[N]
veränderrn.Der Befehl kann dann etwa so aussehen

Code: Alles auswählen

/usr/bin/dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "string" | grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | grep --line-buffered -v '^\s*$' | xargs -I '{}' /usr/bin/espeak -vmb-de2 -s 165 {}
Antworten