From dora-skills
Provides audio processing nodes for dora: microphone input, Silero VAD, Distil-Whisper STT, Kokoro TTS, and PyAudio playback. Useful for building voice pipelines.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dora-skills:hub-audioThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Microphone input, voice activity detection, speech-to-text, and text-to-speech
Microphone input, voice activity detection, speech-to-text, and text-to-speech
Microphone → VAD → Whisper STT → LLM → Kokoro TTS → Speaker
| Node | Install | Description |
|---|---|---|
| dora-microphone | pip install dora-microphone | Microphone input with VAD |
| dora-vad | pip install dora-vad | Silero voice activity detection |
| dora-distil-whisper | pip install dora-distil-whisper | Distil-Whisper STT |
| dora-kokoro-tts | pip install dora-kokoro-tts | Kokoro text-to-speech |
| dora-pyaudio | pip install dora-pyaudio | Audio playback |
Capture audio from microphone with built-in voice activity detection.
- id: microphone
build: pip install dora-microphone
path: dora-microphone
inputs:
tick: dora/timer/millis/100
outputs:
- audio # 16kHz Float32Array
# audio: Float32Array at 16kHz sample rate
metadata = {"sample_rate": 16000}
Silero Voice Activity Detection - filters audio to speech-only segments.
- id: vad
build: pip install dora-vad
path: dora-vad
inputs:
audio: microphone/audio # 8kHz or 16kHz
outputs:
- audio # truncated to speech only
Speech-to-text using Distil-Whisper for efficient transcription.
- id: whisper
build: pip install dora-distil-whisper
path: dora-distil-whisper
inputs:
input: vad/audio
outputs:
- text # StringArray
env:
TARGET_LANGUAGE: english # or other supported languages
# text: StringArray containing transcribed text
text = event["value"][0].as_py() # Get string
Efficient text-to-speech using Kokoro.
- id: tts
build: pip install dora-kokoro-tts
path: dora-kokoro-tts
inputs:
text: llm/text
outputs:
- audio # Float32Array
Audio playback through speakers.
- id: speaker
build: pip install dora-pyaudio
path: dora-pyaudio
inputs:
audio: tts/audio
macOS:
brew install portaudio
Linux:
sudo apt-get install portaudio19-dev python-all-dev
nodes:
# Microphone input
- id: microphone
build: pip install dora-microphone
path: dora-microphone
inputs:
tick: dora/timer/millis/100
outputs:
- audio
# Voice activity detection
- id: vad
build: pip install dora-vad
path: dora-vad
inputs:
audio: microphone/audio
outputs:
- audio
# Speech to text
- id: whisper
build: pip install dora-distil-whisper
path: dora-distil-whisper
inputs:
input: vad/audio
outputs:
- text
env:
TARGET_LANGUAGE: english
# Visualization
- id: rerun
build: pip install dora-rerun
path: dora-rerun
inputs:
transcription:
source: whisper/text
metadata:
primitive: "text"
nodes:
# Audio input
- id: microphone
build: pip install dora-microphone
path: dora-microphone
inputs:
tick: dora/timer/millis/100
outputs:
- audio
# VAD filtering
- id: vad
build: pip install dora-vad
path: dora-vad
inputs:
audio: microphone/audio
outputs:
- audio
# Speech to text
- id: whisper
build: pip install dora-distil-whisper
path: dora-distil-whisper
inputs:
input: vad/audio
outputs:
- text
# LLM processing
- id: llm
build: pip install dora-qwen
path: dora-qwen
inputs:
text: whisper/text
outputs:
- text
# Text to speech
- id: tts
build: pip install dora-kokoro-tts
path: dora-kokoro-tts
inputs:
text: llm/text
outputs:
- audio
# Audio output
- id: speaker
build: pip install dora-pyaudio
path: dora-pyaudio
inputs:
audio: tts/audio
import pyarrow as pa
import numpy as np
# Audio at 16kHz
sample_rate = 16000
audio_samples = np.array([...], dtype=np.float32)
# Send audio
audio_data = pa.array(audio_samples)
node.send_output("audio", audio_data, {"sample_rate": sample_rate})
audio = event["value"].to_numpy()
sample_rate = event["metadata"].get("sample_rate", 16000)
# List audio devices
python -c "import sounddevice; print(sounddevice.query_devices())"
# macOS
brew install portaudio
# Linux
sudo apt-get install portaudio19-dev
npx claudepluginhub zhanghandong/dora-skills --plugin dora-skillsProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.