Un de nos objectifs avec la RPi est de faire de la synthèse vocale. Il faut donc activer le son pour pouvoir utiliser nos outils en ayant accès aux fonctions audio. Ces instructions fonctionnent sur une Raspberry Pi version B avec la distribution Debian d’avril 2012.
Note : cet article n’est pas nécessaire avec une distribution Occidentalis qui comporte déjà la configuration audio
On commence par essayer de lire un fichier wav ou mp3 : l’installation de VLC ne suffit pas :
Il faut donc lire la documentation et installer les logiciels demandés, regroupés dans "alsa-utils" :
# sudo apt-get install alsa-utils
Dans le détail, cela donne :
– sudo : demander à exécuter un programme disposant d’une sécurité de droits
– apt-get : le programme d’installation aptitude propre à Debian, Ubuntu et dérivés
– install : la commande qui précise à apt-get ce qu’on souhaite faire
– alsa-utils : le paquet à installer
Plusieurs programmes vont être installés, ce sont les dépendances. Répondez Oui ou Yes aux questions posées et attendez que les téléchargements soient terminés :
Tout n’est pas terminé : l’erreur initiale de VLC concernait l’accès au DSP (processeur de traitement du signal) par défaut. Il faut donc charger dans le noyau linux la partie spécifique au matériel de la Raspberry Pi qui contrôle le son :
# sudo modprobe snd_bcm2835
Vous connaissez déjà "sudo", il n’y a donc que :
– modprobe : ajouter ou enlever un module dans le noyau Linux
– snd_bcm2835 : la gestion du son sur le processeur Broadcast 2835, le ARM11 de la RPi.
Cette ligne est nécessaire à chaque démarrage.
Pour l’instant, nous allons éditer un fichier .bashrc dans le répertoire de l’utilisateur :
sudo nano .bashrc
Ce qui ouvre un éditeur : si le fichier n’existe pas, il sera créé lors de l’enregistrement. Vous pouvez resaisir la ligne contenant modprobe (mais pas l’installation d’alsa-utils bien sûr...). Pour enregistrer, CTRL+X suivi de Y pour valider l’enregistrement.
Désormais, à chaque connexion il y aura un appel au chargement du module. Il est possible d’automatiser le lancement de scripts, c’est ce que nous verrons dans un prochain article.
Lecteur mp3 en ligne de commande
Pour la carte Raspberry Pi du club, j’ai installé mocp comme lecteur de fichiers multimédia en ligne de commande, c’est très rapide.
Un petit complément d’info sur les sorties audio
[EDIT EricP - 29/12/12]
Le son peut sortir aussi bien sur la prise HDMI que sur la sortie analogique (embase jack). Plusieurs cas peuvent se présenter :
- vous avez connecté un écran HDMI équipé de haut-parleurs (typiquement une TV) et le son ne sort pas dessus
La cause la plus probable est que l’écran est resté en mode DVI. Selon le matériel et la manière dont il discute sur la liaison HDMI, il se peut que la bascule ne se soit pas faite automatiquement. Dans ce cas il faut activer la ligne :
hdmi_drive=2
dans le fichier /boot/config.txt, ce qui force le mode HDMI et active la transmission de l’audio.
En principe ça doit suffire et au prochain boot le son devrait être présent sur la TV.
- vous avez un moniteur HDMI mais voulez faire sortir l’audio sur le jack
Eh oui, les deux sorties sont exclusives, et par défaut la commutation est automatique et passe sur le HDMI si il est actif (sauf si vous êtes dans le cas précédent). Si on veut contrôler les choses à la main, il faut recourir à la commande amixer de l’outil alsa. Ca donne ceci :
# audio sur le jack
$ sudo amixer cset numid=3 1
# audio sur le HDMI
$ sudo amixer cset numid=3 2
# commutation automatique
$ sudo amixer cset numid=3 0
Un simple script à 2 balles pour enrober cela et éviter de se souvenir de la commande et le tour est joué.
Vos commentaires
# Le 3 mai 2020 à 17:19, par Bernard En réponse à : Activer le son sur Raspberry Pi
Merci ! Parfait ... j’avais laissé mon écran connecté en HDMI son à 0 et je testais avec des écouteurs 🙁
Répondre à ce message
# Le 12 janvier 2023 à 15:20, par anon En réponse à : Activer le son sur Raspberry Pi
J’ai fait face à une erreur, la commande "amixer" n’est pas reconnue. Il faut remplacer par "alsamixer" et ça marche !
Répondre à ce message
# Le 19 décembre 2017 à 08:41, par Herot En réponse à : Activer le son sur Raspberry Pi
Merci, c’était la source de mon problème
# Le 19 décembre 2017 à 08:53, par Eric P. En réponse à : Activer le son sur Raspberry Pi
Content que ça ait pu vous aider ;)
Cordialement - Eric
Répondre à ce message
# Le 28 mars 2014 à 11:47, par Baptiste En réponse à : Activer le son sur Raspberry Pi
Merci beaucoup !
Répondre à ce message
# Le 24 juin 2012 à 17:41, par Keuronde En réponse à : Activer le son sur Raspberry Pi
Pour charger un module au démarrage, vous conseillez l’ajout d’une ligne dans le .bashrc. J’avais lu qu’on pouvait utiliser /etc/modules pour cela.
Je ne suis pas un expert Linux, et je me trouve confronté à des problèmes similaires, j’aimerais donc savoir s’il y a une raison à l’utilisation du .bashrc plutôt qu’à celle de /etc/modules
# Le 24 juin 2012 à 19:11, par Julien H. En réponse à : Activer le son sur Raspberry Pi
Salut !
Le chargement automatique a un inconvénient : on oublie ce qu’on a chargé et on encombre le noyau de tout plein de modules.
Avec bashrc, on peut scripter les conditions dans lesquelles le module est chargé : sur un démarrage autonome, sur une connexion de l’utilisateur portant le bashrc, etc...
Dans notre cas, un interrupteur placé sur Nono le robot sera relié à la Raspberry et permettra de choisir l’utilisateur donc le bashrc donc les modules chargés.
Bon, pour le son et vu les capacités de la bête, on pourrait le charger à chaque fois, merci d’avoir donné le lien pour ceux qui veulent faire ainsi.
# Le 27 juin 2012 à 21:54, par Keuronde En réponse à : Activer le son sur Raspberry Pi
Merci pour ta réponse, je n’avais pas vraiment songé que le noyau pouvait être encombré de module.
Ce qui paraît superflu sur un "gros" PC prend un autre sens sur une carte comme celle-ci !
Répondre à ce message