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é.