[PYTHON] Changer le volume de Pepper en fonction de l'environnement environnant (son)

Déclencheur

  1. Il est difficile d'ajuster le volume en fonction du nombre de personnes aux expositions.
  2. Le contrôle du volume est-il populaire dans Robot Library par Robot Start?
  3. J'attendais que quelqu'un arrive, mais ...
  4. Faisons-le parce que c'est beaucoup avec "Pepper décide du gagnant en mesurant l'ampleur des applaudissements du public" enseigné par Maître Kawada. J'ai pensé.

API utilisée

ALAudioDevice

Méthode utilisée

getFrontMicEnergy()

Préparation

Que rechercher pour régler le volume.

Je vais le faire avec les deux ci-dessus.

Comment décider du volume

Comment ça fonctionne

Je veux que vous le fassiez sans permission, donc après l'avoir démarré, laissez le Timer bouger de manière semi-permanente comme ça. スクリーンショット 2015-12-27 16.29.02.png

Le volume de sortie (%) est placé dans la variable de la boîte Set Speaker Vol. Après cela, réglez le volume à chaque fois à l'intervalle défini.

Config.py


    def onLoad(self):
        self.timer = None
        self.nFacesDetected = -1
        self.audiodevice = ALProxy("ALAudioDevice")
        self.defaultVol = self.audiodevice.getOutputVolume()
        self.vol = self.defaultVol

    def onUnload(self):
        self.cancelTimer()

    def cancelTimer(self):
        if self.timer:
            self.timer.stop()
        self.timer = None

    def onTimer(self):
        self.timerOutput()

    def startTimer(self):
        import qi
        self.timer = qi.PeriodicTask()
        self.timer.setCallback(self.onTimer)
        self.timer.setUsPeriod(int(self.getParameter("Period (s)") * 1000 * 1000))
        self.timer.start(True)

    def onInput_onStart(self):
        self.cancelTimer()
        self.startTimer()

    def onInput_onStop(self):
        self.audiodevice.setOutputVolume(self.defaultVol)
        if self.timer and self.timer.isRunning():
            self.onStopped()
        self.onUnload()

    def onInput_inputFaceTracked(self, p):
        if(len(p) > 0):
            if(self.nFacesDetected != len(p[1]) -1): # an additional array has been placed at the end for time
                self.nFacesDetected = len(p[1]) -1  # filtered info and has to be substracted when counting faces
                self._JudgeOutput( self.nFacesDetected )
        else:
            if(self.nFacesDetected != 0):
                self.nFacesDetected = 0
                self._JudgeOutput( self.nFacesDetected )

    def _JudgeOutput(self, envMaterial):
        self.logger.info("FrontMicEnergy:%d" % self.audiodevice.getFrontMicEnergy())
        self.logger.info("envMaterial:%d" % envMaterial)
        if (self.audiodevice.getFrontMicEnergy() >= 1800):
            self.EnvironmentVolume(100)
        elif envMaterial == 0:
            self.EnvironmentVolume(self.defaultVol)
        elif envMaterial == 1:
            self.EnvironmentVolume(60)
        elif envMaterial >= 2 and envMaterial < 4:
            self.EnvironmentVolume(80)
        elif envMaterial >= 4:
            self.EnvironmentVolume(100)

Commencez

Pour le démarrer, cochez cet indicateur à côté du bouton de lecture, ou si vous insérez un plug-in, l'application commencera à s'exécuter automatiquement au démarrage de Pepper. スクリーンショット 2015-12-27 16.45.31.png

prime

Le volume d'origine est mémorisé lorsque Config est chargé et renvoyé lorsque l'application est fermée. Si vous appuyez 4 fois sur le pare-chocs arrière dans les 5 secondes après avoir touché votre tête, le volume sera rétabli et l'application se terminera.

échantillon

[Bibliothèque de robots] de Robot Start (https://robo-lib.com/repositories/summary/42) https://robo-lib.com/repositories/summary/42

Recommended Posts

Changer le volume de Pepper en fonction de l'environnement environnant (son)
Changer la valeur de paramètre de setting.py en fonction de l'environnement de développement
Script pour changer la description de fasta
Modifiez le point décimal de la journalisation de, à.
SmartVolumer, une application Android qui ajuste le volume de lecture de la musique en fonction du volume environnant
La musique de fond est automatiquement sélectionnée en fonction du contenu de la conversation
[Python] Modifier le contrôle du cache des objets téléchargés sur Cloud Storage
Point selon l'image
Une introduction à l'orientation des objets - changeons l'état interne d'un objet
Changer le thème de Jupyter
Changer le style de matplotlib
Comment modifier le niveau de journalisation d'Azure SDK pour Python
Comment changer la couleur du seul bouton pressé avec Tkinter
Changer l'échelle de l'axe Y de Matplotlib en notation exponentielle (10 Nth power notation)
[Go] Créez une commande CLI pour changer l'extension de l'image
J'ai résumé comment changer les paramètres de démarrage de GRUB et GRUB2
J'ai essayé d'agrandir la taille du volume logique avec LVM
Comment configurer l'environnement de développement d'ev3dev [version Windows]
Changez le modèle Flyweight en Pythonic (?) (3)
Changez le modèle Flyweight en Pythonic (?) (2)
Changer l'arrière-plan d'Ubuntu (GNOME)
Changez le modèle Flyweight en Pythonic (?) (1)
Changer le suffixe de django-filter / DateFromToRangeFilter
Supplément à l'explication de vscode
[Python] Changer l'alphabet en nombre
Utilisez Cloud Dataflow pour modifier dynamiquement la destination en fonction de la valeur des données et enregistrez-la dans GCS
[Gestion des erreurs Golang] La meilleure façon de diviser le traitement en fonction du type d'erreur
Lorsque vous souhaitez modifier l'en-tête HTTP du client de test de Flask
J'ai vérifié le contenu du volume du docker
Changer l'environnement Python 64 bits en environnement 32 bits avec Anaconda
L'histoire d'essayer de reconnecter le client
10 méthodes pour améliorer la précision de BERT
L'histoire de la mise en place de MeCab dans Ubuntu 16.04
À propos de l'environnement virtuel de Python version 3.7
Créer un environnement d'exécution pour Jupyter Lab
Essayez de préparer chaque environnement de kivy
Changer l'ordre de PostgreSQL dans Heroku
L'histoire du changement de pep8 en pycodestyle
Changer le serveur Batfish de destination de pybatfish
Comment sensibiliser VS Code à l'environnement venv et à ses avantages
Test de la différence entre les valeurs moyennes des données de comptage selon la distribution de Poisson
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Changer la clé de l'objet sur S3 du format de date normal au format Hive
Changer le bloc de données des données d'achat de pandas (produit ID X) en dictionnaire
Comment changer l'apparence du champ de clé étrangère non sélectionné dans le formulaire modèle de Django
Création d'un module autonome Ansible - Partie 3: La vie qui veut juger de la nécessité du changement-
Comment installer le framework d'apprentissage en profondeur Tensorflow 1.0 dans l'environnement Windows Anaconda