Son

Ce fichier présente les différentes fonctions, enums et topics disponible avec l’API Son

Son - Fonctions de commande

Cette section fait référence à toutes les fonctions existantes pour contrôler l’interface audio du Ned2. Toutes les fonctions sont accessibles via une instance de la classe NiryoRobot

robot = NiryoRobot(<robot_ip_address>)

robot.sound.play('connected.wav')
...

Liste des fonctions :

class Sound(client)[source]

Fonctions du son du robot

Exemple:

ros_instance = NiryoRos("127.0.0.1") # Hotspot
sound_interface = Sound(ros_instance)
Paramètres

client (NiryoRos) – Client Niryo ROS

Son - Lecture

Sound.play(sound_name, wait_end=False, start_time_sec=0, end_time_sec=0)[source]

Jouer un son qui a déjà été importé par l’utilisateur sur le robot.

Exemple:

# If you know that the sound test_sound.wav is already imported on the robot
sound.play_sound_user("test_sound.wav")

# If you want to play the first sound of the ones that are already on the robot without knowing its name
sound_name = sound.get_sounds()[0]
sound_duration = sound.play(sound_name)

# Waits until the sound has been fully played
sound_duration = sound.play(sound_name, wait_end=True)

#  Doesn't wait until the sound has been fully played
sound_duration = sound.play(sound_name, wait_end=False)

# Plays sound from 1.1 seconds from start to 4.3 seconds from start
sound_duration = sound.play(sound_name, start_time_sec=1.1, end_time_sec=4.3)
Param

sound_name : Nom du son qui sera joué

Paramètres
  • wait_end (bool) – attendre la fin du son avant de quitter la fonction

  • start_time_sec (float) – démarrer le son à partir de cette valeur en secondes

  • end_time_sec (float) – terminer le son à cette valeur en secondes

Type renvoyé

None

Sound.stop()[source]

Arrêter un son en cours de lecture. Il obtiendra automatiquementle nom du son en cours de lecture et l’arrêtera.

Exemple:

self.sound.stop()
Type renvoyé

None

property Sound.state

Renvoie le client d’état du son qui peut être utilisé de manièresynchrone ou asynchrone pour obtenir le son en cours de lecture.

Exemples:

# Get last value
sound.state()
sound.state.value

# Subscribe a callback
def sound_callback(sound_name):
    print sound_name

sound.state.subscribe(sound_callback)
sound.state.unsubscribe()
Renvoie

instance du topic sound state

Type renvoyé

NiryoTopic

Sound.say(text, language=<Language.ENGLISH: 0>)[source]

Utiliser gtts (Google Text To Speech) pour interpréter le textecomme un son

Les langues disponibles sont :

- English: Language. ENGLISH
- French: Language.FRENCH
- Spanish: Language.SPANISH
- Mandarin: Language.MANDARIN
- Portuguese: Language.PORTUGUESE

Exemple

robot.say("Hello", Language.ENGLISH)
robot.say("Bonjour", Language.FRENCH)
robot.say("Hola", Language.SPANISH)
Paramètres
  • text (str) – Texte à prononcer < 100 caractères

  • language (Language) – langue du texte

Type renvoyé

None

Son - Volume

property Sound.volume

Renvoie le client d’état du volume qui peut être utilisé de manière synchrone ou asynchrone pour obtenir le volume actuel.

Exemples:

# Get last value
sound.volume()
sound.volume.value

# Subscribe a callback
def volume_callback(value):
    print value

sound.volume.subscribe(volume_callback)
sound.volume.unsubscribe()
Renvoie

instance du topic de volume

Type renvoyé

NiryoTopic

Sound.get_volume()[source]

Renvoie le volume du robot. Le son peut être réglé entre 0 (son désactivé) et 100 (son max)

Exemples:

# Get the volume of the sound
sound.get_volume()
Renvoie

int8 correspondant au volume (0 : son désactivé, 100 : son max)

Type renvoyé

int8

Sound.set_volume(sound_volume)[source]

Réglez le volume du robot. Vous pouvez le régler entre 0 et 100 (0 : son désactivé et 100 : son max). Si vous mettez moins de 0, le volume sera réglé sur 0. Si vous mettez plus de 100, le volume sera réglé sur 100.

Exemple:

# Set the volume to 25
self.sound.set_volume(25)
self.sound.play_sound_user("test_sound.wav")
Paramètres

sound_volume (int8) – Entre O et 100 (0 son désactivé et 100 son maximum)

Type renvoyé

None

Son - Gérer

property Sound.sounds

Retourne la liste des sons disponibles dans le robot

Exemples:

sounds_list = sound.sounds
Renvoie

Retourne la liste des sons disponibles dans le robot

Type renvoyé

list[str]

Sound.get_sounds()[source]

Retourne la liste des sons disponibles dans le robot

Exemples:

sounds_list = sound.get_sounds()
Renvoie

Retourne la liste des sons disponibles dans le robot

Type renvoyé

list[str]

Sound.save(sound_name, sound_path)[source]

Importer un son sur le RaspberryPi du robot. Pour ce faire, vous aurez besoin des données encodées d’un son wav ou mp3. Il est préférable de mettre les données encodées du son sur un fichier texte et de les lire directement depuis ce fichier. Vous devez également donner le nom du son que vous souhaitez importer.

Exemple:

sound_name = "test_import_sound.wav"
sound_path = "/home/niryo/test_sound.wav"

ros_instance = pyniryo2.NiryoRos("10.10.10.10")
sound = pyniryo2.Sound(ros_instance)
sound.save(sound_name, sound_path)
sound.play(sound_name)
Paramètres
  • sound_name (str) – Par exemple, test.wav. Ce sera le nom du son dans le robot

  • sound_path (str) – chemin absolu vers le fichier son

Type renvoyé

None

Sound.delete(sound_name)[source]

Supprimer un son importé sur le robot

Exemple:

self.sound.delete("test_sound.wav")
Paramètres

sound_name (str) – Par exemple, test.wav

Type renvoyé

None

Sound.get_sound_duration(sound_name)[source]

Obtenir la durée d’un son en secondes

Exemples:

sound_name = sound.get_sounds()[0]
sound_duration = sound.get_sound_duration(sound_name)
sound_duration = sound.get_sound_duration('test_sound.mp3')
Renvoie

Renvoie la durée d’un son en secondes

Type renvoyé

float

Son - Niryo Topics

L’utilisation de ces fonctions est expliquée dans la section NiryoTopics. Ils permettent l’acquisition de données en temps réel par callbacks ou par appel direct.

Topics Niryo du son

Nom

Fonction

Type de retour

/niryo_robot_sound/sound

state

str

/niryo_robot_sound/sound_database

sounds

dict

/niryo_robot_sound/volume

volume

int

Son - Énumérations

Liste des énumérations :

class ManageSound(value)[source]

Enumération des actions de bonne gestion de la base de données

ADD = 1
DELETE = 2
class Language(value)[source]

Énumération des langues Text To Speech

ENGLISH = 0
FRENCH = 1
SPANISH = 3
MANDARIN = 4
PORTUGUESE = 5