Documentation

Documentation

Quatre sections, dans l’ordre où on en a le plus souvent besoin.

Installer l’application Nextcloud

L’application est la moitié Nextcloud du système : la liste des réunions, les paramètres, les commandes de chat et les fichiers. Elle n’enregistre rien elle-même — c’est le rôle du connecteur, et les deux se reconnaissent grâce à une seule clé.

Avant de commencer

  • Nextcloud 30 ou plus récent, avec Talk installé.
  • Un High Performance Backend pour Talk. Il n’est pas facultatif : c’est l’audio séparé par intervenant qui permet à une transcription d’indiquer qui a parlé, et sans HPB il n’y a pas d’audio par intervenant à récupérer.
  • Un compte sur ce service — c’est de là que vient la clé.
  • Un accès shell pour lancer occ, ou un administrateur qui l’a.

1. Installer l’application

Décompressez la version dans le répertoire apps/ de votre Nextcloud, puis activez-la :

tar -xzf voxonta-3.0.0.tar.gz -C /path/to/nextcloud/apps/
sudo -u www-data php occ app:enable voxonta

Une entrée Meetings apparaît dans la barre du haut. Elle reste vide jusqu’à la transcription du premier appel.

2. Lui donner une clé

Dans Paramètres d’administration → Voxonta, collez la clé de service de votre compte. L’application la vérifie aussitôt et vous prévient si le service ne répond pas.

La même clé est à renseigner dans le connecteur à l’étape 3. Une seule clé sert dans les deux sens : le connecteur demande à l’application quels appels sont en cours, et l’application demande au service ce qu’a produit un appel terminé.

3. Connecter le service de capture

Le connecteur tourne en dehors de Nextcloud, sur la même machine que votre High Performance Backend Talk. Il lui faut trois choses :

NEXTCLOUD_URLL’adresse de votre Nextcloud, par exemple https://cloud.example.com
APP_SERVICE_TOKENLa clé collée à l’étape 2
GATEWAY_TOKENVotre clé de service, depuis votre compte

L’hébergement par vos soins est décrit dans une section à part. Si c’est nous qui hébergeons le connecteur, cette étape est déjà faite.

4. Faire un appel de test

Lancez un appel dans n’importe quelle conversation, dites quelques phrases et raccrochez. Au bout d’une minute ou deux, la transcription doit apparaître dans Meetings. Le résumé et l’analyse arrivent plus tard — en général dans l’heure, parfois davantage pour une longue réunion.

Si rien n’apparaît, vérifiez dans cet ordre :

  1. Le journal du connecteur — affiche-t-il Call monitor started, et voit-il l’appel ?
  2. Paramètres d’administration → Voxonta — le service y est-il indiqué comme vu récemment ?
  3. Si quelqu’un a vraiment parlé. Un appel silencieux donne une transcription vide, et c’est une réponse correcte, pas une panne.

Commandes de chat

/no-recordArrêter la transcription de cet appel
/recordLa reprendre

Les commandes doivent être activées dans la conversation par un administrateur, ce qui n’a rien à voir avec le fait de rejoindre le salon. En pratique, elles fonctionnent dans les conversations de groupe et publiques où elles ont été activées, et pas dans les appels en tête-à-tête, où elles ne le sont normalement pas. Envoyée jusqu’à cinq minutes avant un appel, /no-record empêche la transcription de démarrer.

Où arrivent les fichiers

Les transcriptions et les analyses sont écrites par un compte de service dans ses propres dossiers, puis partagées avec les personnes présentes à l’appel. Dans une conversation de groupe, l’application publie aussi les liens dans le chat ; en tête-à-tête, elle ne le peut pas, et c’est le partage qui tient lieu de notification.

Fonctionnement

Trois parties. Un connecteur chez vous qui entend l’appel, un moteur chez nous qui transforme la parole en texte, et votre propre stockage, où le résultat finit par arriver.

Pendant l’appel

Le connecteur rejoint votre réunion comme le ferait le navigateur d’un autre participant, sauf qu’il ne parle pas et n’apparaît pas dans le salon. Pour Nextcloud Talk, il se connecte à votre High Performance Backend en tant que client interne et reçoit un flux audio par personne. C’est tout ce qui permet à une transcription de dire qui a dit quoi : les voix ne sont jamais mélangées sur une seule piste.

L’audio est envoyé en continu au moteur pendant l’appel. Personne n’appuie sur « enregistrer », et il ne reste aucun enregistrement après — voir Vos données.

