Re: Sprachausgabe aus Skript (Pipe)
On Thursday 19 June 2014 10:26:00 Dietmar Segbert wrote:
> Hallo Michael,
> ich wäre schon an Deinem Script interessiert, aber auch daran, wie Du
> flirc mit mpd zusammennutzt.
> Ich habe einen Raspberry Pi mit Hifiberry und Volumio, welches auch
> MPD nutzt, am Laufen. Dazu ist ein Flirc angesteckt, so dass ich über
> Fernbedienung CTRL-ALT-DEL auslösen kann und den Raspberry
> runterfahren kann.
Hallo Dietmar,
ich habe das Skript ganz unten angehängt. Ein paar Erklärungen dazu:
- Das Locking mit dotlockfile ist dazu da, um zu verhindern, dass die
Ansage erneut gestartet wird, während sie schon läuft.
- Aufruf-Parameter des Skripts werden direkt an mpc durchgereicht. Ich
benutze das für den mpd-Password-Parameter, also
$ /usr/local/bin/mpd-announce -h password@mpdhost
- Der Block, in dem das aktuelle Stück mit sed bearbeitet wird, hat
damit zu tun, dass ich in der letzten Zeit vorwiegend "klassische" Musik
höre. Da kommen in den Titeln häufig Angaben von Opus und Nummmer/Number
vor, abgekürzt als Op. und No.. Die ungekürzte Form klingt einfach
besser. Ich habe noch keinen einfachen Weg gefunden, römische Zahlen,
die ebenfalls häufig vorkommen, in arabische umzuwandeln.
Ich benutze das Skript auf einem gewöhnlichen Debian, wo ich die
Ereignisse von triggerhappy verarbeitet werden, das dann mein Skript
aufruft. Flirc habe ich so programmiert, dass es die "Ansagtetaste" auf
meiner Fernbedienung in den Buchstaben "i" umwandelt; das ist die
"Info"-Taste auf einem der Keyboards, die im Flirc-GUI angeboten werden.
Triggerhappy wiederrum habe ich so konfiguriert, dass es nicht auf allen
Input-Devices lauscht, sondern nur auf /dev/input/by-id/usb-
flirc.tv_flirc-event-kbd.
Volumio basiert auf Debian, du könntest dort also vermutlich
triggerhappy installieren. Ich habe allerdings nicht herausfinden
können, ob auf Volumio vielleicht bereits ein anderes Paket für IR-
Fernbedienung installiert ist, etwa lirc. Die Frage, wie du per
Fernbedienung ein Skript starten kannst, wirst du wahrscheinlich am
einfachsten in einem Volumio-Forum beantwortet bekommen.
Michael
#! /bin/sh -e
device="default:CARD=X20"
lock="/run/lock/mpd-announce"
dotlockfile -r 0 -p "$lock" || exit 0
trap "dotlockfile -p -u \"$lock\"" EXIT TERM INT
current=$( mpc "$@" current )
test -n "$current" || exit 0
current=$( \
echo "$current" | \
sed -e 's/op\. \?\([0-9][0-9]*\)/Opus \1/ig' \
-e 's/no\. \?\([0-9][0-9]*\)/Number \1/ig;s/-//g' \
)
echo "$current" | \
espeak -s 140 -v en --stdout | \
aplay -q -D"$device" -
exit 0
--
Michael Schuerig
mailto:michael@schuerig.de
http://www.schuerig.de/michael/
Reply to: