SupaVoice Gemini/OpenRouter Transcriber
Gemini transcription through OpenRouter, at a price
- audio
- transcript
- txt_path
- json_path
Here's the honest truth about the SupaVoice pack: for Burmese, the author expects the cloud path to beat everything local. The SupaVoice Gemini/OpenRouter Transcriber sends your audio to a Gemini model through OpenRouter and gets back a transcript. It's the only node in the pack that calls an API, needs a key, and costs you money per clip. Use it as the accuracy pass for difficult Burmese audio - not as your daily transcription driver, because the Local Whisper node does that for free.
How it works
The node writes your AUDIO to a temp WAV, base64-encodes it, and POSTs it to OpenRouter's chat/completions endpoint with an input_audio content part. The prompt is tailored for this job: transcribe for TTS/voice-clone labeling, return accurate Burmese script if it's Myanmar audio, and only the transcript - no markdown, no translation. Temperature is pinned to 0.0 for deterministic output, and there's a 180-second timeout, so a short clip is fast but a long one can time out.
Inputs: audio, openrouter_model (google/gemini-2.5-pro default, the cheaper google/gemini-2.5-flash, or google/gemini-3.1-pro-preview), output_prefix, and env_path. Outputs: transcript, txt_path, json_path - same contract as the other transcribers, so you can swap it in without rewiring anything.
The key, and the Windows-shaped gotcha
The node reads your API key from a .env file, accepting OPENROUTER_API_KEY, OPEN_ROUTER, or OPENROUTER. Create one anywhere and point env_path at it:
echo "OPENROUTER_API_KEY=sk-or-..." > /path/to/your/.env
Set env_path to that file and it'll work on any OS. Worth knowing: the code also unconditionally tries to load the author's hardcoded E:\git\SupaVoice\.env as a fallback - harmless if that path doesn't exist, just don't be confused by it.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/mexxmillion/ComfyUI-SupaVoice-Transcriber
Restart ComfyUI. No model downloads - the model lives in Google's cloud. The install is the easiest in the pack; the cost is the cost. Also remember OpenRouter can throttle or rate-limit burst transcription of a long dataset, so batch with care. And honestly, for Burmese the README's own stance is: try the chuuhtetnaing fine-tunes locally first, and only reach for Gemini when those stumble - it'll save you money on the clips that were fine anyway.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | — | |
| openrouter_model | COMBO | google/gemini-2.5-pro | 3 options: google/gemini-2.5-pro, google/gemini-2.5-flash, google/gemini-3.1-pro-preview |
| output_prefix | STRING | supavoice_label | — |
| env_path | STRING | E:\git\SupaVoice\.env | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| transcript | STRING | — |
| txt_path | STRING | — |
| json_path | STRING | — |