Refactor speech providers to stream-first local/openai architecture

This commit is contained in:
Mohamed Boudra
2026-02-06 12:43:10 +07:00
parent d791f79efe
commit 277080a004
38 changed files with 1294 additions and 731 deletions

View File

@@ -1,95 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
usage() {
cat <<'EOF'
Download local speech models for Paseo (sherpa-onnx).
Defaults:
- STT: sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20
- TTS: kitten-nano-en-v0_1-fp16
Usage:
scripts/speech/download-sherpa-models.sh [--models-dir DIR] [--with-kokoro] [--with-paraformer]
Preferred:
npm run speech:download --workspace=@getpaseo/server
Notes:
- Models are downloaded from the sherpa-onnx GitHub releases.
- Pocket TTS is downloaded by the Node script (`npm run speech:download --workspace=@getpaseo/server`)
because it is a file-based HuggingFace model (not a single tarball).
- Set PASEO_SHERPA_ONNX_MODELS_DIR to override where the daemon looks.
EOF
}
MODELS_DIR=""
WITH_KOKORO=0
WITH_PARAFORMER=0
while [[ $# -gt 0 ]]; do
case "$1" in
--models-dir)
MODELS_DIR="${2:-}"
shift 2
;;
--with-kokoro)
WITH_KOKORO=1
shift 1
;;
--with-paraformer)
WITH_PARAFORMER=1
shift 1
;;
-h|--help)
usage
exit 0
;;
*)
echo "Unknown arg: $1" >&2
usage >&2
exit 2
;;
esac
done
if [[ -z "${MODELS_DIR}" ]]; then
if [[ -n "${PASEO_SHERPA_ONNX_MODELS_DIR:-}" ]]; then
MODELS_DIR="${PASEO_SHERPA_ONNX_MODELS_DIR}"
elif [[ -n "${PASEO_HOME:-}" ]]; then
MODELS_DIR="${PASEO_HOME}/models/sherpa-onnx"
else
MODELS_DIR="${HOME}/.paseo/models/sherpa-onnx"
fi
fi
mkdir -p "${MODELS_DIR}"
cd "${MODELS_DIR}"
download_and_extract() {
local url="$1"
local filename
filename="$(basename "$url")"
echo "Downloading ${filename}..."
curl -fsSL -O "${url}"
echo "Extracting ${filename}..."
tar xf "${filename}"
rm -f "${filename}"
}
echo "NOTE: This script is deprecated. Prefer: npm run speech:download --workspace=@getpaseo/server" >&2
download_and_extract "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20.tar.bz2"
download_and_extract "https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/kitten-nano-en-v0_1-fp16.tar.bz2"
if [[ "${WITH_PARAFORMER}" -eq 1 ]]; then
download_and_extract "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-paraformer-bilingual-zh-en.tar.bz2"
fi
if [[ "${WITH_KOKORO}" -eq 1 ]]; then
download_and_extract "https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/kokoro-en-v0_19.tar.bz2"
fi
echo "Done."
echo "Models dir: ${MODELS_DIR}"