[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: