Je souhaite créer un système d’alarme reposant sur un boîtier Ubuntu (sans interface graphique), qui diffuse diverses pistes audio d’annonce et d’alarme (.mp3 ou .wav) via la ligne de commande.
Par exemple:
$ root> audioplay ./hello.wav
Le son doit provenir de la prise audio du PC. Je pourrais aussi l'envelopper avec un autre écouteur de socket. (par exemple, Ruby Sinatra)
Des idées comment je peux faire ceci?
mpg123 est un utilitaire de ligne de commande qui lit les fichiers mp3. Vous pouvez l'installer dans Ubuntu avec:
Sudo apt-get install mpg123
La commande play
du package sox
lira tout format de fichier pris en charge par sox
en utilisant le périphérique audio par défaut, par exemple.
$ play something.mp3
$ play something.wav
Vous devrez peut-être installer des packages supplémentaires pour pouvoir prendre en charge tous les formats. Par exemple, sur Ubuntu 11.04, la prise en charge MP3 n'est pas disponible avant l'installation de libsox-fmt-mp3
.
La manière la plus standard de lire un fichier WAV sous Linux consiste à utiliser la commande aplay
, qui fait partie du système ALSA
.
aplay [flags] [filename [filename]] ...
aplay a.wav
Liens: (Wikipedia)(page de manuel aplay)
(À la fois dans Fedora et dans Ubuntu/Mint, il fait partie du paquetage alsa-utils
)
Cela ne nécessite aucun package supplémentaire pour votre installation Linux, comme sox, mplayer ou vlc, mais simplement l'ALSA de base qui fait partie de tout système de nos jours.
Installez vlc
en utilisant:
Sudo apt-get install vlc vlc-plugin-Pulse mozilla-plugin-vlc
Assurez-vous que tous les référentiels sont ouverts. Exécutez également les éléments suivants avant d’installer:
Sudo apt-get update
VLC a une méthode d'opération de ligne de commande appelée par cvlc
. La prochaine partie serait d'écrire un .sh
qui appellera la commande. Je ne suis pas bon pour écrire des scripts bash. Le résultat final serait quelque chose comme:
cvlc xyz.mp3
cvlc --play-and-exit done.mp3
Sur Ubuntu 16.04, il n’est pas nécessaire d’installer quoi que ce soit. Vous pouvez jouer un son en utilisant paplay [audio]
avec qui fait partie du serveur de son PulseAudio:
paplay mysound.mp3
mplayer est un autre lecteur pouvant lire à peu près tous les formats audio/vidéo à partir de la ligne de commande. pour l'installer dans Ubuntu, exécutez cette commande:
Sudo apt-get install mplayer
vous pouvez alors lire le fichier en utilisant cette syntaxe:
mplayer [path to file]
bonne chance!
Vous pouvez simplement diriger vos données audio vers le haut-parleur du PC:
cat rawsound | /dev/pcsp
Pour les scripts bash simples, mplayer est probablement un peu trop lourd et trop détaillé en termes de sortie. canberra-gtk-play
est une option intégrée préinstallée sur Ubuntu:
canberra-gtk-play --file=/usr/share/sounds/gnome/default/alerts/drip.ogg
Remarque: il utilise le volume des alertes et vous devez transmettre --file=
pour pouvoir lire un fichier à partir d'un chemin.
Il peut également jouer un son par identifiant représentant le nom du fichier sans extension des fichiers multimédias sous /usr/share/sounds
(apparemment, cela ne fonctionne que pour les sons enregistrés dans le cadre d'un thème sonore):
canberra-gtk-play --id="desktop-login"
canberra-gtk-play --id="message"
Une autre option consiste à utiliser les outils de ligne de commande -gstreamer présents sur la plupart des boîtes de linux les plus modernes:
gst-launch-1.0 playbin uri=file:///usr/share/sounds/ubuntu/stereo/message.ogg
Pour supprimer toute sortie, redirigez-le vers /dev/null
:
gst-launch-1.0 playbin uri=file:///usr/share/sounds/ubuntu/stereo/message.ogg > /dev/null 2>&1
gst-launch-1.0
et gst-launch-0.10
peuvent être présents sur votre système.