Le programme mplayer
est en général
disponible par défaut sur toutes les distributions
linux. Il est donc utilisable sur une Raspberry Pi. On peut
naturellement le lancer tel quel en spécifiant un fichier
audio ou l'url d'une radio. Mais pour faciliter les
opérations un certain nombre de scripts bash ont été
écrits. Ils permettent de lancer le programme pour une
sélection de radios prédéfinies, de l'arrêter facilement,
de régler le volume, etc. Ces scripts sont accessibles une
fois connecté sur la rpi, soit directement soit par
ssh
depuis un autre ordinateur.
En janvier 2023 le programme utilisé pour la sortie audio
peut-être aussi mpg123
. Il est plus simple à
configurer. Le choix se fait en changeant le contenu de la
variable RADIOK_PLAYER
.
La conception de l'application devrait être revue en
suivant les principes des interfaces REST.
Le contrôle vocal est lui aussi à reprendre.
Pour éviter d'avoir à se connecter via ssh
un
serveur http a donc été installé sur la rpi. Il héberge
une petite application web qui lance elle-même les scripts
bash en fonction des requêtes http reçues par le
serveur. Ces requêtes peuvent être envoyées depuis un
navigateur comme Chrome, Firefox, Safari, IEx tournant sur
n'importe quel autre ordinateur ou tablette. On peut aussi
utiliser curl(1)
ou wget(1)
si
l'on préfère. Le serveur propose des pages web pour
sélectionner une station de radio, changer le volume,
spécifier une heure de démarrage.
Le dernier moyen de contrôle de l'application est le contrôle vocal dont 2 versions ont été développées.
La première version est basé sur
Jasper
développé à Carnegie Mellon University. Un des outils de
cette bibliothèque a été modifié pour accéder
au mplayer
et lui envoyer des commandes en
prononçant à haute voix des mots instruction devant un
microphone. Ces mots, s'ils sont correctement décodés par
le programme d'analyse vocale, déclenchent l'envoi de
requêtes http par curl(1)
au serveur web de la
rpi qui, à son tour, peut lancer les scripts bash. Le
contrôleur voix joue un rôle analogue aux browsers. Il
peut tourner sur la rpi elle-même mais il peut être aussi
lancé sur une autre machine puisque la communication avec
le reste du système s'effectue via le réseau.
La deuxième version a une architecture voisine mais l'analyse vocale n'est pas effectuée localement par un sous-programme mais par l'application proposée par google pour la reconnaissance vocale. Ce programme est disponible en ligne sur un serveur qu'on intérroge par des requêtes http.