On a installé Snips, l’assistant vocal respectueux de votre vie privée, sur un Raspberry Pi
Merci Sam
Le 21 décembre 2018 à 13h30
15 min
Hardware
Hardware
Cette année encore, les assistants numériques devraient rencontrer un certain succès à Noël. Mais comment faire si vous ne voulez pas que vos donnez passent chez Amazon ou Google ? Snips est une alternative intéressante, qui peut s'installer et fonctionner en local sur un Raspberry Pi. Voici un petit guide pratique.
Les enceintes connectées de type Amazon Echo ou Google Home sont souvent annoncées comme « intelligentes ». Il n'y a pourtant rien de plus faux, puisqu'il s'agit d'un produit relativement basique comprenant des hauts parleurs et des micros, avec un système léger connecté à internet, le plus souvent sans fil.
Un fois le mot clé détecté de manière locale (Alexa, Ok Google, etc.) l'enregistrement audio débute. Le résultat est alors envoyé sur les serveurs d'Amazon ou de Google pour être traité, analysé et qu'une réponse soit produite.
Un assistant avec de la reconnaissance vocale locale
Pour cela votre requête vocale est interprétée sous la forme d'un texte, puis traitée par une « intelligence artificielle » (ou boîte noire) qui se chargera de décider quoi faire et des actions qui sont nécessaires, notamment auprès de services tiers (allumer une ampoule, lancer une musique, etc.).
L'historique est le plus souvent conservé, de quoi parfois donner des sueurs froides à certains. Surtout quand une plateforme décide de les envoyer à la mauvaise personne. Vous pouvez bien entendu décider de faire le ménage de temps en temps (rarement de manière automatique), ou de couper les micros manuellement quand vous le désirez.
Mais il existe une autre voie, notamment choisie par le français Snips : miser sur une reconnaissance vocale et un traitement des demandes de manière locale. La société développe depuis quelques années une solution et des services basés sur l'intelligence artificielle, qui se veulent respectueuse de la vie privée, misant sur le « Privacy by design ».
Snips laisse la possibilité aux utilisateurs/développeurs de programmer des « actions » en fonction de leurs demandes (nommées intentions). Une boutique en ligne permet de piocher dans les applications déjà disponibles (dont la majorité est proposée par la communauté) pour effectuer des calculs, donner l'heure ou la météo, contrôler des objets connectés, etc.
Un partenariat a ainsi été noué avec Jeedom. Mais la plateforme peut être utilisée à travers de nombreux appareils, comme un Raspberry Pi. De petites machines qui coûtent de 25 à 40 euros. Nous avons donc décidé de tenter l'expérience. La boutique applicative doit néanmoins encore être largement améliorée, comme nous allons le voir.
Un Raspberry Pi, une carte microSD et c'est parti
Si c'est la première fois que vous utilisez un Raspberry Pi, il faudra commencer par installer un système d'exploitation sur une carte microSD ou une clé USB. Nous avons pour rappel publié un guide pour mettre simplement en place (sans écran ni clavier ou souris) la distribution Raspbian avec Wi-Fi et SSH :
Nous aurons en effet besoin des deux services pour nous connecter au Raspberry Pi (une connexion filaire RJ45 peut aussi bien faire l'affaire) afin d'y installer à distance Snips. Pour déployer et utiliser l'assistant numérique, nous n'avons pas besoin d'une interface graphique, nous avons donc opté pour la version Lite de Raspbian sur notre Raspberry Pi 3B.
Avant d'aller plus loin, vérifiez que vous connaissez l'adresse IP de votre Raspberry Pi et que vous pouvez vous y connecter en SSH : par défaut le nom d'utilisateur est Pi
et le mot de passe Raspberry
. Si ce n'est pas déjà fait, changez ce dernier à l'aide de la commande passwd
.
Dernière étape avant de se lancer : Node.js et Git doivent être installés sur votre ordinateur principal. Dans notre cas, la dernière version recommandée de Node.js était la 10.14.2 LTS, contre la 2.20.1 pour Git, dans leurs versions pour Windows 10.
Créeons un premier assistant
Avant de transférer Snips sur votre micro-ordinateur, il faut commencer par créer un « assistant ». Vous pouvez en effet en avoir plusieurs sur différentes machines en fonction de vos besoins. Cette étape nécessite de créeer un compte – gratuit – sur le site de Snips, disponible seulement en anglais pour le moment.
Dès que vous avez entré vos nom d'utilisateur, email et mot de passe (gardez-les en tête, vous en aurez besoin plus tard), Snips vous demande de nommer à votre premier assistant (cela peut être modifié par la suite) et de définir une langue. Six sont disponibles : français (notre choix), anglais, allemand, japonais, espagnol et coréen.
Le site vous propose alors d'ajouter des applications. Par défaut votre assistant ne sait rien faire et ne pourra donc répondre à aucune de vos demandes. Dans le cadre de ce guide, nous avons ajouté deux services : CodesPostaux (par Roozeec) et heure (par Joseph). Pour procéder, il suffit de cliquer sur « Add App » en dessous de chaque application, puis sur « Add 2 Apps » en bas à droite de la page.
Nous arrivons automatiquement sur la page de projet de notre assistant. Trois mots de réveil – « Wake word » – sont proposés par défaut : Hey Snips, Chappie et Jarvis. Il est également possible de le personnaliser, mais il faudra alors enregistrer des échantillons de voix pour que Snips puisse ensuite le reconnaitre ; toutes les instructions sont disponibles par ici.
Dans notre cas, nous avons opté pour... Jarvis.
Collecte anonyme des données par défaut
Avant d'aller plus loin, repérez la roue crantée avec l'étiquette Assistant Settings dans la partie supérieure droite de la page de votre projet. En plus du nom (modifiable) et de la langue, des options supplémentaires sont présentes, alors qu'elles n'étaient pas proposées/affichées lors de la création. Elles sont au nombre de trois : ASR Provider, Enable Analytics to Help Make Snips Better et Enable Heartbeat Signal.
La première permet de changer le service en charge d'effectuer la reconnaissance vocale. Par défaut, c'est l'Automactic Speech Recognition (ASR) de Snips en local qui est utilisé, mais il est aussi possible de passer par Google ou bien de sélectionner un mode en langage naturel uniquement. Laissez le paramètre par défaut sur la première option.
Les deux autres options sont activées par défaut. L'une concerne l'envoi automatique de données d'utilisation anonymisées. Après avoir mis en avant l'importance de la confidentialité, Snips explique également avoir besoin d'« améliorer son produit » et donc « comprendre comment les gens l’utilisent ».
« En cochant cette case », qui est en fait cochée par défaut, « vous permettez à Snips de collecter des données d'utilisation anonymes, telles que la fréquence à laquelle vous avez effectué une requête et si elle a échouée. Votre identité, le contenu de votre demande, la réponse, votre voix ou autres données sensibles ne seront jamais collectés », précise l'éditeur.
Enfin, la dernière option envoie une notification anonyme pour chaque appareil utilisant Snips. Dans les deux cas, nous aurions préféré que l'activation ne se fasse pas par défaut. Ou au minimum que le choix soit proposé lors de la création de l'assistant.
Sam, c'est celui qui installe
Maintenant que notre assistant est créé, laissons de côté le site de Snips. Pour la suite des opérations, il faut lancer un terminal. Sous Windows cela passe par l'invite de commandes accessible via la commande cmd
à taper dans le menu démarrer ou dans la fenêtre qui apparaît après avoir pressé les touches Windows + R.
L'installation de Sam (Snips Assistant Manager), passe par le gestionnaire de paquets de Node.js, npm :
npm install -g snips-sam
Si vous obtenez un message d'erreur indiquant que npm n'est pas disponible, c'est probablement que vous avez sauté l'étape d'installation de Node.js. Pas de panique, il est toujours temps de le faire.
Sam est une interface en ligne de commande (CLI) développée par Snips. Son but « est de configurer et gérer facilement un Raspberry Pi et d'autres machines similaires directement depuis votre ordinateur, sans avoir besoin de créer une session SSH et de saisir des commandes complexes », selon les développeurs.
La prochaine étape est de vous connecter à votre Raspberry Pi, via Sam justement. Pour cela, il suffit de saisir la commande suivante, puis d'entrer le nom d'utilisateur (Pi par défaut) et le mot de passe (Raspberry, ou bien le vôtre si vous avez eu la bonne idée d'en changer) :
sam connect adrres_ip_de_votre_raspberry_pi
Si vous ne connaissez pas l'IP de votre Raspberry Pi, la commande sam devices
peut vous aider. Si un message d'erreur indique Didn't find the ssh-keygen.exe
c'est que vous avez probablement oublié d'installer Git. Là encore, il n'est pas trop tard pour y remédier.
La prochaine commande permet (enfin) d'installer Snips sur le micro-ordinateur, via une commande simple :
sam init
Une fois terminé, le Raspberry Pi redémarre. Vous pouvez alors exécuter la commande sam status
pour vérifier l'état de Snips sur le Raspberry Pi. Si plusieurs services sont arrêtés, pas de panique c'est normal à ce stade. Vérifiez simplement qu'en face de « Status » soit bien indiqué « Live » avant de passer à la suite des opérations.
Déploiement de l'assistant sur le Raspberry Pi
La prochaine étape est de connecter Sam à votre compte Snips (c'est maintenant qu'il faut se souvenir de ses identifiants). Là encore, rien de plus simple puisque la ligne de commande est la suivante :
sam login
Pour installer votre assistant, deux possibilités (au choix) :
sam install assistant
sam install assistant -i proj_xxxx
Dans le premier cas, sam vous listera la liste des assistants de votre compte, vous n'avez plus qu'à en choisir un à l'aide des flèches vers le haut ou le bas. Si vous n'avez créé qu'un seul assistant, il sera automatiquement sélectionné.
Dans le second cas, il faut vous rendre sur la page de votre assistant sur le site de Snips, puis cliquer sur Deploy Assistant en bas à droite de la page. Copiez la ligne de commande affichée, avec la référence du projet (proj_xxxx) et collez-là dans le terminal.
<>En fonction des options et du nombre d'applications dans votre assistant, l'installation peut prendre plus ou moins de temps. Avec la météo et les codes postaux, une poignée de minutes étaient nécessaires dans notre cas. Notez que des fichiers sont récupérés depuis GitHub, ce qui est normal puisque le code source des deux applications que nous avons sélectionné s'y trouve :
- https://github.com/JDureau/snips-skill-heure pour l'heure
- https://github.com/roozeec/snips-codes-postaux pour les codes postaux.
Jongler avec entrées et sorties audio
Maintenant, c'est fait : l'assistant est installé sur le Raspberry Pi, il n'y a plus qu'à brancher des haut-parleurs et un micro... mais pas facile avec une seule prise jack par défaut sur le micro-ordinateur.
Deux possibilités s'offrent à vous : un micro USB ou une carte son externe, elle aussi en USB. Nous avons opté pour la seconde avec une carte à moins de 60 centimes d'euros (référence CL-SU4CHA), avec deux sorties jacks de 3,5" pour un casque et un micro. Une fois branchée, elle est automatiquement détectée et nous n'avons pas eu besoin d'installer le moindre pilote.
Il faut maintenant configurer les entrées/sorties audio, via la commande suivante :
sam setup audio
Snips vous demande alors si vous disposez du Maker Kit de Snips. Il comprend un Raspberry Pi 3 B+, un module ReSpeaker équipé de deux microphones et un haut-parleur, une carte microSD de 4 Go et une plaque pour fixer l'ensemble. Il n'est par contre plus disponible pour le moment. Ce n'était pas notre cas, nous avons donc pressé la touche n avant de valider.
Sam affiche alors la liste des sorties audios disponibles. Notre Raspberry Pi 3B en a deux par défaut :
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
La première correspond à la prise jack, la seconde à la sortie HDMI. Si, comme nous, vous avez installé une carte son USB, elle devrait apparaitre sous la référence card 1
. Choisissez la sortie que vous voulez à l'aide des flèches (haut/bas), puis validez. N'ayant qu'une seule entrée microphone sur la carte son USB, Sam ne nous demande rien de plus.
Vous pouvez alors vérifier que tout fonctionne correctement, aussi bien le microphone que le haut-parleur :
sam test speaker
sam test microphone
La première commande fait tourner en boucle une piste audio répétant inlassablement « front left, front right ». La seconde enregistre ce qui est capté par le microphone et vous fait ensuite écouter l'enregistrement. Si les deux tests sont concluants, vous pouvez commencer à utiliser les applications de votre assistant vocal Snips.
Jarvis, quelle heure est-il ?
Voici quelques commandes qui fonctionnent dans notre cas : « Jarvis, quelle heure est-il ? », « Jarvis, quel est le code postal de Bordeaux ? », « Jarvis, dans quel département se trouve La Rochelle ? », etc. Les premières ne posent pas de soucis particuliers, mais l'assistant nous annonce la Haute-Saône (département 70) dans le dernier cas.
Alors certes il existe un « petit village à proximité de la RN19 » selon le site de la mairie, de 41 habitants en 2015 selon l'Insee, mais ce n'est pas spécialement cette réponse que nous attendions. Alexa et Google Assistant ne s'y trompent d'ailleurs pas et parlent bien de la ville de La Rochelle dans le 17. Dans le cas présent, ce n'est pas tant Snips qu'il faudrait modifier (la reconnaissance vocale marche bien), mais l'application en charge de traiter la demande.
En cas de problème, ou simplement par curiosité pour suivre le fonctionnement de Snips, vous pouvez lancer la commande suivante pour afficher les logs de vos demandes, les mots reconnus et l'interprétation qu'en fait de l'assistant numérique :
sam watch
Vous pouvez aller plus loin, de nombreuses possibilités étant proposées. La documentation complète de Snips est ici.
Encore (beaucoup) de travail sur le Store
Il ne faudra par contre pas en demander davantage à Snips sans installer d'applications supplémentaires... et cette étape peut rapidement devenir une compliquée à cause de l'App Store. Il existe en effet de nombreux doublons (fork) – plus d'une quinzaine rien que pour JeedomOfficiel – sans pouvoir identifier l'original car toutes les applications portent le même nom.
Interrogé, Snips nous explique avoir suivi « deux principes clés » pour sa marketplace : « ne pas avoir d'autorité centrale et distribuer la majeure partie de la valeur créée à la communauté ». Pour les doublons, « une nouvelle version de l’App Store permettant de cacher les doublons (fork) sous l’original » est en préparation.
En attendant, l'application JeedomOfficiel développée par Valf (le JeedomOfficiel vraiment officiel) « va être transférée sous le compte de « Snips » pour une meilleure visibilité ».
Ce n'est pas tout : « la nouvelle version de la console que nous préparons va clairement nettoyer l’App Store et permettre de filtrer plus facilement en fonction de ses besoins (App forkés, App original, App + de X votes, App + de X commentaires, ect) ». En effet, de nombreuses applications ne fonctionnent pas correctement après les avoir installées avec les paramètres par défaut, bien souvent c'est d'ailleurs la même erreur qui revient en boucle : « The session was ended because one of the component didn't respond in a timely manner ».
Nous avons également interrogé Snips sur le sujet, sans réponse pour le moment.
Sam peut mettre à jour l'assistant, mais pas le supprimer
Lors de nos différents essais, nous avons ajouté/supprimé des applications à notre assistant, puis déployé la mise à jour sur notre Raspberry Pi 3B via la commande suivante :
sam update-assistant
Par contre, nous n'avons pas trouvé de commande pour supprimer un assistant via Sam dans la documentation... et c'est normal selon Snips puisqu'il n'y en a pas. L'éditeur nous confirme que « Sam ne supprime pas les précédentes actions, il faut le faire manuellement sur le Rasbperry Pi dans /var/lib/snips/skills ».
Dans ce cas, il faudra utiliser une connexion SSH, via Putty par exemple.
Vers un assistant tout en un
Si la solution du Raspberry Pi peut être intéressante pour les bidouilleurs et autres développeurs, qui sont incités par Snips à participer à son projet et s'en emparer, le grand public reste en attente d'une alternative clé en main aux assistants vocaux dont le modèle économique repose sur la collecte de données.
Pour cela, Snips travaille à sa propre enceinte connectée. L'année dernière, ses équipes étaient au Computex de Taïwan pour trouver des partenaires. Depuis, des annonces ont été faites pour indiquer que Snips Air devrait sortir dans le courant de l'année prochaine. Reste maintenant à tenir cette promesse.
On a installé Snips, l’assistant vocal respectueux de votre vie privée, sur un Raspberry Pi
-
Un assistant avec de la reconnaissance vocale locale
-
Un Raspberry Pi, une carte microSD et c'est parti
-
Créeons un premier assistant
-
Collecte anonyme des données par défaut
-
Sam, c'est celui qui installe
-
Déploiement de l'assistant sur le Raspberry Pi
-
Jongler avec entrées et sorties audio
-
Jarvis, quelle heure est-il ?
-
Encore (beaucoup) de travail sur le Store
-
Sam peut mettre à jour l'assistant, mais pas le supprimer
-
Vers un assistant tout en un
Commentaires (21)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 21/12/2018 à 13h48
Merci, je crois que je sais à quoi je vais occuper mon week end ;)
Une question : est-il possible de récupérer le texte reconnu pour le traiter de son côté ? j’ai un peu de mal à voir la modularité du truc (bon je pourrais me taper la doc aussi …).
J’ai un système domotique maison reposant sur la reconnaissance via google chromium sur un Rpi. Un bête javascript envoie ensuite le texte reconnu à une appli maison qui se charge du reste. Mais si je pouvais me passer de google ça serait royale ;)
Le 21/12/2018 à 13h51
Ce genre de dossier est super intéressant. Le système à l’air encore jeune mais il se pourrait bien que je franchisse le cap lorsque j’aurais du temps à perdre.
Le tout couplé à un système domotic pour faire le fainéant genre “Jarvis ferme les store” qui répond bien et ce sera top.
Merci !
Le 21/12/2018 à 14h03
Pour information, bien qu’il implémente par défaut la reconnaissance de Google, il y a aussi Kalliope qui est un excellent assistant et permet de fonctionner avec plusieurs autres systèmes de reconnaissance (et même de configurer pas mal de choses).
Pas forcément mieux que celui de la news, différent, mais à tester pour les bricoleurs ;)
Le 21/12/2018 à 14h12
Super article. Ca donne envie de tester! Comme déjà dit, couplé avec une solution domotique (maison si possible) ca peut être sympa.
Mais bon, faudrait déjà que je finisse d’installer mon réseau et ma baie, que je fasse un peu de code pour la domotique…
Mais c’est sympa ces solutions locales. C’est vrai que si ca devenait un peu plus “grand public” ca m’aiderai à pas y passer trop de temps.
Le 21/12/2018 à 14h15
Oui, comme indiqué dans l’article, il est possible de développer des applications maison ;)
La documentation Snips est dispo ici https://docs.snips.ai/getting-started/quick-start-console#step-3-create-an-app
Le 21/12/2018 à 14h41
J’avais testé Snips il y a quelques mois, mais j’avais été déçu par plusieurs points :
Dommage, j’aimerais vraiment une solution qui tourne entièrement en local, espérons que ça s’améliore !
Le 21/12/2018 à 14h43
Arf j’suis passé à côté :s merci de l’info.
Franchement continuez comme ça, ce genre de dossier est vraiment top ;)
Le 21/12/2018 à 14h52
Chez moi en ce moment c’est “jarvis imprime le fichier” et hop, la pièce maison sur laquelle je bosse imprimée en 3D ;)
Le 21/12/2018 à 17h20
Hah, je viens de commander un rpi pour tester Jasper… cet article tombe à pic, je ne connaissais pas Snips :).
Le 21/12/2018 à 18h45
Concernant les tokens :
https://medium.com/snips-ai/snips-maker-release-2-0-34c6a84a2783
En gros c’est la monnaie du store vu que certaines app peuvent être payantes.
1 token = 0.026€
Le 21/12/2018 à 19h11
Alors vous, on peut dire que vous tomber bien !
J’ai sous le coude depuis un certain moment tout ce qui peut ce faire en tant que commande vocale sur rpi (Jarvis, Mycroft, Kalliope, Gladys, Alexa et Jasper) mais je n’ai jamais pris le temps de tester. Je comptais faire ça la semaine prochaine puisque je viens de recevoir mon micro usb.
Après avoir lu, il faut un compte…
Quitte à tester, je lui préfère Jarvis, lui aussi en local.
Et puis les vidéos (domotique) de Tommy me parraissent assez didactiques.
Le 22/12/2018 à 01h13
Très intéressant comme approche.
Pour moi la question primaire est comment avoir des modules primaires domotiques dispatchés.
J’ai plusieurs usages potentiels, certains avec un raspberri par prise, d’autres avec 8 outputs par rasp. Du Wifi pour limiter le cablage au débit effectif.
Bref, il reste à construire le reste du reseau d’actionneurs.
Le 22/12/2018 à 03h30
En solution clé en main, il y a le Mycroft Mark 1 (le Mark II tant attendu ne devrait plus trop tarder à sortir).
On peut également l’installer sur un Raspberry Pi.
Quant à la reconnaissance vocale libre, n’importe qui est invité à contribuer au projet Common Voice initié par Mozilla. Le Framablog a récemment publié un article à ce sujet.
Le 22/12/2018 à 04h11
Si je ne me trompes pas le projet de Mozilla n’est pour le moment qu’une “simple” banque de voix. Il n’y a aucun système de reconnaissance opérationnel derrière pour le moment, si ?
Le 22/12/2018 à 09h54
Le système, c’est Mozilla DeepSpeech, qui semble déjà être utilisé par Mycroft.
Et comme tout système à base d’apprentissage automatique, ce dernier a besoin d’être « entraîné ». Et c’est là qu’intervient Common Voice.
Le 22/12/2018 à 10h35
J’aimerais pouvoir installer ça sur Windows sans avoir à monter une machine virtuelle Linux. J’ai déjà une machine tout le temps allumée sur ma télé qui pourrait remplir ce rôle, je vois pas l’intérêt de rajouter un énième appareil. Mais c’est prometteur de partir sur de l’anonyme, surtout que techniquement parlant, il n’est pas nécessaire de renvoyer tout vers des serveurs à la manière de Google et consorts.
Le 24/12/2018 à 11h05
Sur windows, y a déjà le projet SARAH qui fonctionne en local. SI ça peut servir https://blog.encausse.net/sarah/
Le 25/12/2018 à 15h12
De ce que j’en lit on est loin d’un fonctionnement purement local, puisque ça se repose sur Google Cloud pour le traitement des questions ouvertes :
http://jpencausse.github.io/SARAH-Documentation/?page=getting_started_v4
Microsoft a implémenté le sous-système Linux sous Windows 10 pour ça. Mais de manière globale, lire l’article de départ peut parfois aider. Tu aurais remarqué que ça a été fait sous Windows (npm n’étant pas vraiment spécifique à Linux)
Le 26/12/2018 à 20h44
Pour avoir testé, Gladis, Jarvis, Kaliope c’est quand même le système le plus compliqué à mettre en oeuvre…
Jarvis avec une install en full snowboy est 100% en local si je ne me trompe pas, par contre faut lui faire apprendre tous les mots clefs
Le 26/12/2018 à 23h30
Un grand merci pour cet article. Ça fait plaisir de voir que vous mettez en lumière une boite française qui tente de lancer une alternative aux géants du vol de données personnelles :-)
Pour avoir pas mal joué avec, ça reste assez perfectible sur le speech to text mais c’est déjà très très cool. Je demande à voir la suite.
Je tente d’ecrire une sorte d’API qui permet de recevoir les messages mqtt que snips balance sur un bus lors d’une demande utilisateur pour les traiter ensuite. C’est assez fun et flexible. Pas envie de faire du Python (seul moyen à la connaissance pour que ça soit intégré au store pour le moment).
Le 28/12/2018 à 10h55
l’article est intéressant, mais il passe complètement à côté du truc fondamental quand on parle de reconnaissance vocale: tout simplement la qualité de ladite reconnaissance.
pour associer à la domotique de ma maison, je fais (toujours) partie de ceux qui ont voulu à tout prix une reco vocale 100% locale, comme tout le reste que j’ai mis en oeuvre.
Je ne compte plus les solutions testées, y compris SARAH (qui se base sur la reco vocale de microsoft, une paille) associée à l’array de micro du kinect pour avoir les meilleures performances possibles.
Résultat: tout ce petit monde n’arrive pas à la cheville de la qualité de reco d’un google home mini tout basique. Et à l’usage, ça fait toute la différence entre un truc qu’on peut utiliser et un truc qui prendra la poussière.
Donc que l’article n’évoque même pas cet aspect pourtant fondamental me laisse quelque peu pantois.
Un peu comme si on testait une perceuse et qu’on ne testait pas un minimum sa capacité à percer des trous.