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).
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.
You can add it to your MCP configuration in seconds:
{
"mcpServers": {
"transcreva": {
"command": "npx",
"args": ["-y", "transcreva-mcp"]
}
}
}