[PYTHON] Spielen Sie Musik von einem USB-Lautsprecher mit dem ROS-Paket (gx_sound_player) ab.

Zweck

Ich habe Musik von einem USB-Lautsprecher mit dem ROS-Paket (gx_sound_player) abgespielt. Es gab einige Punkte, die vor dem Spielen stecken blieben, daher werde ich sie in diesem Artikel zusammen mit dem eigentlichen Bestätigungsverfahren zusammenfassen.

Der Inhalt dieses Artikels basiert auf den folgenden Artikeln.

Einführung in das Freigabeverfahren für gx_sound_player und ROS-Pakete

Vorbereitung

USB-Lautsprecher: Zum Beispiel hier Ubuntu16.04 + ROS kinetische Umgebung Musikdatei testen (.wav): Zum Beispiel werde ich sie von [hier] herunterladen (http://www.ne.jp/asahi/music/myuu/wave/wave.htm).

Schritt 1. Vergewissern Sie sich, dass Musik über den USB-Lautsprecher abgespielt werden kann

1. 1. Schließen Sie den USB-Lautsprecher an Ihren PC an

2. Überprüfen Sie, ob das Audiogerät sichtbar ist
  $ ls -l /dev/snd/*
⇒ Sie sollten pcmC1D0p usw. sehen.
(Im Folgenden wird angenommen, dass pcmC1D0p die Gerätedatei des USB-Lautsprechers ist.)

3. 3. Spielen Sie WAV-Dateien mit aplay ab
  $ aplay -D hw:1,0 musicbox.wav
⇒ OK, wenn Sie Musik über den USB-Lautsprecher abspielen können

Wenn Sie keine Musik über den USB-Lautsprecher abspielen können, überprüfen Sie das Verfahren.

Schritt 2. Testen Sie, ob die WAV-Datei mit dem gx-sound-Paket abgespielt werden kann

Installieren Sie das gx-sound-Paket.

$ sudo apt install ros-kinetic-gx-sound
1. 1. Starten Sie roscore
$ source ~/catkin_ws/devel/setup.sh
$ roscore

2.gx-Soundknoten starten
$ roslaunch gx_sound_player sound_player.launch device_name:="hw:1,0"

3. 3. WAV-Wiedergabe
$ rosrun rulo sound-test.py
⇒ OK, wenn Sie Musik über den USB-Lautsprecher abspielen können
Musikdatei/home/ubuntu/Downloads/musicbox.In WAV speichern

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 nach 0 Sekunden.Wav spielen
    #Musikdatei/home/ubuntu/Downloads/musicbox.In WAV speichern
    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()

Wie man die Stimme stoppt

OK, wenn Sie die stille Datei senden Die stille Datei wird von [hier] heruntergeladen (http://hitotose-switch.blogspot.com/2013/12/wav.html).

Fehler Gegenmaßnahmen

Wenn das gx-sound-Paket nicht gefunden werden kann

gx-Installation des Soundpakets
$ sudo apt install ros-kinetic-gx-sound
ros-kinetic-gx-sound not found

Ich habe die Paketliste wie folgt aktualisiert und gelöst.

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

--

Wenn ein Sprachformatfehler auftritt

Ich habe es gelöst, indem ich das Format mit ffmpeg konvertiert habe.

48000Hz Audiodatei, 16bit LittleEndian,So konvertieren Sie in Stereo
$ sudo apt-get install ffmpeg
$ ffmpeg -i input.wav -ar 48000 -format S16_LE -channel 2 output.wav

Referenz

Einführung des Freigabeverfahrens für gx_sound_player und ROS-Pakete Free Wave, MP3

Recommended Posts

Spielen Sie Musik von einem USB-Lautsprecher mit dem ROS-Paket (gx_sound_player) ab.
Rufen Sie Ihr eigenes Python-Modul aus dem ROS-Paket auf
Automatisch organisierte MP3-Dateien, die mit Python von Google Play Music heruntergeladen wurden
Verwenden Sie boto, um die Datei von S3 herunterzuladen.
Steuern Sie das Matrix-LED-Panel von ROS aus
Spielen Sie mit Dajare mithilfe der COTOHA-API