Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Transcribe audio and video files to text with speaker detection, timestamps, and format conversion.
Transcribe audio and video files to text with speaker detection, timestamps, and format conversion.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
On first use, read setup.md and start helping with transcription needs.
User has audio or video files that need transcription. Agent handles local files, URLs, voice memos, podcasts, interviews, meetings, and lectures.
Memory lives in ~/speech-to-text-transcription/. See memory-template.md for structure. ~/speech-to-text-transcription/ βββ memory.md # Provider preferences, defaults βββ transcripts/ # Saved transcriptions βββ temp/ # Processing workspace
TopicFileSetup processsetup.mdMemory templatememory-template.md
Before transcription, identify the input: Local file path β verify exists, check format URL β download to temp, then process Meeting recording β likely needs speaker diarization Voice memo β usually single speaker, shorter
ScenarioBest ProviderWhyQuick local transcriptionWhisper (local)No API key, free, privateHigh accuracy neededOpenAI Whisper APIBest qualitySpeaker identificationAssemblyAINative diarizationReal-time/streamingDeepgramLow latencyLong content (>2 hours)Split + batchAvoid timeouts
Files over 25MB or 2 hours: Split into chunks (use ffmpeg) Process each chunk Merge transcripts with proper timestamps Never attempt single upload for large files
After transcription: Ask if user wants the transcript saved Suggest filename based on content Offer to extract action items or summary
Default to plain text. Offer alternatives: .txt β clean text, no timestamps .srt / .vtt β subtitles with timing .json β structured with word-level timing .md β formatted with speaker labels
Assuming one provider works for all β Whisper fails on diarization, AssemblyAI needs API key Uploading huge files directly β Timeouts, memory errors. Split first. Ignoring audio quality β Noisy audio needs preprocessing (ffmpeg noise reduction) Not checking language β Whisper auto-detects but can fail on mixed-language content Losing speaker context β Multi-speaker content without diarization becomes unusable
Required: ffmpeg (for audio processing) Optional API keys (only if using cloud providers): OPENAI_API_KEY β for OpenAI Whisper API ASSEMBLYAI_API_KEY β for AssemblyAI (speaker diarization) DEEPGRAM_API_KEY β for Deepgram (real-time) Local Whisper works without any API keys.
# Install pip install openai-whisper # Basic transcription whisper audio.mp3 --model base --output_format txt # With timestamps whisper audio.mp3 --model medium --output_format srt Models: tiny (fast) β base β small β medium β large (accurate)
curl -X POST https://api.openai.com/v1/audio/transcriptions \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: multipart/form-data" \ -F file="@audio.mp3" \ -F model="whisper-1"
# Upload curl -X POST https://api.assemblyai.com/v2/upload \ -H "Authorization: $ASSEMBLYAI_API_KEY" \ --data-binary @audio.mp3 # Transcribe with speakers curl -X POST https://api.assemblyai.com/v2/transcript \ -H "Authorization: $ASSEMBLYAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{"audio_url": "URL", "speaker_labels": true}'
ffmpeg -i video.mp4 -vn -acodec pcm_s16le -ar 16000 -ac 1 audio.wav
ffmpeg -i noisy.wav -af "afftdn=nf=-25" clean.wav
# Split into 10-minute chunks ffmpeg -i long.mp3 -f segment -segment_time 600 -c copy chunk_%03d.mp3
Data that stays local: Transcripts in ~/speech-to-text-transcription/transcripts/ Local Whisper processes entirely on-device Data that leaves your machine (if using APIs): Audio file sent to chosen provider (OpenAI, AssemblyAI, Deepgram) Transcript returned and stored locally This skill does NOT: Store API keys in plain text (use environment variables) Auto-upload without confirmation Retain files on external servers after processing
EndpointData SentPurposeapi.openai.com/v1/audioAudio fileWhisper API transcriptionapi.assemblyai.com/v2Audio fileAssemblyAI transcriptionapi.deepgram.com/v1Audio streamDeepgram transcription Only called when user explicitly chooses cloud provider. Local Whisper sends nothing.
By using cloud transcription providers, audio data is sent to OpenAI, AssemblyAI, or Deepgram. Only install if you trust these services with your audio. For sensitive content, use local Whisper.
Install with clawhub install <slug> if user confirms: audio β General audio processing ffmpeg β Video and audio conversion podcast β Podcast creation and editing
If useful: clawhub star speech-to-text-transcription Stay updated: clawhub sync
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.