À la fin de l’appel

  1. Le moteur termine la reconnaissance de ce qui reste en mémoire tampon et produit la transcription, découpée par intervenant, avec horodatage.
  2. La passerelle la stocke et la transmet à l’analyseur, qui rédige le résumé, les décisions, les questions en suspens et les tâches. Cela prend de quelques minutes à deux heures environ, selon la durée de la réunion.
  3. L’application sur votre Nextcloud demande à la passerelle ce qui est disponible, le récupère, écrit les fichiers dans votre stockage et les partage avec les personnes présentes à l’appel.

Ce qui franchit la frontière

De chez vous vers chez nousL’audio de l’appel pendant la réunion ; les noms des participants, pour que la transcription puisse attribuer les répliques ; le nom et l’identifiant de la conversation.
De chez nous vers chez vousLa transcription, le résumé et les fichiers d’analyse ; des statistiques de temps de parole par appel.
JamaisVos fichiers, vos échanges de chat en dehors de l’appel, votre liste d’utilisateurs, ni quoi que ce soit sur les conversations qui n’ont pas été transcrites.

Attribution des intervenants

L’audio de chaque participant arrive sur son propre flux, déjà étiqueté par la plateforme de réunion : l’attribution relève donc du constat, pas de la devinette. Quand une plateforme en fournit moins — une piste partagée, un invité sans nom —, la réplique est marquée comme venant d’un participant non identifié au lieu d’être attribuée à quelqu’un de plausible.

Les composants, un par un

ConnecteurTourne chez vous. Entend l’appel, envoie l’audio, demande à l’application quels appels sont en cours. Open source.
Application NextcloudTourne sur votre Nextcloud. Paramètres, liste des réunions, commandes de chat ; récupère les réunions terminées et range les fichiers. Open source.
MoteurChez nous. Parole vers texte, un tampon par intervenant.
PasserelleChez nous. Conserve les résultats jusqu’à ce que votre côté les récupère, cloisonne les clients, mesure l’utilisation.
AnalyseurChez nous. Résumé, décisions, tâches, portraits des intervenants.

Vos données

En bref : les résultats vous appartiennent et sont stockés chez vous. Nos copies sont des copies de travail, et elles expirent selon un délai que nous pouvons vous montrer.

Durées de conservation

Audio de l’appelNon conservé. Il est reconnu au fil de l’eau et n’est jamais écrit sous forme d’enregistrement.
Transcription, résumé, analyse — notre copie7 jours après la fin de l’appel, puis supprimée. C’est assez pour que votre côté les récupère, même s’il a été hors ligne quelques jours.
Copie de travail de l’analyseur30 jours, puis supprimée avec tout ce qu’elle a produit.
Profils d’intervenantsConservés tant qu’au moins une réunion de la personne est encore stockée. Quand la dernière expire, le profil disparaît avec elle.
Dans votre NextcloudAussi longtemps que vous le souhaitez. Ces fichiers vous appartiennent ; nous ne les supprimons pas, et nous ne le pourrions pas.

À propos de l’audio

La reconnaissance n’est pas instantanée : la parole est donc gardée en mémoire par petits morceaux pendant son traitement. Si la mémoire vient à manquer, un morceau peut passer brièvement sur disque, et il est supprimé dès qu’il a été reconnu — restes éventuels compris, au redémarrage. Ce qui n’arrive jamais, c’est qu’un enregistrement soit sauvegardé : il n’existe nulle part chez nous de fichier de votre réunion, et nous n’avons aucun moyen d’en produire un après coup.

Qui voit quoi

  • Entre clients — chaque réunion appartient à un seul espace de travail, et une requête portant la clé d’un espace de travail ne peut atteindre que les réunions de cet espace.
  • Dans votre Nextcloud — les fichiers sont partagés avec les personnes présentes à l’appel, et les droits propres à Nextcloud décident du reste. Nous ne savons pas qui sont vos utilisateurs ; seul votre Nextcloud le sait.
  • Portraits des intervenants — le fichier d’analyse d’une personne est partagé avec les participants de cette réunion, comme tout le reste.

Supprimer plus tôt

Une réunion peut être supprimée de notre côté avant la fin de ses sept jours — la copie dans votre Nextcloud n’est pas touchée, car ce qui s’y supprime vous regarde, pas nous. Écrivez à hello@voxonta.com en précisant l’espace de travail et ce que vous voulez effacer ; il n’existe pas encore de bouton en libre-service pour cela, et faire comme si ce serait pire que de le dire.

