Le problème viens du RPi et de la performance.
Le RPi0 est de très mauvaise performance, basé sur le RPi1, il est donc mono processeur. La capacité d’encodage/décodage est (très) limité. Alors la qualité sera très basse. Par exemple, si tu utiliserais eSpeak, tu remarquerais que les vois sons anormalement trop lente. Comparativement aux mêmes valeur sur un RPi plus récent.
Un signal audio est une donnée assez légère, la consommation de la bande passante devrais être en dessous d’un niveau causant un lag. Un signal compressé en MP3 à 128kbs donne environ un débit de 15k/s. Ceci est une évaluation approximative de l’usage.
Je privilégie toujours le filaire, le Wifi je l’ai en horreur pour les interférences et le sur-usage du Wifi en milieu urbain. J’ai beau avoir 4 routeurs Wifi pour fournir un sans-fils qui couvre au maximum mon logement, j’ai quand même des difficultés de connectivité. Pourtant j’analyse les ondes pour prendre des plages vides.
C’est sur que abuser du USB ne va pas t’aider. SI tu es « pris » avec un RPi0, alors faudra y ajouter un hub USB alimenté pour l’aider. Selon certains documents, le RPi0 limite la sortie sur le USB à 0.6A, soit pour un seul appareil USB, ont peut doubler avec le paramètre max_usb_current=1
dans le config.txt
, ce qui donnerais dans les 1.2A, dans ce cas d figure il faudrait un chargeur de 2.5A idéalement au minimum pour s’assurer de fournir.
L’overclock, je déconseille sauf si tu es un habitué de jouer entre les clock CPU/RAM et l’ajustement du voltage. Cette manip est fortement déconseillé par la Team Raspberry Pi Foundation. Malgré qu’il soit possible de le faire, ceci, comme dans tout autres cas de Overclock, endommager le matériel et apporter des résultat étranges (corruption de donnée par exemple). Et connaissant bien el RPi0 (J’ai en 4 en tout), je sais que l’overclocking va apporter un gain ridicule de … 1 à 5% vraiment gros max.
Le RPi0 me déçois
Je suis heureux de la sortie du RPi0 v2, car le RPi0 v1 ma déçu beaucoup. De très mauvaises performance, dans le seul domaine qui pourrait avoir un avantage, il est pourtant dénudé de la capacité audio. J’aime le petit format de ce modèle, qui fournis le minimum, avec l’audio il aurait été parfait. Mais il est affreusement lent.
J’ai par exemple travaillé avec des jeux Pico8, de ma lecture, j’en comprend qu’il peut marcher sur un RPi Pico, mais sur un RPi0 par exemple, il est lent et le son est saccadé, clairement, il n’arrive pas a bien marcher. La démonstration de ça « non » puissance ce fai avec les émulateurs, il arrive à émuler un NES quand même bien, mais le SNES, ont arrive vite à la saturation, et je ne parle pas de jeux avec la puce FX par exemple, mais du seul bon vieux Super Mario World, Par exemple la « GamePI20 » qui donne l’illusion que le RPi0 est assez puissant pour en faire une console portable n’est que illusion.
J’ai désiré l’utiliser pour un Dashboard, mes tests en mode « kiosque » pour Chrome sont affreux, une lenteur extrême. Des lags de touche invivable (press « play » et 10-15s après j’ai la réaction) et plus le temps avance, plus il accumule le « lag », arrivant à un point qui est trop « en retard » pour arriver à garder un signal Bluetooth actif (que je me servait pour la sortie audio). La lecture de musique en ligne de commande suffit à l’engorger suffisamment pour rendre l’affichage « lagguy ».
Dans un projet de caméra de sécurité, il atteint également vite la limite. Une caméra pour RPi est connecté, si j’utilise ffmpeg pour capturer, j’ai un lag de 5~10s. Si j’utilise motion, j’ai un lag de 1~5s.
Bref, il faudra des essais/erreurs pour comprendre ce qui accroche. Idéalement faut demander au RPi de faire la job et éviter au maximum les encodages et travailler avec des données brute. Si possible, passer au RPi2 (ou mieux) pour aller en chercher plus. Le RPi 0 aurai été en mesure de faire une seul job, par exemple encoder l’audio de la radio en signal internet. Il aurait eu un lag d’encodage (selon la plateforme), c’est tout. Plus tu ajoute de travail, plus il sera lent et commencera a dépouiller les tâche de la qualité d’exécution. Tu peut tenter de t’aider avec la commande nice
, qui sert a fournir la priorité au processeur pour une tâche. Avec ce type de manipulation, il est possible de limiter la lecture saccader et rendre certaines tâches plus réactives, mais encore la, il y a des limites.