Files
speech_piper/doorbell_tts_to_wav.sh
2026-01-09 10:33:49 +11:00

30 lines
678 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
TEXT="${1:-}"
OUT_WAV="${2:-}"
DEFAULT_VOICE="en_US-hal_6409-medium.onnx"
VOICE="${3:-$DEFAULT_VOICE}"
SPEED="${4:-1.0}"
PIPER_BIN="/home/sam/speech_piper/piper/piper"
MODEL_DIR="/home/sam/speech_piper/data"
if [[ -z "$TEXT" || -z "$OUT_WAV" ]]; then
echo "Usage: $0 \"text\" /path/to/out.wav [voice.onnx] [speed]"
exit 1
fi
TMP_WAV="/tmp/piper_doorbell_$$.wav"
echo "$TEXT" | \
"$PIPER_BIN" --model "$MODEL_DIR/$VOICE" --output_file "$TMP_WAV" \
--length-scale "$SPEED"
# Convert to ESP-friendly WAV: 16kHz mono 16-bit
sox "$TMP_WAV" -r 16000 -c 1 -b 16 -e signed-integer "$OUT_WAV"
rm -f "$TMP_WAV"
echo "Wrote: $OUT_WAV"