Deutsche Text-to-Speech Sprachausgabe. Piper TTS wandelt Text in natĂŒrlich klingende Sprache um â lokal auf deinem Server, ohne Cloud-Dienste. Ideal fĂŒr Telegram Sprachnachrichten, Ansagen und automatische Benachrichtigungen.
Warum Piper TTS?
- đ 100% Lokal â Keine Daten in die Cloud, volle PrivatsphĂ€re
- đ©đȘ Deutsche Stimme â Thorsten (mĂ€nnlich, natĂŒrlich klingend)
- ⥠Schnell â Keine Netzwerk-Latenz, sofortige Ausgabe
- đ± Telegram-Ready â WAV-Dateien fĂŒr Voice-Messages
- đ° Kostenlos â Open Source, keine API-Kosten
đ§ Hört mal â Demo
So klingt Piper TTS mit der Thorsten-Stimme:
„Hallo, ich bin die Stimme von Piper TTS fĂŒr OpenClaw. Wenn ihr mich so haben wollt, dann gebt eurem OpenClaw den Link dieses Artikels.“
Voraussetzungen
Piper TTS muss systemweit installiert sein (nicht nur in Python-Environment):
# Piper TTS installieren pip install piper-tts # Deutsche Stimme herunterladen mkdir -p /usr/local/share/piper-voices/ cd /usr/local/share/piper-voices/ # Thorsten (mĂ€nnlich, medium) wget https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/de/de_DE/thorsten/medium/de_DE-thorsten-medium.onnx wget https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/de/de_DE/thorsten/medium/de_DE-thorsten-medium.onnx.json # Optional: Aplay fĂŒr Audio-Ausgabe apt-get install alsa-utils
Installation
Schritt 1: Verzeichnis anlegen
mkdir -p ~/.openclaw/workspace/scripts mkdir -p ~/.openclaw/workspace/skills/piper-tts
Schritt 2: piper_tts.py erstellen
Erstelle die Datei ~/.openclaw/workspace/scripts/piper_tts.py:
#!/usr/bin/env python3
"""
Piper TTS - Lokale Text-to-Speech Sprachausgabe
Erzeugt deutsche Sprachnachrichten fĂŒr Telegram und andere Anwendungen.
"""
import argparse
import subprocess
import tempfile
import os
from pathlib import Path
# Standard-Pfade (angepasst an dein System)
PIPER_BIN = "/usr/local/bin/piper"
VOICE_MODEL = "/usr/local/share/piper-voices/de_DE-thorsten-medium.onnx"
VOICE_CONFIG = "/usr/local/share/piper-voices/de_DE-thorsten-medium.onnx.json"
def generate_speech(text, output_path=None):
"""
Generiert Sprachausgabe aus Text.
Args:
text: Der vorzulesende Text (Deutsch)
output_path: Zielpfad fĂŒr WAV-Datei (optional)
Returns:
Pfad zur generierten WAV-Datei
"""
if not output_path:
# TemporÀre Datei erstellen
output_path = f"/tmp/openclaw/tts/piper_{hash(text) % 10000}.wav"
# Verzeichnis sicherstellen
Path(output_path).parent.mkdir(parents=True, exist_ok=True)
# Piper aufrufen
cmd = [
PIPER_BIN,
"--model", VOICE_MODEL,
"--output_file", output_path
]
try:
# Text an piper ĂŒbergeben
process = subprocess.Popen(
cmd,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
stdout, stderr = process.communicate(input=text.encode('utf-8'))
if process.returncode == 0:
return output_path
else:
print(f"Piper Fehler: {stderr.decode()}")
return None
except Exception as e:
print(f"Fehler bei Sprachgenerierung: {e}")
return None
def play_audio(file_path):
"""Spielt die Audio-Datei ab (optional)."""
try:
subprocess.run(["aplay", file_path], check=True, capture_output=True)
return True
except:
return False
def main():
parser = argparse.ArgumentParser(description='Piper TTS - Deutsche Sprachausgabe')
parser.add_argument('text', help='Der vorzulesende Text (Deutsch)')
parser.add_argument('--output', '-o', help='Ausgabepfad (optional)')
parser.add_argument('--play', '-p', action='store_true', help='Sofort abspielen')
args = parser.parse_args()
print(f"Generiere Sprache fĂŒr: {args.text[:50]}...")
# Sprache generieren
output_file = generate_speech(args.text, args.output)
if output_file:
print(f"â
Audio erstellt: {output_file}")
# FĂŒr Telegram als Voice Message senden:
print(f"đ± Telegram Nutzung: file_path = '{output_file}'")
# Optional: Abspielen
if args.play:
print("đ Spiele ab...")
play_audio(output_file)
else:
print("â Fehler bei der Generierung")
return 1
return 0
if __name__ == '__main__':
exit(main())
Schritt 3: SKILL.md erstellen
Erstelle unter ~/.openclaw/workspace/skills/piper-tts/SKILL.md:
--- name: piper-tts description: Lokale Text-to-Speech Sprachausgabe (Deutsch) --- # Piper TTS Lokale deutsche Sprachausgabe fĂŒr OpenClaw. ## Features - 100% lokal (keine Cloud) - Deutsche Stimme (Thorsten) - Telegram Voice-Message kompatibel - Schnell und kostenlos ## Installation Piper TTS systemweit installieren + deutsche Stimme ## Nutzung ```bash # Text zu Sprache python3 scripts/piper_tts.py "Hallo Welt" # Mit Ausgabe python3 scripts/piper_tts.py "Guten Morgen" --play # FĂŒr Telegram python3 scripts/piper_tts.py "Nachricht" --output /tmp/voice.wav ``` ## Stimme - Modell: de_DE-thorsten-medium - Geschlecht: mĂ€nnlich - QualitĂ€t: medium (gut fĂŒr Server)
Verwendung
Kommandozeile
# Text zu Sprache konvertieren
python3 ~/.openclaw/workspace/scripts/piper_tts.py "Hallo, ich bin dein OpenClaw Assistant"
# Mit sofortiger Wiedergabe
python3 ~/.openclaw/workspace/scripts/piper_tts.py "Benachrichtigung" --play
# Eigene Ausgabedatei
python3 ~/.openclaw/workspace/scripts/piper_tts.py "Guten Morgen" \
--output /home/node/morgengruss.wav
FĂŒr Telegram Voice-Messages
import subprocess
# Sprache generieren
result = subprocess.run(
['python3', 'scripts/piper_tts.py', 'Hier ist deine Nachricht'],
capture_output=True, text=True
)
# Pfad aus Output extrahieren
for line in result.stdout.split('\n'):
if 'Audio erstellt:' in line:
wav_path = line.split(': ')[1].strip()
# In Telegram als Voice senden
# message(action='send', asVoice=True, filePath=wav_path, ...)
Weitere verfĂŒgbare Stimmen
Mehr Stimmen: huggingface.co/rhasspy/piper-voices
Fehlerbehandlung
âPiper nicht gefunden“
- Piper TTS installiert?
which piper - Stimmen-Dateien vorhanden?
ls /usr/local/share/piper-voices/ - Pfade in piper_tts.py anpassen falls nötig
Kein Audio-Ausgabe
- alsa-utils installiert?
- LautstĂ€rke prĂŒfen:
alsamixer - WAV-Datei existiert?
ls /tmp/openclaw/tts/
Jetzt kannst du lokale, private Sprachausgabe in deinem OpenClaw-System nutzen. Perfekt fĂŒr Telegram Voice-Messages, automatische Ansagen und alles, was eine persönliche Note braucht â ohne Daten in die Cloud zu schicken. đïžđ