Ce que nous ne faisons pas

  • Entraîner des modèles sur vos réunions.
  • Lire vos transcriptions, sauf si vous nous demandez de regarder quelque chose de précis.
  • Vendre ou partager quoi que ce soit avec qui que ce soit. Il n’y a ni intégration publicitaire ni outil d’analytique dans le produit.

Où tout cela tourne

La reconnaissance vocale tourne sur nos propres serveurs, avec un modèle que nous hébergeons nous-mêmes. Votre audio ne part pas vers une API vocale tierce.

L’étape d’analyse utilise un modèle de langage, accessible via OpenRouter. C’est le texte de la réunion — jamais l’audio — qui est envoyé pour être résumé. Deux règles limitent qui peut le voir :

  • Seuls sont admis les fournisseurs dont la politique est de ne pas conserver les données des requêtes ni s’en servir pour l’entraînement ; les autres sont exclus au niveau de la requête, et non en se fiant à un réglage quelque part.
  • Les fournisseurs que nous avons explicitement écartés — pour la qualité ou la disponibilité — ne reçoivent rien non plus.

Le choix du fournisseur parmi ceux qui restent se fait à chaque requête : nous ne pouvons donc pas vous promettre un nom à l’avance. Ce que nous pouvons promettre, c’est la règle qu’ils respectent tous. Si votre équipe sécurité a besoin de la liste actuelle plutôt que de la règle, demandez-la et nous vous l’enverrons — elle évolue au gré des fournisseurs qui arrivent et partent.

Héberger le connecteur vous-même

Le composant qui entend vos appels est celui qu’il vaut le plus la peine de garder sur votre propre matériel. Il est open source, il tourne à côté de votre High Performance Backend Talk et n’établit que des connexions sortantes.

De quoi il s’agit

Un petit service Python. Il demande à l’application Nextcloud quels appels sont en cours, les rejoint via votre High Performance Backend en tant que client interne, et envoie l’audio de chaque participant au moteur. Il ne rejoint pas l’appel comme participant visible, ne parle pas et n’apparaît pas dans le salon.

Ce qu’il lui faut

OùSur la même machine que votre High Performance Backend Talk. L’audio prend ainsi le chemin le plus court, et aucun port supplémentaire n’est à ouvrir nulle part.
DockerIl est livré sous forme d’image ; rien n’est installé dans le Python de l’hôte.
Accès sortantVers votre Nextcloud, et vers notre passerelle sur le port 443. Rien en entrée : aucun port à rediriger, aucune règle à ajouter.
RessourcesModestes — il transporte l’audio, il ne le reconnaît pas. La reconnaissance se fait chez nous.

Paramètres

NEXTCLOUD_URLVotre Nextcloud, par exemple https://cloud.example.com
APP_SERVICE_TOKENLa clé figurant dans les paramètres d’administration de l’application
GATEWAY_TARGETgw.voxonta.com:443
GATEWAY_TOKENLa clé de votre espace de travail, depuis votre compte
NC_APP_IDFacultatif. L’identifiant de l’application, voxonta par défaut — utile seulement si vous l’avez renommée

Tout le reste — quelles conversations transcrire, comment le connecteur se connecte à Nextcloud, combien de temps garder les résultats — vient des paramètres d’administration de l’application : tout se configure à un seul endroit, pas à deux.

Vérifier que tout marche

Au démarrage, il doit indiquer, dans cet ordre, qu’il a chargé les paramètres depuis votre Nextcloud, qu’il envoie le flux à la passerelle et que la surveillance des appels a démarré. S’il répète au contraire could not read live calls, c’est que l’application ne répond pas — mauvaise URL, mauvaise clé, ou application non activée.

Ce qui reste chez nous

La reconnaissance vocale, la passerelle qui conserve les résultats et l’analyseur ne sont pas open source et tournent sur notre infrastructure. Nous n’allons pas prétendre le contraire : ce que vous pouvez héberger vous-même aujourd’hui, c’est la chaîne de capture et le côté Nextcloud, c’est-à-dire la partie qui touche à vos appels et à vos utilisateurs. La reconnaissance demande du matériel et un modèle que nous maintenons ; l’exploiter vous-même relève d’une discussion avec nous, pas d’un téléchargement.

Pas encore ici

Les sources autres que Nextcloud Talk, et l’API permettant de lire les réunions depuis vos propres outils. Les deux existent sous une forme ou une autre ; aucune n’est assez bien documentée pour être publiée, et une page qui décrit quelque chose de presque exact est pire que pas de page du tout.

Quelque chose manque ou est inexact ? hello@voxonta.com

Nous vous montrons comment ça marche

Écrivez-nous, nous organiserons une démo.