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 — 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).
1. Acoustic Transcription + Speaker Diarization Architecture
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:
- ASR (Automatic Speech Recognition) with Whisper Large-v3: Generates high-accuracy Portuguese and multilingual text segments with word-level alignment.
- Speaker Diarization with Pyannote: Computes speaker embeddings across sliding windows, clusters speaker turns, and aligns each Whisper word timestamp with the active speaker cluster.
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")}`;
}
2. Handling WhatsApp Voice Notes (.opus / .ogg) and Video Subtitles (.srt / .vtt)
Two of the most common real-world workflows for Brazilian journalists, researchers, and creators are:
-
WhatsApp Audio Transcription: Voice notes exported from WhatsApp use the Opus codec inside an
.oggor.opuscontainer. Our dedicated WhatsApp Audio Transcription workflow normalizes sample rates on the fly and outputs clean paragraphs or speaker-labeled dialogue. -
Automatic Subtitle Generation: Video editors working on YouTube, Reels, or TikTok need frame-accurate captions. Using word-level timestamps from Whisper Large-v3, our Automatic Subtitle Generator segments lines by character-per-second (CPS) reading speed and exports ready-to-use
.srtand.vttfiles.
3. Integrating with Cursor & Claude Desktop via MCP (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.
You can add it to your MCP configuration in seconds:
{
"mcpServers": {
"transcreva": {
"command": "npx",
"args": ["-y", "transcreva-mcp"]
}
}
}
Try It Out
- Web App (Free Tier Available): https://transcreva.net/
- GitHub Repository (MCP Server): https://github.com/arkyu2077/transcreva-mcp
Top comments (0)