Voice TranscriberA VS Code extension that records your voice and transcribes it using OpenAI Whisper, OpenRouter, or a local Whisper-compatible API. Can optionally clean up the text with an LLM. Features
ffmpeg Installation (required for native recording and long files)The extension uses ffmpeg for native recording, splitting long files, and extracting audio from video uploads. Without ffmpeg, recording falls back to the browser (works, but lower quality and no long-file support). macOS:
Linux:
Windows:
Usage
ConfigurationOpenAIGet an API key from platform.openai.com/api-keys, select "OpenAI" as provider, paste your key, and save. OpenRouterGet an API key from openrouter.ai/keys, select "OpenRouter" as provider, paste your key, and save. One key covers both transcription and LLM cleanup, and you can pick the speech-to-text model under Advanced Settings (Whisper 1, Whisper Large v3 Turbo, GPT-4o Transcribe, Deepgram Nova-3, Voxtral Mini). Local serverAny Whisper-compatible API works:
Just enter the URL, e.g. LLM text cleanupWith OpenAI or OpenRouter you can enable "Clean up text with LLM" to remove filler words, fix punctuation, and add paragraph breaks. Not available for local servers, which have no chat endpoint. OpenAI models: gpt-4.1-nano (default, cheapest), gpt-4.1-mini, gpt-4.1. OpenRouter models: gpt-4.1-nano (default), gpt-4.1-mini, gemini-2.5-flash-lite, claude-haiku-4.5, llama-3.3-70b. Timestamps and subtitlesAfter a transcription finishes, a SRT button appears next to the copy button in the Transcription header. It offers three formats:
The plain copy button is unchanged and still copies just the text, and transcriptions still auto-copy as plain text. Timings are stitched across chunks, so an hour-long recording gives one continuous timeline. Not every model can produce them — the model picker marks those that cannot:
With LLM cleanup enabled the timestamps come from the raw transcript, because cleanup rewrites and merges sentences and the alignment no longer holds. LanguagesAuto-detect or pick manually: English, Russian, Ukrainian, Spanish, French, German, Italian, Portuguese, Polish, Japanese, Korean, Chinese, and more. TroubleshootingMicrophone access deniedmacOS: System Settings → Privacy & Security → Microphone → enable VS Code → restart VS Code Windows: Settings → Privacy → Microphone → allow app access Linux: Check PulseAudio/PipeWire settings with How to check logsCommand Palette ( Transcription fails
Large files and video uploadsRecordings over 24 MB are transcoded to 128 kbps MP3 and split into chunks (10 minutes for OpenAI and local, 5 minutes for OpenRouter, whose routing overhead makes long chunks much slower), each transcribed separately and concatenated. Video uploads (MP4, MKV, MOV, AVI, WebM) have their audio track extracted automatically. Both features require ffmpeg. Privacy
For DevelopersSetup
Press F5 to launch the Extension Development Host. Commands
Verifying a provider end-to-endHits the live API with real audio through the compiled services:
Swap in Publishing to VS Code MarketplacePrerequisites
Get a Personal Access Token (PAT)
Update package.json
Icon must be a 128×128 PNG. Publish
Update version
Other useful commands
LicenseMIT |