Résumer des transcriptions en local sur Mac avec Ollama
Résumer une transcription en local sur Mac avec Ollama : installation, choix du modèle, un prompt qui marche, découper les longs fichiers, et l'option en une touche.
Vous pouvez transformer une longue transcription en résumé, en liste d'actions ou en compte rendu de réunion sur votre propre Mac, sans API cloud et sans crédits, en exécutant un modèle de langage localement avec Ollama. Ce guide vous emmène d'un Terminal vide à un outil de résumé fonctionnel qui gère des transcriptions plus longues que la fenêtre de contexte du modèle, puis montre la version en une étape intégrée à une app de transcription.
La route à faire soi-même fonctionne bien. Elle vous coûte environ une demi-heure d'installation, un peu d'espace disque pour le modèle, et un peu de script pour les longs fichiers. Rien de ce que vous y saisissez ne quitte la machine.
Ce dont vous avez besoin
- Un Mac Apple Silicon. Les modèles s'exécutent sur le GPU via Metal, et 16 Go de mémoire sont un minimum confortable pour la classe de modèles de 7B à 8B qui fait du bon travail sur les résumés. 8 Go fonctionne avec des modèles plus petits, avec des résultats plus faibles.
- Une transcription sous forme de fichier texte brut. S'il ne vous reste que l'audio, transcrivez-le d'abord en texte sur le Mac.
- Homebrew, ou l'installeur depuis ollama.com.
Étape 1 : installer Ollama
Ollama est un environnement d'exécution open source qui télécharge des modèles, les exécute localement et expose une ligne de commande simple ainsi qu'une API HTTP locale. Installez-le avec Homebrew :
brew install ollama
Démarrez ensuite le serveur. Homebrew peut l'exécuter comme service en arrière-plan :
brew services start ollama
Ou lancez-le dans une fenêtre du Terminal que vous laissez ouverte :
ollama serve
Si vous avez utilisé l'installeur depuis ollama.com à la place, l'app de la barre de menus démarre le serveur pour vous.
Vérifiez qu'il répond :
ollama --version
Étape 2 : télécharger un modèle
Les modèles se récupèrent par leur nom depuis la bibliothèque Ollama. Pour le résumé sur un Mac de 16 Go, un modèle généraliste ajusté aux instructions dans la gamme 7B à 8B est le bon compromis. Deux choix raisonnables au moment de l'écriture :
ollama pull llama3.1
ollama pull qwen2.5
Le téléchargement représente plusieurs gigaoctets, une seule fois. Consultez la bibliothèque de modèles Ollama pour les noms et les tailles du moment, car ils changent. Sur un Mac de 8 Go, prenez plutôt un modèle 3B, par exemple llama3.2 ou qwen2.5:3b.
Essayez-le en mode interactif :
ollama run llama3.1
Tapez une question, obtenez une réponse, puis tapez /bye pour quitter.
Étape 3 : un prompt qui produit des résumés utiles
Les modèles résument mal quand on leur demande de « résumer ceci ». Ils s'en sortent bien quand on leur indique le public, la forme de la sortie et ce qu'il faut laisser de côté. Enregistrez ceci sous summary-prompt.txt :
You are summarizing a meeting transcript for someone who was not there.
Write in plain English. Do not invent anything that is not in the transcript.
If the transcript does not contain something, say so rather than guessing.
Produce:
1. A two-sentence overview of what the meeting was about.
2. Key decisions, as a bulleted list. Include who decided if it is clear.
3. Action items, as a bulleted list in the form "Owner: task (deadline if stated)".
4. Open questions that were raised but not resolved.
Transcript follows.
Lancez-le maintenant. Ollama accepte le prompt en argument et lit une entrée supplémentaire sur l'entrée standard, vous pouvez donc lui donner le fichier de prompt et la transcription ensemble :
cat summary-prompt.txt transcript.txt | ollama run llama3.1 > summary.md
Ouvrez summary.md. Pour une transcription allant jusqu'à une vingtaine de minutes de parole, cela fonctionne en général du premier coup. Pour tout ce qui est plus long, lisez la suite.
Changez la ligne sur le public et la liste numérotée, et le même prompt gère d'autres types d'enregistrements. Pour transformer un cours en fiches de révision, demandez des définitions, les résultats qui comptent et une série de questions à traiter de mémoire, plutôt que des décisions et des actions.
Étape 4 : le problème de la fenêtre de contexte
Chaque modèle a un nombre maximal de jetons qu'il peut examiner d'un coup, et Ollama exécute les modèles avec une fenêtre par défaut assez courte, sauf indication contraire. Quand la transcription est plus longue que cette fenêtre, le début est silencieusement abandonné et le résumé décrit discrètement seulement la fin de la réunion. Rien ne vous avertit.
Deux correctifs, à utiliser ensemble :
Augmenter la longueur de contexte
Définissez une fenêtre plus grande au lancement du modèle. Dans une session interactive :
/set parameter num_ctx 16384
Ou définissez-la pour chaque exécution via la variable d'environnement qu'Ollama respecte au moment de l'écriture :
OLLAMA_CONTEXT_LENGTH=16384 ollama serve
Des fenêtres plus grandes consomment plus de mémoire et ralentissent le premier jeton. Sur un Mac de 16 Go, 16k jetons avec un modèle 8B convient généralement. Consultez la fiche du modèle dans la bibliothèque pour le maximum qu'il prend en charge.
Une conversion approximative : une minute de parole conversationnelle représente environ 150 mots, et 150 mots représentent environ 200 jetons. Une réunion d'une heure fait donc environ 12 000 jetons avant le prompt. Un atelier de deux heures ne tiendra même pas dans une fenêtre généreuse, ce qui nous amène au découpage.
Découper les longues transcriptions
La méthode fiable est le map-reduce : découper la transcription en morceaux qui tiennent confortablement, résumer chaque morceau, puis résumer les résumés des morceaux. Enregistrez ceci sous summarize.sh :
#!/bin/bash
# Usage: ./summarize.sh transcript.txt
set -e
MODEL=llama3.1
IN="$1"
WORK=$(mktemp -d)
# 1. Split into chunks of about 6,000 words.
split -l 400 "$IN" "$WORK/chunk_"
# 2. Summarize every chunk.
for f in "$WORK"/chunk_*; do
{
echo "Summarize this part of a meeting transcript. Keep every decision,"
echo "action item, name, number and date. Use bullet points. Transcript:"
cat "$f"
} | ollama run "$MODEL" > "$f.summary"
done
# 3. Combine the partial summaries into the final one.
{
cat summary-prompt.txt
cat "$WORK"/chunk_*.summary
} | ollama run "$MODEL"
rm -rf "$WORK"
Rendez-le exécutable et lancez-le :
chmod +x summarize.sh
./summarize.sh transcript.txt > summary.md
Deux remarques sur le script. split -l 400 découpe par lignes, donc la taille des morceaux dépend de la façon dont votre transcription est mise en forme ; ajustez le nombre jusqu'à ce que chaque morceau soit nettement sous votre fenêtre de contexte. Et la passe finale reçoit des résumés partiels plutôt que la transcription, donc les détails qu'un résumé de morceau a laissés tomber sont perdus définitivement. C'est pour cela que l'étape 2 demande au modèle de conserver les noms, les chiffres et les dates.
Étape 5 : poser des questions au lieu de résumer
La même installation répond à des questions sur une transcription. Remplacez le prompt par la question :
{ echo "Answer using only the transcript below. Quote the relevant lines. Question: What did we agree about the launch date?"; cat transcript.txt; } | ollama run llama3.1
C'est souvent plus utile qu'un résumé quand vous savez déjà ce que vous cherchez. Les limites sont les mêmes : toute la transcription doit tenir dans la fenêtre, et le modèle n'a aucun moyen de vous indiquer où, dans l'audio, une ligne citée a été prononcée.
Utiliser l'API HTTP locale
Pour tout ce que vous voulez automatiser, Ollama écoute sur localhost:11434. Un appel minimal :
curl http://localhost:11434/api/generate -d '{
"model": "llama3.1",
"prompt": "Summarize: ...",
"stream": false,
"options": { "num_ctx": 16384 }
}'
La référence de l'API se trouve dans le dépôt GitHub d'Ollama. Raccourcis, Automator ou un petit script Python peuvent l'appeler pour résumer chaque nouveau fichier d'un dossier.
Ce que la route à faire soi-même vous coûte
Soyez réaliste sur l'entretien. Vous devez maintenir Ollama et le modèle à jour, vous souvenir du réglage de la longueur de contexte, garder votre script de découpage en phase avec les transcriptions que vous produisez, et recopier les résultats là où vivent vos notes. C'est un bon projet de week-end et une installation permanente très correcte pour quelqu'un qui aime le Terminal. C'est un mauvais choix pour quelqu'un qui veut simplement un compte rendu après chaque appel.
L'alternative en une étape
Si les enregistrements sont des cours plutôt que des réunions, transformer un enregistrement de cours en fiches de révision parcourt la même chaîne, de l'enregistrement au matériel de révision. Les résumés peuvent être envoyés directement vers Apple Notes, et les transcriptions s'exportent en TXT, Markdown, PDF ou DOCX. Cela demande macOS 26 ou une version plus récente sur un Mac Apple Silicon doté de 16 Go de mémoire, à peu près la même machine que celle qu'exige la route à faire soi-même.
Questions fréquentes
Puis-je résumer une transcription avec Ollama sans connexion internet ?
Oui. Une fois le modèle téléchargé, Ollama s'exécute entièrement sur le Mac. Vous pouvez couper le réseau, et le résumé est produit de la même façon. Le seul moment où une connexion est nécessaire est le téléchargement ou la mise à jour d'un modèle.
Quel modèle Ollama est le meilleur pour résumer des transcriptions de réunion ?
Au moment de l'écriture, les modèles généralistes ajustés aux instructions dans la gamme 7B à 8B, comme les versions actuelles de Llama ou de Qwen, offrent le meilleur équilibre entre qualité et vitesse sur un Mac de 16 Go. Les modèles plus grands sont plus précis mais lents et gourmands en mémoire ; les modèles 3B sont rapides mais ont tendance à manquer des détails dans les longues transcriptions. Essayez-en deux et comparez sur la même réunion.
Quelle longueur de transcription un LLM local peut-il résumer ?
Autant que vous voulez, si vous la découpez. En une seule passe, la limite est la fenêtre de contexte du modèle : à environ 200 jetons par minute de parole, une fenêtre de 16k contient à peu près une heure de conversation plus le prompt. Au-delà, découpez la transcription et résumez par étapes.
Un résumé produit par un LLM local vaut-il un résumé cloud ?
Pour les résumés de réunion et les listes d'actions, un bon modèle 8B en est assez proche pour que la plupart des gens ne voient pas la différence. Les modèles cloud gardent l'avantage sur les documents très longs, le raisonnement subtil et les langues rares. Pour le travail privé et routinier qui consiste à transformer un appel d'une heure en notes, le local est plus que suffisant et ne coûte rien à l'usage.