Pour des essais avec GNU-Radio il peut ĂŞtre intĂ©ressant d’avoir une sortie audio sur un PC ou un MAC sur le rĂ©seau. La solution proposĂ©e ici est simple Ă mettre en Ĺ“uvre Ă condition de connaĂ®tre la syntaxe des commandes.

Synoptique GNU-Radio
Pour cet essai on met un gĂ©nĂ©rateur sinusoĂŻdal Ă frĂ©quence ajustable et nous allons tester 2 mĂ©thodes d’envoi (streaming) vers un PC distant diffusant le signal avec VLC.

Pour cet exemple la frĂ©quence d’Ă©chantillonnage au niveau de GNU-Radio est 48000Hz. C’est une valeur standard pour de l’audio de qualitĂ©, mais on pourrait se limiter Ă 10kHz pour limiter le dĂ©bit sachant que notre gĂ©nĂ©rateur audio ne dĂ©passe pas les 3kHz. En sortie du gĂ©nĂ©rateur fournissant des valeurs entre +1 et -1 on recadre le format Float vers de l’entier 16 bits signĂ© (coefficient de recadrage 16000).Une fonction Throttle sert Ă ajuster le dĂ©bit de sortie. En sortie deux blocs TCP Sink et UDP Sink permettent de transmettre en TCP ou UDP vers VLC

Dans le cas d’une sortie en TCP mettre l’adresse IP de la machine sur laquelle tourne GNU-Radio. Mettre un port, par exemple 9001 et choisir le mode serveur. En TCP lorsqu’une machine A envoie des donnĂ©es vers une machine B, la machine B est prĂ©venue , vĂ©rifie l’intĂ©gritĂ© des donnĂ©es et les redemandes si besoin. Ce rend la liaison fiable au dĂ©triment du dĂ©bit plus important.

Dans le cas d’une sortie en UDP mettre l’adresse IP de la machine Ă laquelle est destinĂ©e les donnĂ©es. Mettre une payload size de 1000, les 1472 de base donnent un comportement Ă©ratique. Mettre un port de destination comme 9001. En UDP, lorsqu’une machine A envoie des paquets Ă destination d’une machine B, ce flux est unidirectionnel. La transmission des donnĂ©es se fait sans prĂ©venir le destinataire (la machine B), et le destinataire reçoit les donnĂ©es sans effectuer d’accusĂ© de rĂ©ception vers l’Ă©metteur (la machine A). Cela est moins fiable, mais pratique pour du streaming audio ou la perte d’un message n’est pas catastrophique.
Pour essayer vous pouvez télécharger et dézipper le fichier source .grc . https://f1atb.fr/wp-content/uploads/2021/03/test_audio_sink-1.zip. Vous choisissez (paramètre enable/disable) la sortie TCP ou UDP.
Lecture par VLC
Avec le protocole TCP, il est nécessaire de lancer le serveur TCP de GNU-Radio avant de lancer VNC.
Si vous êtes sous Windows, passez en mode commande (cmd) et allez dans le dossier où se trouve VNC. Généralement C:\Program Files\VideoLAN\VNC. Tapez la commande suivante:
vlc --demux=rawaud --rawaud-channels=1 --rawaud-samplerate=48000 tcp://192.168.0.133:9001
On y retrouve les paramètres suivants:
– rawaud car l’audio sur 16 bits n’est pas comprimĂ©
– channels=1 car nous sommes en monophonie
– samplerate: ici 48000, mais on peut mettre autre chose suivant le dĂ©bit de sortie de GNU Radio
– tcp://xxxxx:port cela correspond Ă l’adresse IP sur votre rĂ©seau du serveur cotĂ© GNU-Radio et du port choisi.
Arrivez Ă ce stade, vous devez entendre le gĂ©nĂ©rateur Audio dans GNU-Radio dont la frĂ©quence se pilote par un curseur. Cela vous permettra de constater le retard d’environ 1 s entre chaque changement de la frĂ©quence au curseur et le changement de la hauteur du son.
Si vous optez pour le mode UDP plus adaptĂ© au streaming, la commande pour lancer VLC est similaire sauf l’adressage IP.
vlc --demux=rawaud --rawaud-channels=1 --rawaud-samplerate=48000 udp://@:9001
Cette mĂ©thode est intĂ©ressante pour tester rapidement une sortie d’un rĂ©cepteur radio modĂ©lisĂ© sur GNU-Radio ou toute autre application tournant sur un « Single Board Computer » comme un Raspberry Pi ou Orange Pi.
Autres articles sur GNU – Radio
- Changement Fréquence du SDR Pluto
- Lancement script GNU Radio au boot
- NBFM Transceiver avec Pluto SDR et GNU Radio
- Audio GNU-RADIO vers VLC
- Remote SDR V1 – Installation
- Client Web vers GNU Radio
- GNU Radio vers client Web
- Emetteur BLU distant
- Récepteur BLU distant
- Émetteur et rĂ©cepteur vers Q0-100 avec 2 SDR – Remote SDR V1
- HackRF – RTL-SDR – GNU RADIO