# Building a Portuguese (PT-BR) Audio & Video Transcription Pipeline with Whisper Large-v3, Pyannote Speaker Diarization, and MCP

> Source: <https://dev.to/arkyu2077/building-a-portuguese-pt-br-audio-video-transcription-pipeline-with-whisper-large-v3-pyannote-5e50>
> Published: 2026-11-04 03:09:17+00:00

Transcribing multi-speaker audio and video in Brazilian Portuguese (PT-BR) comes with unique acoustic challenges: regional accents, colloquial expressions, overlapping speech in interviews, and low-bitrate voice notes (such as `.opus` / `.ogg` files from WhatsApp).

In this guide, we walk through how we architected **[Transcreva](https://transcreva.net/)** — a fast, browser-accessible AI transcription and subtitle generation platform with automatic speaker diarization — and how we exposed its workflow to AI coding agents using the **Model Context Protocol (MCP)**.

When you run standard speech-to-text on a 45-minute podcast or academic interview, a wall of unsegmented text is hard to read. To produce dialogue-ready transcripts with `Speaker 1`, `Speaker 2` labels and word-level timestamps, we combine two stages:

```
interface TranscriptSegment {
  id: string;
  speaker: string; // e.g., "Speaker 1"
  startTime: number; // seconds
  endTime: number;
  text: string;
}

export function formatSrtTimestamp(seconds: number): string {
  const hrs = Math.floor(seconds / 3600);
  const mins = Math.floor((seconds % 3600) / 60);
  const secs = Math.floor(seconds % 60);
  const ms = Math.round((seconds % 1) * 1000);
  return `${String(hrs).padStart(2, "0")}:${String(mins).padStart(2, "0")}:${String(secs).padStart(2, "0")},${String(ms).padStart(3, "0")}`;
}
```

`.opus` / `.ogg`) and Video Subtitles (`.srt` / `.vtt`)
Two of the most common real-world workflows for Brazilian journalists, researchers, and creators are:

`transcreva-mcp`)
To bring transcription utilities directly into AI coding assistants (Cursor, Claude Desktop, Windsurf), we also built an open-source Model Context Protocol server: **[transcreva-mcp](https://github.com/arkyu2077/transcreva-mcp)**.

You can add it to your MCP configuration in seconds:

```
{
  "mcpServers": {
    "transcreva": {
      "command": "npx",
      "args": ["-y", "transcreva-mcp"]
    }
  }
}
```


