#!/bin/sh
# Wrapper für sherpa-onnx TTS mit deutscher weiblicher Stimme

# Fixed paths für unsere Installation
RUNTIME_DIR="/home/agent/.openclaw/tools/sherpa-onnx-tts/runtime"
MODEL_DIR="/home/agent/.openclaw/tools/sherpa-onnx-tts/models/vits-piper-de_DE-eva_k-x_low"

# Standard-Ausgabedatei
output_file=""

# Text sammeln (alle übrigen Arguments)
text=""

# Wir parsen die Arguments manuell
while [ $# -gt 0 ]; do
    case "$1" in
        -o|--output-filename)
            output_file="$2"
            shift 2
            ;;
        *)
            # Wenn es kein bekanntes Flag ist, ist es Teil des Textes
            if [ -z "$text" ]; then
                text="$1"
            else
                text="$text $1"
            fi
            shift
            ;;
    esac
done

# Fallback für Output-Datei falls nicht angegeben
if [ -z "$output_file" ]; then
    output_file="/tmp/sherpa-onnx-tts-output.wav"
fi

# sherpa-onnx mit den festen Parametern und dem Text als letztem Argument aufrufen
exec "$RUNTIME_DIR/bin/sherpa-onnx-offline-tts" \
    --vits-model="$MODEL_DIR/de_DE-eva_k-x_low.onnx" \
    --vits-tokens="$MODEL_DIR/tokens.txt" \
    --vits-data-dir="$MODEL_DIR/espeak-ng-data" \
    --output-filename="$output_file" \
    "$text"
