Rien n'est envoyé, et cela se vérifie
Klarword ne vous demande pas de le croire. Le traitement se fait dans votre navigateur, le navigateur interdit à la page de se connecter ailleurs, et vous pouvez le constater en trente secondes.
Vérifier soi-même
- Coupez le réseau. Chargez un modèle, puis désactivez le Wi-Fi ou débranchez le câble. Déposez un fichier et transcrivez : tout fonctionne. Rechargez même la page, elle revient.
- Ouvrez l'onglet Réseau. Dans les outils de développement (F12), onglet « Réseau », déposez un fichier et lancez la transcription. Aucune requête ne part pendant le travail ; la première fois, seuls les fichiers du modèle arrivent, depuis ce site.
- Lisez la politique de sécurité du contenu. Elle est dans l'en-tête de chaque page et reproduite ci-dessous. La ligne connect-src 'self' interdit au navigateur toute connexion vers un autre domaine. C'est lui qui l'applique, pas nous.
- Comparez les empreintes. Chaque fichier de modèle a une empreinte SHA-256 publiée plus bas. L'outil la vérifie avant de s'en servir, et vous pouvez la recalculer vous-même sur le fichier téléchargé.
L'architecture
Le site est un ensemble de fichiers statiques : des pages, du code, un moteur de calcul et des modèles. Le serveur les sert et ne fait rien d'autre. Il n'y a pas d'application côté serveur, pas de base de données, pas de compte, et aucune adresse à laquelle envoyer un enregistrement.
Ce qui est téléchargé, et d'où
À l'ouverture de l'outil, le navigateur télécharge la page, son code et sa feuille de style. Au premier lancement d'un modèle, il télécharge le moteur de calcul puis les fichiers du modèle choisi. Tout vient de ce site, et rien d'autre n'est demandé : ni police, ni script tiers, ni mesure d'audience.
La bibliothèque qui fait tourner le modèle (transformers.js) sait aller chercher ses fichiers chez Hugging Face et son moteur sur un réseau de diffusion. Dans Klarword, elle n'en a pas le droit : sa fonction de téléchargement est remplacée par une fonction qui refuse, et elle ne lit que les fichiers vérifiés rangés sur votre poste. Une demande imprévue échoue avec un message, au lieu de partir.
Ce qui n'est jamais envoyé
Ni l'audio, ni la vidéo, ni le texte transcrit, ni vos corrections, ni le nom de vos fichiers. Il n'existe pas de compteur, pas de journal d'usage, pas de télémétrie. Le serveur ne sait pas que vous avez transcrit quelque chose.
Le serveur de ce site ne tient pas de journal d'accès. L'hébergeur conserve ses propres journaux techniques au niveau de la machine, selon ses règles de sécurité.
Ce qui est rangé sur votre poste
Les modèles et le moteur sont rangés dans l'espace privé que le navigateur réserve à ce site (Origin Private File System), après vérification de leur empreinte. C'est ce qui évite de les retélécharger, et ce qui permet de travailler hors ligne. L'écran « Sur ce poste » de l'outil les liste et permet de les supprimer.
Votre enregistrement n'y est jamais rangé. Il est lu en mémoire, dans l'onglet, et oublié à sa fermeture ; la transcription aussi. C'est pourquoi l'outil vous demande de l'enregistrer.
Une seule chose de votre travail est gardée d'une visite à l'autre : le glossaire que vous avez écrit, dans le stockage local du navigateur, sur ce poste. Il ne quitte pas le poste ; vous l'exportez vous-même en fichier texte pour le partager.
L'enregistrement depuis le micro
L'outil peut enregistrer directement depuis le micro de l'ordinateur. Le navigateur demande d'abord votre accord ; le son est ensuite gardé en mémoire dans l'onglet, exactement comme un fichier que vous auriez déposé, et transcrit de la même façon. Il n'est envoyé nulle part. Si vous voulez le conserver, l'outil propose de l'enregistrer sur votre poste ; sinon, il disparaît à la fermeture de l'onglet.
L'en-tête Permissions-Policy du site n'autorise le micro que pour ce site lui-même, et interdit la caméra, la géolocalisation et le reste.
Le mode hors ligne
Un travailleur de service garde une copie des pages et du code de l'outil, pour qu'il se recharge réseau coupé. Il ne fait aucune requête de lui-même, ne met rien en attente pour plus tard, et ne touche qu'aux fichiers de ce site. Les pages passent d'abord par le réseau quand il est là, pour que vous lisiez toujours la politique de sécurité en vigueur.
Le correcteur orthographique
Le correcteur du navigateur est désactivé par défaut dans l'éditeur. Celui de base, dans Chrome, Edge et Firefox, travaille sur le poste ; mais la « vérification orthographique améliorée » de Chrome envoie le texte saisi à Google. Si vous l'activez dans Klarword, vérifiez d'abord le réglage de votre navigateur.
Ce que cette architecture ne garantit pas
- Une extension installée dans votre navigateur peut lire la page et faire ses propres requêtes. Pour un travail sensible, utilisez un profil sans extensions.
- Un poste compromis reste compromis : Klarword ne protège pas contre un logiciel espion installé sur la machine.
- Le navigateur lui-même envoie des informations à son éditeur (mises à jour, rapports d'incident) selon ses propres réglages.
- La liste des requêtes affichée dans l'outil est tenue par la page. L'onglet Réseau du navigateur est la vérification qui fait foi.
Un audit indépendant
Le code servi est lisible dans le navigateur, et le paquet auto-hébergé est identique à celui du site, avec son empreinte. Une organisation peut donc le faire auditer par le prestataire de son choix, ou demander à son responsable de la sécurité de le relire avant de l'autoriser. Écrivez-nous pour obtenir le paquet à auditer.
La politique de sécurité du contenu
Envoyée par le serveur avec chaque page, et répétée dans la page elle-même pour le cas où elle serait posée sur un autre serveur :
default-src 'self'; script-src 'self' 'wasm-unsafe-eval' blob:; worker-src 'self' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' blob: data:; media-src 'self' blob:; font-src 'self'; connect-src 'self' blob:; object-src 'none'; frame-src 'none'; base-uri 'none'; form-action 'none'
Les empreintes des fichiers
Chaque fichier que l'outil peut télécharger, avec sa taille et son empreinte SHA-256. Les modèles viennent des dépôts onnx-community sur Hugging Face, épinglés à une révision précise, et sont servis par ce site. Pour vérifier un fichier : sha256sum sous Linux, shasum -a 256 sous macOS, certutil -hashfile fichier SHA256 sous Windows.
| Fichier | Taille | SHA-256 |
|---|---|---|
| Moteur de calcul (onnxruntime-web) | ||
ort/ort-wasm-simd-threaded.asyncify.mjs | moins de 1 Mo | 0966b6105cd936744498aa60df7a22cbd47af3374dbc64a9ab561c08a71e3611 |
ort/ort-wasm-simd-threaded.asyncify.wasm | 27 Mo | 49871f5a4409519797e127440868a6d1923339d9185907f301a5b2a1d90af082 |
Rapide · onnx-community/whisper-base · révision 1846881b6b3a | ||
config.json | moins de 1 Mo | f4d0608f7d918166da7edb3e188de5ef1bfe70d9802e785d271fd88111e9cf4b |
generation_config.json | moins de 1 Mo | 61070cf8de25b1e9256e8e102ded49d8d24a8369ed36ef84fdf21549e68125a0 |
onnx/decoder_model_merged_quantized.onnx | 54 Mo | fa3ef9902734ce5ae6f9ef2bdb2ba9a6c4b5785b09f4f420ce036573dc9d090b |
onnx/encoder_model_quantized.onnx | 23 Mo | 5862993336bf33acd23736071aae2b32261d3b1b2f37780194460d4ef974dd46 |
preprocessor_config.json | moins de 1 Mo | a6a76d28c93edb273669eb9e0b0636a2bddbb1272c3261e47b7ca6dfdbac1b8d |
tokenizer.json | 2 Mo | 27fc476bfe7f17299480be2273fc0608e4d5a99aba2ab5dec5374b4482d1a566 |
tokenizer_config.json | moins de 1 Mo | 2e036e4dbacfdeb7242c7d4ec4149f4a16e86026048f94d1637e3a8ee9c6a573 |
Équilibré · onnx-community/whisper-small · révision 36050c46d777 | ||
config.json | moins de 1 Mo | 457854d452f17661e197d74aee12b8e74fb75ba30ebfaa7426d0d61ea1e08a18 |
generation_config.json | moins de 1 Mo | f538b28220c6a6d6f1af1458d4141cacb4ef4963df3de98a19490440c412ddf0 |
onnx/decoder_model_merged_q4.onnx | 233 Mo | 795c61b344576719c2b249cc9911c78b4cc552c8c6a5407be21a3380a0791b13 |
onnx/decoder_model_merged_quantized.onnx | 157 Mo | ec07c3cbb64172c39791e26ee870a65ac22b458c36722bfe2776b3dbf741e0c9 |
onnx/encoder_model_q4.onnx | 66 Mo | 9f088ad0fe15ba2cf094c9fb22ac7fe1111fc9ef317c1e4d1f6a3bca38a931ba |
onnx/encoder_model_quantized.onnx | 92 Mo | a43a83f3c5361cd591cfa7c36f14b43cf7cb22f47a415cc14a8d557be800fa92 |
preprocessor_config.json | moins de 1 Mo | a6a76d28c93edb273669eb9e0b0636a2bddbb1272c3261e47b7ca6dfdbac1b8d |
tokenizer.json | 2 Mo | 27fc476bfe7f17299480be2273fc0608e4d5a99aba2ab5dec5374b4482d1a566 |
tokenizer_config.json | moins de 1 Mo | 2a4c4281cf9f51ac6ccc406fdc711a087afe6530f671fa7b80953edc498275ce |
Précis · onnx-community/whisper-large-v3-turbo · révision 360ebcde2559 | ||
config.json | moins de 1 Mo | 35cd83669f75bc2867f3b3a4461850392d5e308cd6ea951c3700539883c28df1 |
generation_config.json | moins de 1 Mo | 16f95291d2f47c944d3c2b19390bba7965666555c1ea2a0bdc850d1fab45612f |
onnx/decoder_model_merged_q4.onnx | 334 Mo | 8b933ac24074a24a1635084d06a4ed37e387ef22d980f184a5fc27418e9ceeb8 |
onnx/decoder_model_merged_q4f16.onnx | 194 Mo | 45981cdd958a4c8e1447839850d2e6e27e30974ccbe31b4a1e5ebe9ad8965a5f |
onnx/encoder_model_q4.onnx | 425 Mo | 7e64b20dd7b556cb7a2c1c65d9fbf31af985323c006f993d2a9dd10083547d78 |
onnx/encoder_model_q4f16.onnx | 370 Mo | aafd3383f1aa372db0825a885730ebbbae7e34871ec0460428663c69641a63d0 |
preprocessor_config.json | moins de 1 Mo | 7ccc62c6f2765af1f3b46c00c9b5894426835a05021c8b9c01eecb6dfb542711 |
tokenizer.json | 2 Mo | 6d8cbd7cd0d8d5815e478dac67b85a26bbe77c1f5e0c6d76d1ce2abc0e5f21ca |
tokenizer_config.json | moins de 1 Mo | 844b642c73a91359722f47b35705f7174686df33d252695d8572cf9ac03a6389 |
Locuteurs, tours de parole · onnx-community/pyannote-segmentation-3.0 · révision 733a93b6473d | ||
config.json | moins de 1 Mo | 5a4c6bb4f49f1b47c9bd398aac78b8cd4a9f30a0ff91b5c2dc68d05e13e160cf |
onnx/model.onnx | 6 Mo | 057ee564753071c0b09b5b611648b50ac188d50846bff5f01e9f7bbf1591ea25 |
preprocessor_config.json | moins de 1 Mo | dfc7d35a3895f8997eb94521e28b1921c03480a34fa9bcbb6bef1f1934f81480 |
Locuteurs, empreinte vocale · onnx-community/wespeaker-voxceleb-resnet34-LM · révision 6a61a1833ff2 | ||
config.json | moins de 1 Mo | 4a65a1544d2085d7819632f130583d83f6815f49ef6c8ba6c8eb460bd4085041 |
onnx/model.onnx | 27 Mo | 3955447b0499dc9e0a4541a895df08b03c69098eba4e56c02b5603e9f7f4fcbb |
preprocessor_config.json | moins de 1 Mo | a81bbded0530b1bf5c3d395d2c5c7c266686e348be5989171290ace960f24ec2 |