La force des salles obscures-Domotique et reconnaissance voc
» 27 Oct 2019 16:41
Bonjour,
C'est un peu à la mode en ce moment, la domotique et la reconnaissance vocale. Je fais des essais avec du matériel à disposition chez moi:
- 1 ARDUINO avec une carte Ethernet - 1 PC - 1 Serveur Apache (Php + MySQL) - 1 Micro umik-1
Pour la reconnaissance vocale, j'essaie SARAH.
Le résultat souhaité: Exécuter des actions en fonction de mes commandes vocales et avoir des réponses variées et adaptées.
Les réponses et le traitement des commandes sont traités par le serveur Apache en PHP avec une base données pour mémoriser les dernières demandes. Ca permet de renforcer le côté "intelligent de la chose".
Je suis en phase de test et ça semble marcher. Dans la démo, j'allume et j’éteins une simple LED avec l'arduino mis en réseau.
Premiers essais de mon application web en cours de développement pour commander MPC-BE depuis une tablette. Cette application permet de lancer une playlist, de commander l'application MPC-BE, de choisir un film avec les jacquettes, ... Ces premiers résultats sont encourageants ... L'objectif est d'avoir une solution ergonomique, simple à l'utilisation et efficace. A suivre...
Good job! Oui c'est simple et efficace Je rajouterais bien un bouton "subtitles" et "display" (quand on veut savoir où on en est depuis le début ou à combien de la fin) ?
Tu peux nous en dire plus sur la partie serveur ? Quel langage de programmation ? C'est le même mediaplayer en mode audio & vidéo ?
J'ai un nas Synology qui héberge ce site Internet. Côté serveur, c'est du Php avec base de données MySql et côté client (navigateur web), il y a un peu de jQuery.
Tous mes films sont dématérialisés sur le NAS et sont rangés individuellement dans un dossier avec sa bande annonce que je récupère de youtube. Yadis se charge de récupèrer les jacquettes.
C'est là qu'intervient l'application (le site web). J'ai un script qui synchronise les jpg générés par Yadis et il vient les ranger dans un dossier de travail avec un nom compatible avec mes scripts. Cette synchro est à faire une seule fois après l'ajout d'un film.
Après, il reste simplement à utiliser l'application pour choisir un film, une playlist. Il y a un onglet qui présente les films sous forme de poster. En touchant un poster, on passe sur l'onglet des aperçus et sur le film sélectionné. Pour lancer le film, il faut toucher le film et une requête est envoyé au lecteur MPC-BE. L'onglet "télécommande" est alors automatiquement sélectionné pour avoir accès aux commandes de lecteur.
Les prochaines évolutions: - Mémoriser l'arrêt pour proposer de reprendre la lecture - Bande annonce - Choisir les sous-titre - Barre d'avancement du film - Afficher le contenu des playlists - Afficher les pochettes des albums, artistes, ... - Filtrer les films par genres, année, réalisateur - Recherche de film par nom
Et surtout, le but final est de piloter l'ensemble des éléments de la pièce: - Eclairages - Sélection de la source du préampli, volume - Allumage/Extinction du préampli
Tout ça pour éteindre les lumières quand le film est lancé, allumé partiellement quand on fait une pause, ...basculer sur la bonne entrée si elle ne l'était pas, ...
J'arrive à faire tout ça individuellement avec un arduino et un Raspberry, il me reste maintenant à tout intégrer dans cette unique application web.
Le contrôle par la voie est aussi une envie qui marche avec le script Sarah. Ca tourne en Node.js. J'avais réussi à obtenir des résultats moyens. Par exemple, j'arrive à lancer un film ou une playlist en donnant simplement son nom. Il y a une vidéo sur un post précédent qui se trouve sur cette page qui montre un essai de commandes vocales.
Je peux aussi combiner le pilotage de l'application avec une télécommande qui a de vrais touches. Par exemple, un arduino capte les signaux IR et les renvois sous forment de requête au serveur.
Bref, tous mes essais aussi tordus les uns que les autres vont peut-être déboucher sur une application unique qui gèrera tout ça.
Présentation des nouvelles fonctions dont la principale qui permet de piloter une carte relais. L'application Web envoie des requêtes à un RaspBerry qui pilote des relais. Le but est de piloter l'éclairage de la salle manuellement ou automatiquement en fonction des commandes réalisées.
Début de journée matinale, le confinement écourte les soirées ...
Bref, en ma levant ce matin, j'avais dans la tête l'ambiance cinéma, la vraie, celle que l'on a quand on rentre, quand on s'intalle dans une rangée que l'on sélectionne avec soin et ...
... on attend devant de la publicité baignée dans une ambiance sonore légère dans une salle largement éclairée ...
... et l'ambiance luminiseuse devient plus intimiste pour le passage des bandes annonces qui précéderont le film. Un bon moment les bandes annonces, j'adore. Ca donne envie et l'espoir de voir prochainement un film sympa...
... après cette première série de bandes annonces, les lumières regagnent à nouveau en intensité pour la vente de gourmandises en salle. Oui, pour les plus jeunes, c'était comme ça. On n'allait pas équipé de notre saut de popcorn avant d'entrée en salle, on avait droit à la jolie vendeuse (ou plus ou moins, ça dépend ).
... maintenant, ça me titille un peu parce que mon voisin fait du bruit avec ces sachets de bonbons qu'il n'arrive pas à défaire, il met 3H (le temps du film) pour déballer, piaffer et jeter au sol l'emballage .
... les lumières s'éteignent entièrement pour laisser visible les sorties de secours. La 2ème série de bande annonces arrive.
... le zoom passe en 2.35, le film est prêt.
... Jean Mineur arrive avec ça ache et ses effets surround, ça y'est l'ambiance est là, je suis à point pour le film
... que le spectacle commence !
J'arrête avec mon "film" et je vais vous présenter ce que je souhaite réaliser pour ma salle.
Avec l'application web que je développe, je souhaite recréer cette ambiance que je viens de décrire précédemment. Je pourrais par exemple avoir un bouton à cocher sur la tablette "Ambiance ciné" Oui ou Non et si sélectionné, récréer automatiquement, sans aucune intervention manuelle, tout le rituel d'une projection au cinéma à savoir:
- Gérer les ambiances lumineuses - Gérer les niveaux sonores - Gérer la diffusion de bandes annonces - Lancer le film qui aura été sélectionné quelques instants plutôt.
Voilà ce qui m'a trotté dans la tête ce matin en me levant, il y a du boulot
- Gestion des lumières: Ok, je suis maintenant en mesure de créer des ambiances lumineuses scénarisées. Un programme Python qui tourne sur le RaspBerry pilote des sorties relais et des sorties modulées pour la variation de lumière. J'ai un prototype sur platine qui donne satisfaction. Je vais commander des plaques de prototypage pour faire une version "définitive". (voir photo ce-dessous) Il faudra ensuite ajouter quelques éclairages LED pour les ambiances.
- Gérer les niveaux sonores Ca devrait le faire. Je sais gérer le volume de MPC, connaitre son niveau actuel et l'ajuster en fonction.
- Gérer la diffusion de bandes annonces J'ai ma petite idée mais je ne sais pas encore le faire. Je pense utiliser l'API Youtube pour faire une requête pour trouver les dernières bandes annonces. La difficulté sera de diffuser les BA. Soit j'arrive à passer directement dans MPC, soit il faudra que l'application puisse switcher sur un navigateur web et MPC. Et comment détecter la fin des bandes annonces ?
- Lancer le film qui aura été sélectionné quelques instants plutôt. Aucun problème. Je rajouterai juste avant de passer le film jean mineur. Je vais de ce pas voir ce qu'il y a de sympa...
Après quelques heures de programmation et une sieste, je vais aller prendre l'air mais je vous propose une petite démonstration avec bande annonce et éclairage intégrés à l'application.