Voice Reply
Local text-to-speech using Piper voices via sherpa-onnx. 100% offline, no API keys required. Use when user asks for a voice reply, audio response, spoken answer, or wants to hear something read aloud.
Local text-to-speech using Piper voices via sherpa-onnx. 100% offline, no API keys required. Use when user asks for a voice reply, audio response, spoken answer, or wants to hear something read aloud.
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Generate voice audio replies using local Piper TTS via sherpa-onnx. Completely offline, no cloud APIs needed.
cd scripts sudo ./install.sh
sudo mkdir -p /opt/sherpa-onnx cd /opt/sherpa-onnx curl -L -o sherpa.tar.bz2 "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.23/sherpa-onnx-v1.12.23-linux-x64-shared.tar.bz2" sudo tar -xjf sherpa.tar.bz2 --strip-components=1 rm sherpa.tar.bz2
sudo mkdir -p /opt/piper-voices cd /opt/piper-voicesGerman - thorsten (medium quality, natural male voice)
curl -L -o thorsten.tar.bz2 "https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-de_DE-thorsten-medium.tar.bz2" sudo tar -xjf thorsten.tar.bz2 && rm thorsten.tar.bz2
English - ryan (high quality, clear US male voice)
curl -L -o ryan.tar.bz2 "https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-ryan-high.tar.bz2" sudo tar -xjf ryan.tar.bz2 && rm ryan.tar.bz2
sudo apt install -y ffmpeg
Add to your OpenClaw service or shell:
export SHERPA_ONNX_DIR="/opt/sherpa-onnx" export PIPER_VOICES_DIR="/opt/piper-voices"
{baseDir}/bin/voice-reply "Text to speak" [language]
| Parameter | Description | Default |
|---|---|---|
| text | The text to convert to speech | (required) |
| language | for German, for English | auto-detect |
# German (explicit) {baseDir}/bin/voice-reply "Hallo, ich bin dein Assistent!" deEnglish (explicit)
{baseDir}/bin/voice-reply "Hello, I am your assistant!" en
Auto-detect (detects German from umlauts and common words)
{baseDir}/bin/voice-reply "Guten Tag, wie geht es dir?"
Auto-detect (defaults to English)
{baseDir}/bin/voice-reply "The weather is nice today."
The script outputs two lines that OpenClaw processes for Telegram:
[[audio_as_voice]] MEDIA:/tmp/voice-reply-output.ogg
[[audio_as_voice]] - Tag that tells Telegram to display as voice bubbleMEDIA:path - Path to the generated OGG Opus audio file| Language | Voice | Quality | Description |
|---|---|---|---|
| German (de) | thorsten | medium | Natural male voice, clear pronunciation |
| English (en) | ryan | high | Clear US male voice, professional tone |
Browse available Piper voices at:
Download and extract to
$PIPER_VOICES_DIR, then modify the script to include the new voice.
Ensure
SHERPA_ONNX_DIR is set and contains bin/sherpa-onnx-offline-tts.
Check that voice model files exist:
*.onnx, tokens.txt, espeak-ng-data/
Ensure the output includes
[[audio_as_voice]] tag on its own line before the MEDIA: line.
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.