fix: logs debug AudioBridge + install pulseaudio-utils

- Ajout logs FLUX 2 (réception audio LiveKit → carte son)
- Ajout logs GroupRouter pour debug routing
- install/linux.sh: ajout pulseaudio-utils (requis pour pactl)
This commit is contained in:
2026-05-28 13:33:02 +02:00
parent 574ca7e95d
commit 52c2a0d326
3 changed files with 23 additions and 2 deletions
+2 -1
View File
@@ -71,7 +71,8 @@ install_system_deps() {
# Outils PipeWire
sudo apt install -y \
pipewire-bin \
libspa-0.2-jack
libspa-0.2-jack \
pulseaudio-utils
# Démarrage automatique
systemctl --user enable --now pipewire pipewire-pulse wireplumber
+12
View File
@@ -352,10 +352,14 @@ export class AudioBridge extends EventEmitter {
// Réception audio depuis les clients LiveKit
this.liveKitClient.on('audioData', ({ participantName, pcmData, sampleRate, channels }) => {
console.log(`[AudioBridge FLUX 2] Audio reçu de ${participantName}: ${pcmData.length} bytes (${sampleRate}Hz, ${channels}ch)`);
// Pour l'instant, on route vers le groupe principal
// TODO: Mapper les participants aux groupes selon la configuration
const groupName = 'Equipe'; // Groupe par défaut
this.emit('groupAudioIn', { groupName, pcmBuffer: pcmData });
console.log(`[AudioBridge FLUX 2] Événement groupAudioIn émis pour groupe "${groupName}"`);
});
await this.liveKitClient.connect();
@@ -449,19 +453,27 @@ export class AudioBridge extends EventEmitter {
// Écouter l'audio entrant de LiveKit (sera connecté par LiveKitServerBridge)
this.on('groupAudioIn', ({ groupName, pcmBuffer }) => {
try {
console.log(`[AudioBridge FLUX 2] Handler groupAudioIn: groupe="${groupName}", buffer=${pcmBuffer.length} bytes`);
// Stocker le buffer du groupe pour le routing
const float32Data = this._bufferToFloat32(pcmBuffer);
this.groupBuffersFromLiveKit.set(groupName, float32Data);
console.log(`[AudioBridge FLUX 2] Buffer Float32 créé: ${float32Data.length} samples`);
// ÉTAPE 3 : Groupes → Outputs physiques (via GroupAudioRouter)
const outputBuffers = this.groupAudioRouter.processGroupsToOutputs(
this.groupBuffersFromLiveKit
);
console.log(`[AudioBridge FLUX 2] GroupRouter processGroupsToOutputs: ${this.groupBuffersFromLiveKit.size} groupes → ${outputBuffers.size} outputs`);
// ÉTAPE 4 : Envoyer chaque output à la carte son
outputBuffers.forEach((outputBuffer, channelId) => {
const pcmBuffer = this._float32ToBuffer(outputBuffer);
console.log(`[AudioBridge FLUX 2] → Output ${channelId}: ${pcmBuffer.length} bytes vers carte son`);
// Envoyer à la carte son
this.audioBackend.queueAudio(pcmBuffer);
});
+9 -1
View File
@@ -270,11 +270,19 @@ export class GroupAudioRouter extends EventEmitter {
// Réinitialise les buffers de sortie
this.outputBuffers.clear();
logger.debug(`[GroupRouter] processGroupsToOutputs: ${groupBuffersData.size} groupes en entrée`);
logger.debug(`[GroupRouter] Routes disponibles: ${JSON.stringify([...this.groupToOutputRoutes.keys()])}`);
// Pour chaque groupe
groupBuffersData.forEach((pcmData, groupName) => {
const routes = this.groupToOutputRoutes.get(groupName);
if (!routes || routes.length === 0) return;
logger.debug(`[GroupRouter] Groupe "${groupName}": ${routes ? routes.length : 0} routes trouvées`);
if (!routes || routes.length === 0) {
logger.warn(`[GroupRouter] Aucune route de sortie configurée pour groupe "${groupName}" - audio ignoré`);
return;
}
// Applique chaque route vers les sorties
routes.forEach(route => {