transcription-hess

Node n8n pour le moteur de transcription audio Whisper HESS

Package Information

Released: 4 mo ago
Downloads: 11 weekly / 150 monthly
Latest Version: 0.1.0
Author: Alexandre Schott

Documentation

n8n-nodes-transcription-hess

Node communautaire n8n pour le moteur de transcription Whisper HESS (paquet
api/ à la racine du projet Whisper). Envoie un fichier audio binaire à
l'API POST /transcrire et renvoie le texte + les segments horodatés.

  • Node : Transcription HESS — entrée : un item avec un champ binaire audio ;
    sortie : { texte, segments[], langue, duree_audio, duree_calcul, modele }.
  • Credential : Transcription HESS API — URL de base + clé API (header
    X-API-Key), avec bouton Test (appelle GET /sante).

Compiler

npm install
npm run build      # tsc -> dist/ + copie de l'icône

Le build produit dist/ (c'est le seul dossier publié, cf. files dans
package.json).

Installation privée sur Render (shell, sans rien publier) — méthode retenue

Le node reste 100 % privé (aucune publication npm). On dépose le paquet
compilé sur le disque persistant de n8n (monté sur /home/node/.n8n),
dans le dossier custom/ que n8n scanne au démarrage.

⚠️ Contrairement à l'install par l'UI, un node posé sur le disque n'est
chargé qu'au (re)démarrage de n8n. Il faut donc redémarrer le service
une fois
(Render : Manual Deploy → Restart, ou un redéploiement — le
disque et son contenu persistent dans les deux cas). Aucune perte de données.

1. Sur le PC — construire le paquet

npm install
npm run build
npm pack                 # produit n8n-nodes-transcription-hess-0.1.0.tgz (~6 ko)

2. Transférer le tarball dans le shell Render (copier-coller, privé)

Le tarball fait ~6 ko : on le passe en base64 par le presse-papier.

Sur le PC (PowerShell) — copie le base64 dans le presse-papier :

[Convert]::ToBase64String([IO.File]::ReadAllBytes("n8n-nodes-transcription-hess-0.1.0.tgz")) | Set-Clipboard

Dans le Shell du service n8n (dashboard Render → onglet Shell) :

mkdir -p /home/node/.n8n/custom && cd /home/node/.n8n/custom
[ -f package.json ] || npm init -y
cat > pkg.b64 <<'EOF'
<COLLER ICI le base64 du presse-papier, puis Entrée>
EOF
base64 -d pkg.b64 > pkg.tgz && rm pkg.b64
npm install ./pkg.tgz    # installe le node + sa dépendance form-data

(Le node atterrit dans /home/node/.n8n/custom/node_modules/ — sur le disque
persistant.)

3. Redémarrer n8n

Dashboard Render → service n8n → Manual Deploy → Restart (ou un
redéploiement). Au redémarrage, « Transcription HESS » apparaît dans la palette.

Pour mettre à jour le node plus tard : refaire npm run build + npm pack
sur le PC, re-transférer, npm install ./pkg.tgz (écrase), redémarrer.


Alternative : installer dans n8n (UI — node communautaire public)

Sur ton n8n self-hosted (Render) :

  1. Vérifier que les nodes communautaires sont activés (par défaut oui ;
    variable N8N_COMMUNITY_PACKAGES_ENABLED non mise à false).
  2. ⚠️ Render : monter un disque persistant sur le dossier de données
    n8n (/home/node/.n8n), sinon le node installé disparaît à chaque
    redéploiement. (Disque persistant = offre Render payante.)
  3. Dans n8n : Settings → Community Nodes → Install, saisir le nom du
    paquet npm une fois publié : n8n-nodes-transcription-hess.

Publier sur npm (préalable à l'install par l'UI)

npm login
npm publish --access public

Le nom n8n-nodes-transcription-hess et le mot-clé
n8n-community-node-package rendent le paquet reconnu comme node n8n.

Tester en local sans publier (lien)

Sur une instance n8n locale (npm global ou Docker avec volume) :

npm run build
npm link
cd ~/.n8n/custom        # créer ce dossier s'il n'existe pas
npm link n8n-nodes-transcription-hess

Puis relancer n8n : le node apparaît dans la palette.

Configurer dans le workflow

  1. Ajouter une credential Transcription HESS API :
    • URL de base : l'URL publique du tunnel cloudflared/ngrok (ex.
      https://xxxx.trycloudflare.com), ou http://127.0.0.1:8770 si n8n est
      sur le même réseau que le PC.
    • Clé API : la valeur cle_api de api/config.json.
    • Cliquer Test → doit être vert (/sante).
  2. Mettre le node Transcription HESS après un node qui fournit un binaire
    audio (Read/Download File, HTTP Request en mode fichier, Google Drive…).
    • Propriété binaire : nom du champ binaire (souvent data).
    • Langue, Inclure segments, Utiliser lexique, et Options (beam,
      modèle) selon le besoin.
  3. Le texte transcrit est dans {{ $json.texte }}.

Timeout : la transcription est synchrone (~×3,5 le temps réel sur CPU).
Pour de longs fichiers, augmente le timeout de la requête au besoin.

Structure

credentials/TranscriptionHessApi.credentials.ts   # URL + clé, auth header, test /sante
nodes/TranscriptionHess/TranscriptionHess.node.ts # logique du node (POST multipart)
nodes/TranscriptionHess/transcription.svg         # icône
test-appel.js                                     # test manuel local (non publié)

Discussion