A desktop application for evaluating and comparing multiple Speech-to-Text (STT) APIs in real-time. Built with Next.js and Electron.
npm install
Copy the example environment file and add your API keys:
cp .env.example .env.local
Edit .env.local and add your API keys:
# OpenAI API Key (for Whisper API, GPT-4o Transcribe, Whisper Large V3 Turbo)
# Get your key at: https://platform.openai.com/api-keys
OPENAI_API_KEY=sk-...
# Google API Key (for Gemini Live API)
# Get your key at: https://aistudio.google.com/apikey
GOOGLE_API_KEY=AIza...
# RunPod API Configuration (for cloud GPU-accelerated Whisper)
# Get your API key at: https://www.runpod.io/console/user/settings
# Deploy Faster-Whisper template: https://console.runpod.io/hub/runpod-workers/worker-faster_whisper
RUNPOD_API_KEY=your-runpod-api-key
RUNPOD_ENDPOINT_ID=your-endpoint-id
# Optional: Local Faster Whisper server URL (default: http://localhost:8000)
FASTER_WHISPER_URL=http://localhost:8000
As Electron Desktop App (Recommended):
npm run electron:dev
As Web App:
npm run dev
Then open http://localhost:3000 in your browser.
To use the Faster Whisper Large V3 local provider:
cd python-server
pip install -r requirements.txt
python server.py
The server will run on http://localhost:8000. See python-server/README.md for details.
To use the RunPod Whisper provider with cloud GPU acceleration:
.env.local: Update the RUNPOD_API_KEY and RUNPOD_ENDPOINT_ID variablesModel Options:
Pricing Options:
When prompted, allow the application to access your microphone.
The app will show which providers are configured. Visit /api/health to check the status of all providers programmatically.
The app uses the following audio settings for consistent evaluation:
| Setting | Value |
|---|---|
| Format | WebM/Opus |
| Sample Rate | 16kHz |
| Channels | Mono |
| Chunk Interval | 2 seconds |
| Echo Cancellation | Enabled |
| Noise Suppression | Enabled |
All providers support the following input formats:
Maximum file size: 25MB per chunk (well within limits with 2-second chunks)
npm run electron:build
This will create distributable packages in the dist-electron directory:
.exe installer (NSIS).dmg disk image.AppImageMake sure you have:
.env.local file in the project rootIf you see rate limit errors, wait a few minutes before trying again. Consider:
stt-test/
├── electron/ # Electron main process
│ └── main.js
├── python-server/ # Local Faster Whisper server
│ ├── server.py
│ ├── requirements.txt
│ └── README.md
├── src/
│ ├── app/
│ │ ├── api/stt/ # STT API routes
│ │ │ ├── openai-realtime/
│ │ │ ├── gemini-live/
│ │ │ ├── gpt-4o-transcribe-diarize/
│ │ │ ├── faster-whisper-large-v3/
│ │ │ ├── whisper-large-v3-turbo/
│ │ │ ├── runpod-whisper/
│ │ │ ├── runpod-whisper-large-v3/
│ │ │ └── runpod-whisper-distil-large-v3/
│ │ └── page.tsx # Main UI
│ ├── components/ # React components
│ └── lib/ # Utilities and hooks
├── docs/
│ ├── TASK_SPEC.md # Original requirements (Japanese)
│ └── OPENAI_API_COMPARISON.md # OpenAI API comparison
└── .env.example # Environment template
MIT
64 commits
3 commits
TypeScript
76.0%
Python
19.9%
JavaScript
2.7%
Dockerfile
1.2%
A desktop application for evaluating and comparing multiple Speech-to-Text (STT) APIs in real-time. Built with Next.js and Electron.
npm install
Copy the example environment file and add your API keys:
cp .env.example .env.local
Edit .env.local and add your API keys:
# OpenAI API Key (for Whisper API, GPT-4o Transcribe, Whisper Large V3 Turbo)
# Get your key at: https://platform.openai.com/api-keys
OPENAI_API_KEY=sk-...
# Google API Key (for Gemini Live API)
# Get your key at: https://aistudio.google.com/apikey
GOOGLE_API_KEY=AIza...
# RunPod API Configuration (for cloud GPU-accelerated Whisper)
# Get your API key at: https://www.runpod.io/console/user/settings
# Deploy Faster-Whisper template: https://console.runpod.io/hub/runpod-workers/worker-faster_whisper
RUNPOD_API_KEY=your-runpod-api-key
RUNPOD_ENDPOINT_ID=your-endpoint-id
# Optional: Local Faster Whisper server URL (default: http://localhost:8000)
FASTER_WHISPER_URL=http://localhost:8000
As Electron Desktop App (Recommended):
npm run electron:dev
As Web App:
npm run dev
Then open http://localhost:3000 in your browser.
To use the Faster Whisper Large V3 local provider:
cd python-server
pip install -r requirements.txt
python server.py
The server will run on http://localhost:8000. See python-server/README.md for details.
To use the RunPod Whisper provider with cloud GPU acceleration:
.env.local: Update the RUNPOD_API_KEY and RUNPOD_ENDPOINT_ID variablesModel Options:
Pricing Options:
When prompted, allow the application to access your microphone.
The app will show which providers are configured. Visit /api/health to check the status of all providers programmatically.
The app uses the following audio settings for consistent evaluation:
| Setting | Value |
|---|---|
| Format | WebM/Opus |
| Sample Rate | 16kHz |
| Channels | Mono |
| Chunk Interval | 2 seconds |
| Echo Cancellation | Enabled |
| Noise Suppression | Enabled |
All providers support the following input formats:
Maximum file size: 25MB per chunk (well within limits with 2-second chunks)
npm run electron:build
This will create distributable packages in the dist-electron directory:
.exe installer (NSIS).dmg disk image.AppImageMake sure you have:
.env.local file in the project rootIf you see rate limit errors, wait a few minutes before trying again. Consider:
stt-test/
├── electron/ # Electron main process
│ └── main.js
├── python-server/ # Local Faster Whisper server
│ ├── server.py
│ ├── requirements.txt
│ └── README.md
├── src/
│ ├── app/
│ │ ├── api/stt/ # STT API routes
│ │ │ ├── openai-realtime/
│ │ │ ├── gemini-live/
│ │ │ ├── gpt-4o-transcribe-diarize/
│ │ │ ├── faster-whisper-large-v3/
│ │ │ ├── whisper-large-v3-turbo/
│ │ │ ├── runpod-whisper/
│ │ │ ├── runpod-whisper-large-v3/
│ │ │ └── runpod-whisper-distil-large-v3/
│ │ └── page.tsx # Main UI
│ ├── components/ # React components
│ └── lib/ # Utilities and hooks
├── docs/
│ ├── TASK_SPEC.md # Original requirements (Japanese)
│ └── OPENAI_API_COMPARISON.md # OpenAI API comparison
└── .env.example # Environment template
MIT
64 commits
3 commits
TypeScript
76.0%
Python
19.9%
JavaScript
2.7%
Dockerfile
1.2%