NS Google Transcribe
Cloud transcription for the words local Whisper mangles
- video
- transcript
NS Google Transcribe is the cloud speech-to-text node in symbiotica-ai/comfyui-nodes, and its reason to exist is one sentence from the source: it handles casual speech, code-switching, and loanwords better than local Whisper. If you're captioning a reel where someone speaks English with Greek mixed in, or a product name that Whisper keeps mangling, Google's STT API tends to do better - which is why the pack ships both.
It takes a VIDEO, extracts the audio, and returns a TRANSCRIPT - the exact format the pack's caption nodes (NS Video Captions) consume. So the intended flow is: transcribe with this node, wire the transcript into the caption overlay, and skip the overlay's built-in Whisper entirely.
How it works
ffmpeg extracts the audio as 16kHz mono FLAC, uploads it to Google's Speech-to-Text API, and the response is parsed into word-level timestamps plus a full transcript. Because it's per-word, the captions downstream get proper timing - which is what makes word-by-word caption animation look right instead of drifting.
The inputs that matter
- video (required) - what to transcribe.
- language (required) - default
en-US, 27 options. Set it to the primary spoken language. This is the input most people get wrong: leave it as en-US on a Greek-language video and the transcript will be aggressively wrong in a way that looks like a model failure rather than a config one. - model (optional) -
latest_long(default, for video/podcasts) vslatest_short(quick commands). Long-form speech wants the long model; that's the default and it's right for video. - alt_language (optional) - a secondary language for mixed speech, e.g.
en-USwhen Greek has English words in it. This is the code-switching input - use it when your content is bilingual. - api_key (optional) - paste a Google Cloud API key here, or set it once in the pack's Settings UI (search "Symbiotica") / config.ini /
GOOGLE_STT_API_KEYenv var. The node checks the widget first, then config, then the env var.
Install
Part of symbiotica-ai/comfyui-nodes - ComfyUI Manager search "Symbiotica", or clone + pip install -r requirements.txt. Needs ffmpeg on PATH for the audio extraction. And it's a paid cloud API: you need a Google Cloud project with Speech-to-Text enabled and billing. No key, no transcription - it raises a clear error naming the three places a key can live.
Gotchas
Cost per minute of audio, so a long VOD is not free - keep this for the content that actually needs cloud accuracy, and use the pack's NS Whisper Transcribe (local, one-time model download) for the bulk. The language input is the failure you'll hit first; when a transcript comes back as confident garbage, it's almost always the language setting. And note the output is word-timestamped TRANSCRIPT, not plain text - if you wanted a bare string you'd join the words yourself; the structured format is what the caption renderer wants.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| video | VIDEO | — | |
| language | COMBO | en-US | 27 options: el-GR, en-US, en-GB, es-ES, fr-FR, de-DE, +21 |
| api_keyopt | STRING | Google Cloud API key (or set in config.ini / GOOGLE_STT_API_KEY env var) | |
| modelopt | COMBO | latest_long | latest_long for video/podcast, latest_short for quick commands |
| alt_languageopt | COMBO | none | Secondary language for mixed speech (e.g., en-US when Greek has English words) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| transcript | TRANSCRIPT | — |