# Comment transcrire un enregistrement Zoom, Meet ou Teams en identifiant les locuteurs

> Exportez votre enregistrement en MP4 ou M4A, puis envoyez son URL à POST /transcribe avec include_diarization à true. Vous récupérez chaque intervention avec une étiquette speaker ainsi que ses horodatages de début et de fin. Il suffit ensuite de passer cette transcription étiquetée à votre LLM pour générer le compte rendu et la liste des actions. L’API traite uniquement les fichiers enregistrés que vous lui transmettez ; elle ne se connecte pas aux réunions en direct.

Dernière mise à jour: 2026-10-18 · HTML: https://console.kolwrite.com/fr/guides/meeting-transcription-api

## Transcrire l’enregistrement en distinguant les locuteurs

Téléversez votre fichier via `POST /upload` (jusqu’à 100 MiB ; au-delà, extrayez d’abord la piste audio avec ffmpeg) ou passez directement une URL publique, puis lancez la transcription. Le paramètre `num_speakers` est facultatif, mais renseignez-le si vous connaissez le nombre exact d’intervenants.

```bash
curl https://app.kolwrite.com/transcribe \
  -H "x-api-key: $KOLWRITE_API_KEY" -H "Content-Type: application/json" \
  -d '{"audio_url": "https://example.com/weekly-sync.mp4", "model": "oracle", "language": "auto",
       "include_diarization": true, "num_speakers": 4, "output_format": "json"}'
```

Vous pouvez interroger `GET /transcribe/{jobId}`, ou renseigner `webhook_url` pour que votre serveur soit appelé dès que le traitement d’une longue réunion est terminé.

Chaque segment indique le locuteur, les horodatages et le détail des mots :

```json
{
  "jobId": "34c63d45-4cb5-473b-bc60-25c175e69c57",
  "status": "COMPLETED",
  "result": {
    "language": "en",
    "segments": [
      {
        "start": 1.0,
        "end": 3.75,
        "text": "Hello everyone and welcome to the show.",
        "speaker": "Speaker 1",
        "words": [
          { "start": 1.0, "end": 1.35, "word": "Hello" },
          { "start": 1.4, "end": 1.75, "word": "everyone" }
        ]
      }
    ]
  }
}
```

## Associer un nom à chaque locuteur

Les locuteurs reçoivent des étiquettes génériques comme `Speaker 1` ou `Speaker 2`. C’est à vous d’associer chaque étiquette à la bonne personne, en vous aidant par exemple de la liste des participants ou de l’ordre dans lequel ils se présentent. Le plus clair est de définir une petite table de correspondance directement dans votre code :

minutes.py

```python
# minutes.py — turn the diarized result into text an LLM can summarize
NAMES = {"Speaker 1": "Dana", "Speaker 2": "Omar", "Speaker 3": "Lee"}  # you decide who is who


def clock(seconds):
    m, s = divmod(int(seconds), 60)
    h, m = divmod(m, 60)
    return f"{h}:{m:02}:{s:02}" if h else f"{m}:{s:02}"


def meeting_text(result):
    lines = []
    for segment in result["segments"]:
        who = NAMES.get(segment.get("speaker"), segment.get("speaker", "Unknown"))
        lines.append(f'[{clock(segment["start"])}] {who}: {segment["text"]}')
    return "\n".join(lines)


PROMPT = """Below is a meeting transcript with timestamps. Write: (1) a five-line summary,
(2) decisions, (3) action items as "owner - task - [timestamp]". Use only what is in the transcript.

"""
# Send PROMPT + meeting_text(result) to the model you use.
```

## Générer le compte rendu et les actions à suivre

KolWrite produit la transcription horodatée et étiquetée par locuteur ; les résumés et les actions viennent du LLM que vous utilisez déjà. Gardez les horodatages dans le texte pour que chaque action renvoie au moment où elle a été dite, et demandez au modèle de n’utiliser que le contenu de la transcription.

## Appels enregistrés avec un interlocuteur par canal

Si vos appels téléphoniques sont enregistrés en stéréo (par exemple le conseiller à gauche et le client à droite), vous n’avez pas besoin de la diarisation : séparez directement les voix par canal. Cette option prend en charge de 2 à 8 canaux et ne peut pas être activée en même temps que `include_diarization`.

