alsabat - testeur de son en ligne de commande pour le pilote de carte son ALSA
alsabat [flags]
ALSABAT (ALSA Basic Audio Tester) est un simple utilitaire de ligne de commande destiné à aider à automatiser les tests de pilotes audio et de serveurs audio avec peu d'interaction humaine. ALSABAT peut être utilisé pour tester la qualité audio, les fonctionnalités de test de stress et tester l'audio avant et après les changements d'état PM.
La conception d'ALSABAT est relativement simple. ALSABAT lit un flux audio et capture le même flux dans une boucle numérique ou analogique. Il compare ensuite le flux capturé à l'aide d'une FFT à l'original pour déterminer si le cas de test réussit ou échoue.
ALSABAT peut soit s'exécuter entièrement sur la machine cible testée (mode autonome), soit s'exécuter en mode client/serveur où le client alsabat s'exécute sur la cible et s'exécute en tant que serveur sur une machine de test distincte. Le mode client/serveur nécessite encore une certaine interaction manuelle pour la synchronisation, mais cela est activement développé pour les futures versions.
La configuration de test du matériel peut nécessiter l'utilisation d'un câble analogique reliant la cible aux machines de test ou d'un câble pour créer un bouclage analogique si aucun mode de bouclage n'est disponible sur le matériel audio testé. Un câble de bouclage analogique peut être utilisé pour connecter les prises "line in" à "line out" pour créer un bouclage. Si seules les prises casque et micro (ou prise combo) sont disponibles, le circuit simple suivant peut être utilisé pour créer un bouclage analogique :-
https://source.android.com/devices/audio/loopback.html
Si tinyalsa est installé dans le système, l'utilisateur peut choisir tinyalsa comme bibliothèque principale d'alsabat, avec l'option de configuration "--enable-alsabat-backend-tiny".
Aide : afficher la syntaxe.
Sélectionnez la carte son à tester par son nom.
Sélectionnez le périphérique PCM de lecture.
Sélectionnez le périphérique PCM de capture.
Exemple de format
Les formats d'échantillons reconnus sont : U8 S16_LE S24_3LE S32_LE
Certains d'entre eux peuvent ne pas être disponibles sur certains matériels
Les raccourcis de format disponibles sont :
-f cd (16 bit little endian, 44100, stereo) [-f S16_LE -c2 -r44100]
-f dat (16 bit little endian, 48000, stereo) [-f S16_LE -c2 -r48000]Si aucun format n'est donné, S16_LE est utilisé.
Le nombre de canaux. La valeur par défaut est un canal. Les valeurs valides pour le moment sont 1 ou 2.
Taux d'échantillonnage en Hertz. Le taux par défaut est de 44100 Hertz. Les valeurs valides dépendent de la prise en charge matérielle.
Durée du signal généré. La valeur peut être l'une des deux formes :
1. Entier décimal, signifie nombre de trames ;
2. Virgule flottante avec suffixe 's', signifie nombre de secondes.
La valeur par défaut est de 2 secondes.
Valeur sigma k pour l'analyse.
La fonction d'analyse lit les données du fichier WAV, exécute la FFT sur les données pour obtenir l'amplitude des vecteurs de fréquence, puis calcule la valeur moyenne et l'écart type des vecteurs de fréquence. Après cela, nous définissons un seuil :
seuil=k * écart_type + valeur_moyenne
Les fréquences avec une amplitude supérieure au seuil seront reconnues comme un pic, et la fréquence avec la plus grande valeur de pic sera reconnue comme une fréquence détectée.
ALSABAT compare ensuite la fréquence détectée à la fréquence cible, pour décider si la détection réussit ou échoue.
La valeur par défaut est 3.0.
Fréquence cible pour la génération et l'analyse du signal, en Hertz. La valeur par défaut est 997,0 Hertz. La plage valide est (DC_THRESHOLD, 40 % * Taux d'échantillonnage).
Nombre total de périodes à jouer ou à capturer.
Écrivez la sortie stderr et stdout dans ce fichier journal.
Fichier d'entrée WAV pour la lecture.
Fichier WAV cible pour enregistrer le contenu du test de capture.
Mode de bouclage interne. Lecture, capture et analyse interne à ALSABAT uniquement. Ceci est destiné aux développeurs pour tester les nouvelles fonctionnalités ALSABAT car aucun son n'est acheminé en dehors d'ALSABAT.
Ajoutez la prise en charge du mode autonome où ALSABAT s'exécutera sur une machine différente de celle testée. En mode autonome, les données sonores peuvent être générées, lues et capturées comme en mode normal, mais ne seront pas analysées. L'ALSABAT en cours de construction sans le support de libfftw3 est toujours en mode autonome. L'ALSABAT en mode normal peut également contourner l'analyse des données en utilisant l'option "--standalone".
Test de latence aller-retour. La latence audio est le délai pendant lequel un signal audio traverse un système. Il existe de nombreux types de mesures de latence audio. Une métrique utile est la latence aller-retour, qui est la somme de la latence de sortie et de la latence d'entrée.
Seuil de détection de bruit en SNR (dB). 26dB indique 5% de bruit en amplitude. ALSABAT renverra une erreur si le signal SNR est inférieur au seuil.
Seuil de détection du bruit en pourcentage de l'amplitude du bruit (%). ALSABAT renverra une erreur si l'amplitude du bruit est supérieure au seuil.
Générez et jouez une onde sinusoïdale de 250 Hertz avec 2 canaux et le format S32_LE, puis capturez et analysez.
Lisez le fichier RIFF WAV "500Hz.wav" qui contient des données LPCM de forme d'onde de 500 Hertz, puis capturez et analysez.
En cas de succès, renvoie 0.
Si aucun pic n'est détecté, renvoie -1001 ;
Si seul DC est détecté, renvoie -1002 ;
Si la fréquence de crête ne correspond pas à la fréquence cible, renvoie -1003.
aplay(1)
Ne prend actuellement en charge que le format RIFF WAV avec des données PCM. Veuillez signaler tout bogue à la liste de diffusion alsa-devel.
alsabat est de Liam Girdwood liam.r.girdwood@linux.intel.com, Bernard Gautier bernard.gautier@intel.com et Han Lu han.lu@intel.com. Ce document est de Liam Girdwood liam.r.girdwood@linux.intel.com et Han Lu han.lu@intel.com.