speech-opencode
v1.2.0
Published
Voice input plugin for OpenCode using OpenAI Whisper
Maintainers
Readme
speech-opencode
Voice input plugin for OpenCode using OpenAI Whisper.
Record audio from your microphone and transcribe it to text using OpenAI's Whisper API. Recording automatically stops when you stop talking - no need to specify a duration!
Installation
Add the plugin to your opencode.json:
{
"plugin": ["speech-opencode"]
}Requirements
API Key
Set your OpenAI API key as an environment variable:
export OPENAI_API_KEY=your-api-keyAudio Recording Tools
sox is required for audio recording with silence detection:
# macOS
brew install sox
# Ubuntu/Debian
sudo apt install sox
# Fedora
sudo dnf install sox
# Arch
sudo pacman -S soxUsage
Once installed, OpenCode will have access to a voice tool. Just ask OpenCode:
- "Listen to my voice"
- "Record what I say"
- "Use voice input"
- "voice"
Recording automatically stops after 7 seconds of silence, so just speak naturally and pause when you're done.
Configuration
For advanced configuration, create a local plugin file:
.opencode/plugin/voice.ts:
import { VoicePlugin } from "speech-opencode"
export default VoicePlugin({
// Optional: specify language (auto-detects if not set)
language: "en",
// Optional: seconds of silence before stopping (default 7)
silenceDuration: 7,
// Optional: maximum recording time as safety timeout (default 300 = 5 min)
maxDuration: 300,
// Optional: override API key (defaults to OPENAI_API_KEY env var)
apiKey: process.env.MY_OPENAI_KEY,
})Supported Languages
Whisper supports many languages including:
- English (
en) - Spanish (
es) - French (
fr) - German (
de) - Japanese (
ja) - Chinese (
zh) - And many more...
Leave language unset for automatic detection.
How It Works
- Starts recording from your microphone when you begin speaking
- Automatically stops after detecting 7 seconds of silence
- Sends the audio to OpenAI's Whisper API for transcription
- Returns the transcribed text to OpenCode
Troubleshooting
No audio detected
- Check that your microphone is not muted
- Verify the correct input device is selected in your system settings
- On Linux, use
pavucontrolto check input sources
Recording doesn't stop
- Make sure you pause speaking for at least 7 seconds
- Check that background noise isn't being detected as speech
Recording fails
- Ensure sox is installed:
which rec - Check that your microphone permissions are granted
License
MIT