```json
{
  "audio_url": "https://example.com/support-call.wav",
  "model": "oracle",
  "channel_speaker_separation": "standard",
  "channel_labels": { "0": "Agent", "1": "Customer" },
  "output_format": "json"
}
```

Passez sur `overlap` plutôt que `standard` lorsque les participants se coupent la parole. Le tarif du modèle s’applique alors soit à la durée de l’enregistrement, soit au cumul de parole détectée sur l’ensemble des canaux, selon le chiffre le plus élevé.

## Combien ça coûte

| Tâche | Modèle | Coût |
| --- | --- | --- |
| Réunion d’une heure avec identification des locuteurs | `oracle` | 1,44 US$ |
| La même réunion avec la diarisation Pro (audio difficile) | `oracle` + `pro_diarization` | 1,68 US$ |
| 30 minutes, audio difficile, avec diarisation Pro | `oracle_max` + `pro_diarization` | 1,92 US$ |

La diarisation standard et la séparation des canaux en mode standard sont incluses sans surcoût. Détail des tarifs : [/llms/pricing.md](https://console.kolwrite.com/llms/pricing.md).

## Points de vigilance

- Une réunion contient des données personnelles : prévenez les participants qu’ils sont enregistrés et que l’échange sera transcrit, et sécurisez les textes produits aussi soigneusement que les fichiers audio.
- Il est plus compliqué de distinguer les intervenants quand les voix se chevauchent, que des timbres se ressemblent ou que les micros sont mauvais. Sur un enregistrement difficile, tentez l’option `pro_diarization` ou la séparation de canaux.
- Lorsque toute la réunion se déroule dans la même langue, renseignez explicitement le paramètre `language` (la détection automatique retient une seule langue pour l’ensemble du fichier).
- Avant d’agir sur la base du compte rendu, prenez le temps de relire vous-même les noms, les chiffres et les décisions.

## Questions et réponses

### Comment transcrire un enregistrement Zoom avec le nom des participants ?

Récupérez l’enregistrement et envoyez-le à `POST /transcribe` avec `include_diarization: true`. Dans votre code, faites correspondre `Speaker 1`, `Speaker 2`, etc. aux vrais noms. L’API sépare les voix ; c’est vous qui gérez l’attribution des noms.

### Peut-elle rejoindre un appel Google Meet ou Teams ?

Non. KolWrite traite uniquement les fichiers enregistrés que vous lui envoyez. Il ne fait pas de transcription en direct et ne se connecte pas aux réunions.

### Génère-t-elle aussi le compte rendu et les actions à suivre ?

Non, elle fournit uniquement la transcription horodatée avec l’étiquette de chaque locuteur. À vous de passer ce texte à votre propre LLM pour en tirer un compte rendu et des actions.

### Comment traiter un appel téléphonique à deux interlocuteurs ?

Si chaque voix est sur une piste séparée, utilisez `channel_speaker_separation` avec `channel_labels` plutôt que la diarisation.

### Quelles langues sont prises en charge pour les réunions ?

Les 100 langues figurant dans la [liste des langues](https://console.kolwrite.com/fr/languages/), y compris l’hébreu et l’arabe. Si toute la réunion se tient dans une seule langue, précisez-la dans le paramètre `language`.

## Pages associées

- [API d’horodatage mot à mot](https://console.kolwrite.com/fr/guides/word-timestamps-api)
- [Outil de transcription pour agents IA](https://console.kolwrite.com/fr/guides/transcription-tool-for-ai-agents)
- [Centres d’appels et équipes commerciales](https://console.kolwrite.com/fr/use-cases/call-centers)
- [Entreprises](https://console.kolwrite.com/fr/use-cases/enterprise)
- [Documentation de l’API](https://console.kolwrite.com/fr/public_api_docs)

---
Obtenir une clé API: https://console.kolwrite.com/auth?lang=fr · Documentation de l’API: https://console.kolwrite.com/fr/public_api_docs · llms.txt: https://console.kolwrite.com/llms.txt
