J'ai joué de la musique à partir d'un haut-parleur USB en utilisant le package ROS (gx_sound_player). Il y avait des points bloqués avant de jouer, je vais donc le résumer dans cet article avec la procédure de confirmation qui a été effectivement effectuée.
Le contenu de cet article est basé sur les articles suivants.
Introduction de gx_sound_player et de la procédure de publication des packages ROS
Haut-parleur USB: par exemple, ici Environnement cinétique Ubuntu16.04 + ROS Fichier de musique de test (.wav): Par exemple, je vais le télécharger depuis ici.
1. 1. Connectez le haut-parleur USB à votre PC
2. Vérifiez que le périphérique audio est visible
$ ls -l /dev/snd/*
⇒ Vous devriez voir pcmC1D0p etc.
(Ci-après, on suppose que pcmC1D0p est le fichier de périphérique du haut-parleur USB)
3. 3. Lire des fichiers WAV avec aplay
$ aplay -D hw:1,0 musicbox.wav
⇒ OK si vous pouvez lire de la musique à partir du haut-parleur USB
Si vous ne pouvez pas lire de musique à partir du haut-parleur USB, passez en revue la procédure.
Installez le package gx-sound.
$ sudo apt install ros-kinetic-gx-sound
1. 1. Démarrer roscore
$ source ~/catkin_ws/devel/setup.sh
$ roscore
2.gx-démarrer le nœud sonore
$ roslaunch gx_sound_player sound_player.launch device_name:="hw:1,0"
3. 3. Lecture WAV
$ rosrun rulo sound-test.py
⇒ OK si vous pouvez lire de la musique à partir du haut-parleur USB
Fichier de musique/home/ubuntu/Downloads/musicbox.Magasin en wav
sound-test.py
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import actionlib
import os
import rospy
from gx_sound_msgs.msg import SoundRequestAction, SoundRequestGoal
def main():
rospy.init_node('sound_request_client_node')
client = actionlib.SimpleActionClient('/gx_sound_player/sound_player/sound_request', SoundRequestAction)
client.wait_for_server()
rospy.loginfo("connected to actionlib server")
now = rospy.Time.now()
#Audio3 après 0 seconde.Jouer wav
#Fichier de musique/home/ubuntu/Downloads/musicbox.Magasin en wav
goal1 = SoundRequestGoal(stamp=now + rospy.Duration(0.0), file="/home/ubuntu/Downloads/musicbox.wav")
rospy.loginfo("send request")
client.send_goal(goal1)
rospy.loginfo("send complete")
#client.wait_for_result(rospy.Duration.from_sec(5.0))
if __name__ == '__main__':
main()
OK si vous envoyez le fichier silencieux Le fichier silencieux sera téléchargé depuis ici.
gx-installation du package audio
$ sudo apt install ros-kinetic-gx-sound
ros-kinetic-gx-sound not found
J'ai mis à jour la liste des paquets comme suit et je l'ai résolu.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-get update
--
Je l'ai résolu en convertissant le format avec ffmpeg.
Fichier audio 48000Hz, 16bit LittleEndian,Comment convertir en stéréo
$ sudo apt-get install ffmpeg
$ ffmpeg -i input.wav -ar 48000 -format S16_LE -channel 2 output.wav
Introduction de gx_sound_player et de la procédure de publication du package ROS Free Wave, MP3
Recommended Posts