modular-voice-agent-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -0
- package/USAGE.md +567 -0
- package/dist/backends/cloud/index.d.ts +7 -0
- package/dist/backends/cloud/index.d.ts.map +1 -0
- package/dist/backends/cloud/index.js +6 -0
- package/dist/backends/cloud/index.js.map +1 -0
- package/dist/backends/cloud/llm.d.ts +22 -0
- package/dist/backends/cloud/llm.d.ts.map +1 -0
- package/dist/backends/cloud/llm.js +234 -0
- package/dist/backends/cloud/llm.js.map +1 -0
- package/dist/backends/index.d.ts +2 -0
- package/dist/backends/index.d.ts.map +1 -0
- package/dist/backends/index.js +6 -0
- package/dist/backends/index.js.map +1 -0
- package/dist/backends/native/index.d.ts +5 -0
- package/dist/backends/native/index.d.ts.map +1 -0
- package/dist/backends/native/index.js +6 -0
- package/dist/backends/native/index.js.map +1 -0
- package/dist/backends/native/llm.d.ts +71 -0
- package/dist/backends/native/llm.d.ts.map +1 -0
- package/dist/backends/native/llm.js +435 -0
- package/dist/backends/native/llm.js.map +1 -0
- package/dist/backends/native/stt.d.ts +15 -0
- package/dist/backends/native/stt.d.ts.map +1 -0
- package/dist/backends/native/stt.js +94 -0
- package/dist/backends/native/stt.js.map +1 -0
- package/dist/backends/native/tts.d.ts +21 -0
- package/dist/backends/native/tts.d.ts.map +1 -0
- package/dist/backends/native/tts.js +105 -0
- package/dist/backends/native/tts.js.map +1 -0
- package/dist/backends/transformers/index.d.ts +4 -0
- package/dist/backends/transformers/index.d.ts.map +1 -0
- package/dist/backends/transformers/index.js +4 -0
- package/dist/backends/transformers/index.js.map +1 -0
- package/dist/backends/transformers/llm.d.ts +29 -0
- package/dist/backends/transformers/llm.d.ts.map +1 -0
- package/dist/backends/transformers/llm.js +117 -0
- package/dist/backends/transformers/llm.js.map +1 -0
- package/dist/backends/transformers/stt.d.ts +17 -0
- package/dist/backends/transformers/stt.d.ts.map +1 -0
- package/dist/backends/transformers/stt.js +43 -0
- package/dist/backends/transformers/stt.js.map +1 -0
- package/dist/backends/transformers/tts.d.ts +17 -0
- package/dist/backends/transformers/tts.d.ts.map +1 -0
- package/dist/backends/transformers/tts.js +40 -0
- package/dist/backends/transformers/tts.js.map +1 -0
- package/dist/cache.d.ts +37 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +49 -0
- package/dist/cache.js.map +1 -0
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +392 -0
- package/dist/cli.js.map +1 -0
- package/dist/client/audio-player.d.ts +45 -0
- package/dist/client/audio-player.d.ts.map +1 -0
- package/dist/client/audio-player.js +90 -0
- package/dist/client/audio-player.js.map +1 -0
- package/dist/client/audio-recorder.d.ts +42 -0
- package/dist/client/audio-recorder.d.ts.map +1 -0
- package/dist/client/audio-recorder.js +128 -0
- package/dist/client/audio-recorder.js.map +1 -0
- package/dist/client/index.d.ts +34 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +33 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/protocol.d.ts +80 -0
- package/dist/client/protocol.d.ts.map +1 -0
- package/dist/client/protocol.js +29 -0
- package/dist/client/protocol.js.map +1 -0
- package/dist/client/voice-client.d.ts +249 -0
- package/dist/client/voice-client.d.ts.map +1 -0
- package/dist/client/voice-client.js +826 -0
- package/dist/client/voice-client.js.map +1 -0
- package/dist/client/web-speech-stt.d.ts +65 -0
- package/dist/client/web-speech-stt.d.ts.map +1 -0
- package/dist/client/web-speech-stt.js +122 -0
- package/dist/client/web-speech-stt.js.map +1 -0
- package/dist/client/web-speech-tts.d.ts +59 -0
- package/dist/client/web-speech-tts.d.ts.map +1 -0
- package/dist/client/web-speech-tts.js +145 -0
- package/dist/client/web-speech-tts.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/server/encoding.d.ts +18 -0
- package/dist/server/encoding.d.ts.map +1 -0
- package/dist/server/encoding.js +41 -0
- package/dist/server/encoding.js.map +1 -0
- package/dist/server/handler.d.ts +86 -0
- package/dist/server/handler.d.ts.map +1 -0
- package/dist/server/handler.js +224 -0
- package/dist/server/handler.js.map +1 -0
- package/dist/server/index.d.ts +31 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +32 -0
- package/dist/server/index.js.map +1 -0
- package/dist/services/function-service.d.ts +17 -0
- package/dist/services/function-service.d.ts.map +1 -0
- package/dist/services/function-service.js +82 -0
- package/dist/services/function-service.js.map +1 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +3 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/llm-logger.d.ts +136 -0
- package/dist/services/llm-logger.d.ts.map +1 -0
- package/dist/services/llm-logger.js +275 -0
- package/dist/services/llm-logger.js.map +1 -0
- package/dist/services/text-normalizer.d.ts +17 -0
- package/dist/services/text-normalizer.d.ts.map +1 -0
- package/dist/services/text-normalizer.js +100 -0
- package/dist/services/text-normalizer.js.map +1 -0
- package/dist/types.d.ts +195 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +48 -0
- package/dist/types.js.map +1 -0
- package/dist/voice-pipeline.d.ts +125 -0
- package/dist/voice-pipeline.d.ts.map +1 -0
- package/dist/voice-pipeline.js +390 -0
- package/dist/voice-pipeline.js.map +1 -0
- package/package.json +96 -0
- package/scripts/setup-binaries.sh +159 -0
- package/scripts/setup.sh +201 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Setup native binaries for modular-voice-agent-sdk
|
|
4
|
+
# Binaries are stored in ~/.cache/mvas/bin/
|
|
5
|
+
#
|
|
6
|
+
# Usage: npx mvas setup --binaries-only
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
set -e
|
|
10
|
+
|
|
11
|
+
# Use global cache directory
|
|
12
|
+
CACHE_DIR="${MVAS_CACHE:-$HOME/.cache/mvas}"
|
|
13
|
+
BIN_DIR="$CACHE_DIR/bin"
|
|
14
|
+
|
|
15
|
+
echo "Modular Voice Agent SDK - Binary Setup"
|
|
16
|
+
echo "======================================="
|
|
17
|
+
echo "Binary directory: $BIN_DIR"
|
|
18
|
+
echo ""
|
|
19
|
+
|
|
20
|
+
mkdir -p "$BIN_DIR"
|
|
21
|
+
|
|
22
|
+
cd "$BIN_DIR"
|
|
23
|
+
|
|
24
|
+
# Detect platform
|
|
25
|
+
OS="$(uname -s)"
|
|
26
|
+
ARCH="$(uname -m)"
|
|
27
|
+
|
|
28
|
+
# --- whisper.cpp ---
|
|
29
|
+
echo "==> Setting up whisper-cli..."
|
|
30
|
+
if [ -L "whisper-cli" ] || [ -f "whisper-cli" ]; then
|
|
31
|
+
echo " Already exists, skipping."
|
|
32
|
+
else
|
|
33
|
+
# Try to find whisper-cli from Homebrew or PATH
|
|
34
|
+
if command -v whisper-cli &> /dev/null; then
|
|
35
|
+
WHISPER_PATH="$(command -v whisper-cli)"
|
|
36
|
+
ln -s "$WHISPER_PATH" whisper-cli
|
|
37
|
+
echo " Linked to $WHISPER_PATH"
|
|
38
|
+
elif [ -f "/opt/homebrew/bin/whisper-cli" ]; then
|
|
39
|
+
ln -s /opt/homebrew/bin/whisper-cli whisper-cli
|
|
40
|
+
echo " Linked to /opt/homebrew/bin/whisper-cli"
|
|
41
|
+
elif [ -f "/usr/local/bin/whisper-cli" ]; then
|
|
42
|
+
ln -s /usr/local/bin/whisper-cli whisper-cli
|
|
43
|
+
echo " Linked to /usr/local/bin/whisper-cli"
|
|
44
|
+
else
|
|
45
|
+
echo " ⚠️ whisper-cli not found. Install with: brew install whisper-cpp"
|
|
46
|
+
fi
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
# --- llama.cpp (llama-completion) ---
|
|
50
|
+
echo ""
|
|
51
|
+
echo "==> Setting up llama-completion..."
|
|
52
|
+
if [ -L "llama-completion" ] || [ -f "llama-completion" ]; then
|
|
53
|
+
echo " Already exists, skipping."
|
|
54
|
+
else
|
|
55
|
+
# Try to find llama-completion from PATH or common locations
|
|
56
|
+
if command -v llama-completion &> /dev/null; then
|
|
57
|
+
LLAMA_PATH="$(command -v llama-completion)"
|
|
58
|
+
ln -s "$LLAMA_PATH" llama-completion
|
|
59
|
+
echo " Linked to $LLAMA_PATH"
|
|
60
|
+
elif [ -f "/opt/homebrew/bin/llama-completion" ]; then
|
|
61
|
+
ln -s /opt/homebrew/bin/llama-completion llama-completion
|
|
62
|
+
echo " Linked to /opt/homebrew/bin/llama-completion"
|
|
63
|
+
elif [ -f "/usr/local/bin/llama-completion" ]; then
|
|
64
|
+
ln -s /usr/local/bin/llama-completion llama-completion
|
|
65
|
+
echo " Linked to /usr/local/bin/llama-completion"
|
|
66
|
+
else
|
|
67
|
+
echo " ⚠️ llama-completion not found."
|
|
68
|
+
echo " Install with: brew install llama.cpp"
|
|
69
|
+
echo " Or build from source: git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp && make"
|
|
70
|
+
fi
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
# --- sherpa-onnx (TTS) ---
|
|
74
|
+
echo ""
|
|
75
|
+
echo "==> Setting up sherpa-onnx for $OS/$ARCH..."
|
|
76
|
+
|
|
77
|
+
if [ -f "sherpa-onnx-offline-tts" ]; then
|
|
78
|
+
echo " Already exists, skipping."
|
|
79
|
+
else
|
|
80
|
+
case "$OS" in
|
|
81
|
+
Darwin)
|
|
82
|
+
# macOS - universal binary (arm64 + x86_64)
|
|
83
|
+
SHERPA_URL="https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.20/sherpa-onnx-v1.12.20-osx-universal2-shared.tar.bz2"
|
|
84
|
+
SHERPA_DIR="sherpa-onnx-v1.12.20-osx-universal2-shared"
|
|
85
|
+
;;
|
|
86
|
+
Linux)
|
|
87
|
+
if [ "$ARCH" = "x86_64" ]; then
|
|
88
|
+
SHERPA_URL="https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.20/sherpa-onnx-v1.12.20-linux-x64-shared.tar.bz2"
|
|
89
|
+
SHERPA_DIR="sherpa-onnx-v1.12.20-linux-x64-shared"
|
|
90
|
+
elif [ "$ARCH" = "aarch64" ]; then
|
|
91
|
+
SHERPA_URL="https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.20/sherpa-onnx-v1.12.20-linux-aarch64-shared.tar.bz2"
|
|
92
|
+
SHERPA_DIR="sherpa-onnx-v1.12.20-linux-aarch64-shared"
|
|
93
|
+
else
|
|
94
|
+
echo " Unsupported Linux architecture: $ARCH"
|
|
95
|
+
exit 1
|
|
96
|
+
fi
|
|
97
|
+
;;
|
|
98
|
+
*)
|
|
99
|
+
echo " Unsupported OS: $OS"
|
|
100
|
+
echo " Download manually from: https://github.com/k2-fsa/sherpa-onnx/releases"
|
|
101
|
+
exit 1
|
|
102
|
+
;;
|
|
103
|
+
esac
|
|
104
|
+
|
|
105
|
+
echo " Downloading from $SHERPA_URL..."
|
|
106
|
+
curl -L --progress-bar -o sherpa-onnx.tar.bz2 "$SHERPA_URL"
|
|
107
|
+
tar -xjf sherpa-onnx.tar.bz2
|
|
108
|
+
|
|
109
|
+
# Only copy the TTS binary we need (not all the extras)
|
|
110
|
+
cp "$SHERPA_DIR/bin/sherpa-onnx-offline-tts" .
|
|
111
|
+
mkdir -p lib
|
|
112
|
+
mv "$SHERPA_DIR/lib/"* lib/
|
|
113
|
+
|
|
114
|
+
# Fix library paths on macOS so binary can find libs in ./lib/
|
|
115
|
+
if [ "$OS" = "Darwin" ]; then
|
|
116
|
+
echo " Fixing library paths..."
|
|
117
|
+
for lib in lib/*.dylib; do
|
|
118
|
+
libname=$(basename "$lib")
|
|
119
|
+
install_name_tool -change "@rpath/$libname" "@executable_path/lib/$libname" sherpa-onnx-offline-tts 2>/dev/null || true
|
|
120
|
+
done
|
|
121
|
+
fi
|
|
122
|
+
|
|
123
|
+
# Cleanup
|
|
124
|
+
rm -rf "$SHERPA_DIR" sherpa-onnx.tar.bz2
|
|
125
|
+
|
|
126
|
+
echo " Done!"
|
|
127
|
+
fi
|
|
128
|
+
|
|
129
|
+
# ============ Summary ============
|
|
130
|
+
|
|
131
|
+
echo ""
|
|
132
|
+
echo "============================================================"
|
|
133
|
+
echo "Binary setup complete!"
|
|
134
|
+
echo "============================================================"
|
|
135
|
+
echo ""
|
|
136
|
+
echo "Binaries location: $BIN_DIR"
|
|
137
|
+
echo ""
|
|
138
|
+
ls -lh "$BIN_DIR" 2>/dev/null || true
|
|
139
|
+
|
|
140
|
+
# Check for missing dependencies
|
|
141
|
+
MISSING_BREW=""
|
|
142
|
+
[ ! -L "$BIN_DIR/whisper-cli" ] && [ ! -f "$BIN_DIR/whisper-cli" ] && MISSING_BREW="$MISSING_BREW whisper-cpp"
|
|
143
|
+
[ ! -L "$BIN_DIR/llama-completion" ] && [ ! -f "$BIN_DIR/llama-completion" ] && MISSING_BREW="$MISSING_BREW llama.cpp"
|
|
144
|
+
|
|
145
|
+
if [ -n "$MISSING_BREW" ]; then
|
|
146
|
+
echo ""
|
|
147
|
+
echo "⚠️ Missing dependencies:"
|
|
148
|
+
echo " brew install$MISSING_BREW"
|
|
149
|
+
echo ""
|
|
150
|
+
echo "Then re-run: npx mvas setup --binaries-only"
|
|
151
|
+
else
|
|
152
|
+
echo ""
|
|
153
|
+
echo "✅ All binaries set up!"
|
|
154
|
+
fi
|
|
155
|
+
|
|
156
|
+
echo ""
|
|
157
|
+
echo "You can customize the cache location with:"
|
|
158
|
+
echo " export MVAS_CACHE=/path/to/cache"
|
|
159
|
+
|
package/scripts/setup.sh
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Setup script - downloads models and binaries for native backends
|
|
4
|
+
# Files are stored in ~/.cache/mvas/
|
|
5
|
+
#
|
|
6
|
+
# Usage: npx mvas setup
|
|
7
|
+
#
|
|
8
|
+
|
|
9
|
+
set -e
|
|
10
|
+
|
|
11
|
+
# Use global cache directory
|
|
12
|
+
CACHE_DIR="${MVAS_CACHE:-$HOME/.cache/mvas}"
|
|
13
|
+
MODELS_DIR="$CACHE_DIR/models"
|
|
14
|
+
BIN_DIR="$CACHE_DIR/bin"
|
|
15
|
+
|
|
16
|
+
echo "Modular Voice Agent SDK Setup"
|
|
17
|
+
echo "=============================="
|
|
18
|
+
echo "Cache directory: $CACHE_DIR"
|
|
19
|
+
echo ""
|
|
20
|
+
|
|
21
|
+
mkdir -p "$MODELS_DIR"
|
|
22
|
+
mkdir -p "$BIN_DIR"
|
|
23
|
+
|
|
24
|
+
# ============ Models ============
|
|
25
|
+
|
|
26
|
+
cd "$MODELS_DIR"
|
|
27
|
+
|
|
28
|
+
# Whisper model (whisper.cpp format - Large V3 Turbo quantized)
|
|
29
|
+
echo "==> Downloading Whisper model (~850MB)..."
|
|
30
|
+
if [ -f "whisper-large-v3-turbo-q8.bin" ]; then
|
|
31
|
+
echo " Already exists, skipping."
|
|
32
|
+
else
|
|
33
|
+
curl -L --progress-bar -o whisper-large-v3-turbo-q8.bin \
|
|
34
|
+
"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q8_0.bin"
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
# LLM model (GGUF format)
|
|
38
|
+
echo ""
|
|
39
|
+
echo "==> Downloading SmolLM2 model (~1GB)..."
|
|
40
|
+
if [ -f "smollm2-1.7b-instruct-q4_k_m.gguf" ]; then
|
|
41
|
+
echo " Already exists, skipping."
|
|
42
|
+
else
|
|
43
|
+
curl -L --progress-bar -o smollm2-1.7b-instruct-q4_k_m.gguf \
|
|
44
|
+
"https://huggingface.co/HuggingFaceTB/SmolLM2-1.7B-Instruct-GGUF/resolve/main/smollm2-1.7b-instruct-q4_k_m.gguf"
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
# TTS model (sherpa-onnx compatible Piper model)
|
|
48
|
+
echo ""
|
|
49
|
+
echo "==> Downloading TTS model (~60MB)..."
|
|
50
|
+
if [ -d "vits-piper-en_US-lessac-medium" ]; then
|
|
51
|
+
echo " Already exists, skipping."
|
|
52
|
+
else
|
|
53
|
+
curl -L --progress-bar -o vits-piper-en_US-lessac-medium.tar.bz2 \
|
|
54
|
+
"https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-lessac-medium.tar.bz2"
|
|
55
|
+
tar -xjf vits-piper-en_US-lessac-medium.tar.bz2
|
|
56
|
+
rm vits-piper-en_US-lessac-medium.tar.bz2
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# ============ Binaries ============
|
|
60
|
+
|
|
61
|
+
cd "$BIN_DIR"
|
|
62
|
+
|
|
63
|
+
# Detect platform
|
|
64
|
+
OS="$(uname -s)"
|
|
65
|
+
ARCH="$(uname -m)"
|
|
66
|
+
|
|
67
|
+
# --- whisper.cpp ---
|
|
68
|
+
echo ""
|
|
69
|
+
echo "==> Setting up whisper-cli..."
|
|
70
|
+
if [ -L "whisper-cli" ] || [ -f "whisper-cli" ]; then
|
|
71
|
+
echo " Already exists, skipping."
|
|
72
|
+
else
|
|
73
|
+
# Try to find whisper-cli from Homebrew or PATH
|
|
74
|
+
if command -v whisper-cli &> /dev/null; then
|
|
75
|
+
WHISPER_PATH="$(command -v whisper-cli)"
|
|
76
|
+
ln -s "$WHISPER_PATH" whisper-cli
|
|
77
|
+
echo " Linked to $WHISPER_PATH"
|
|
78
|
+
elif [ -f "/opt/homebrew/bin/whisper-cli" ]; then
|
|
79
|
+
ln -s /opt/homebrew/bin/whisper-cli whisper-cli
|
|
80
|
+
echo " Linked to /opt/homebrew/bin/whisper-cli"
|
|
81
|
+
elif [ -f "/usr/local/bin/whisper-cli" ]; then
|
|
82
|
+
ln -s /usr/local/bin/whisper-cli whisper-cli
|
|
83
|
+
echo " Linked to /usr/local/bin/whisper-cli"
|
|
84
|
+
else
|
|
85
|
+
echo " ⚠️ whisper-cli not found. Install with: brew install whisper-cpp"
|
|
86
|
+
fi
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
# --- llama.cpp (llama-completion) ---
|
|
90
|
+
echo ""
|
|
91
|
+
echo "==> Setting up llama-completion..."
|
|
92
|
+
if [ -L "llama-completion" ] || [ -f "llama-completion" ]; then
|
|
93
|
+
echo " Already exists, skipping."
|
|
94
|
+
else
|
|
95
|
+
# Try to find llama-completion from PATH or common locations
|
|
96
|
+
if command -v llama-completion &> /dev/null; then
|
|
97
|
+
LLAMA_PATH="$(command -v llama-completion)"
|
|
98
|
+
ln -s "$LLAMA_PATH" llama-completion
|
|
99
|
+
echo " Linked to $LLAMA_PATH"
|
|
100
|
+
elif [ -f "/opt/homebrew/bin/llama-completion" ]; then
|
|
101
|
+
ln -s /opt/homebrew/bin/llama-completion llama-completion
|
|
102
|
+
echo " Linked to /opt/homebrew/bin/llama-completion"
|
|
103
|
+
elif [ -f "/usr/local/bin/llama-completion" ]; then
|
|
104
|
+
ln -s /usr/local/bin/llama-completion llama-completion
|
|
105
|
+
echo " Linked to /usr/local/bin/llama-completion"
|
|
106
|
+
else
|
|
107
|
+
echo " ⚠️ llama-completion not found."
|
|
108
|
+
echo " Install with: brew install llama.cpp"
|
|
109
|
+
echo " Or build from source: git clone https://github.com/ggerganov/llama.cpp && cd llama.cpp && make"
|
|
110
|
+
fi
|
|
111
|
+
fi
|
|
112
|
+
|
|
113
|
+
# --- sherpa-onnx (TTS) ---
|
|
114
|
+
echo ""
|
|
115
|
+
echo "==> Setting up sherpa-onnx for $OS/$ARCH..."
|
|
116
|
+
|
|
117
|
+
if [ -f "sherpa-onnx-offline-tts" ]; then
|
|
118
|
+
echo " Already exists, skipping."
|
|
119
|
+
else
|
|
120
|
+
case "$OS" in
|
|
121
|
+
Darwin)
|
|
122
|
+
# macOS - universal binary (arm64 + x86_64)
|
|
123
|
+
SHERPA_URL="https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.20/sherpa-onnx-v1.12.20-osx-universal2-shared.tar.bz2"
|
|
124
|
+
SHERPA_DIR="sherpa-onnx-v1.12.20-osx-universal2-shared"
|
|
125
|
+
;;
|
|
126
|
+
Linux)
|
|
127
|
+
if [ "$ARCH" = "x86_64" ]; then
|
|
128
|
+
SHERPA_URL="https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.20/sherpa-onnx-v1.12.20-linux-x64-shared.tar.bz2"
|
|
129
|
+
SHERPA_DIR="sherpa-onnx-v1.12.20-linux-x64-shared"
|
|
130
|
+
elif [ "$ARCH" = "aarch64" ]; then
|
|
131
|
+
SHERPA_URL="https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.20/sherpa-onnx-v1.12.20-linux-aarch64-shared.tar.bz2"
|
|
132
|
+
SHERPA_DIR="sherpa-onnx-v1.12.20-linux-aarch64-shared"
|
|
133
|
+
else
|
|
134
|
+
echo " Unsupported Linux architecture: $ARCH"
|
|
135
|
+
exit 1
|
|
136
|
+
fi
|
|
137
|
+
;;
|
|
138
|
+
*)
|
|
139
|
+
echo " Unsupported OS: $OS"
|
|
140
|
+
echo " Download manually from: https://github.com/k2-fsa/sherpa-onnx/releases"
|
|
141
|
+
exit 1
|
|
142
|
+
;;
|
|
143
|
+
esac
|
|
144
|
+
|
|
145
|
+
echo " Downloading from $SHERPA_URL..."
|
|
146
|
+
curl -L --progress-bar -o sherpa-onnx.tar.bz2 "$SHERPA_URL"
|
|
147
|
+
tar -xjf sherpa-onnx.tar.bz2
|
|
148
|
+
|
|
149
|
+
# Only copy the TTS binary we need (not all the extras)
|
|
150
|
+
cp "$SHERPA_DIR/bin/sherpa-onnx-offline-tts" .
|
|
151
|
+
mkdir -p lib
|
|
152
|
+
mv "$SHERPA_DIR/lib/"* lib/
|
|
153
|
+
|
|
154
|
+
# Fix library paths on macOS so binary can find libs in ./lib/
|
|
155
|
+
if [ "$OS" = "Darwin" ]; then
|
|
156
|
+
echo " Fixing library paths..."
|
|
157
|
+
for lib in lib/*.dylib; do
|
|
158
|
+
libname=$(basename "$lib")
|
|
159
|
+
install_name_tool -change "@rpath/$libname" "@executable_path/lib/$libname" sherpa-onnx-offline-tts 2>/dev/null || true
|
|
160
|
+
done
|
|
161
|
+
fi
|
|
162
|
+
|
|
163
|
+
# Cleanup
|
|
164
|
+
rm -rf "$SHERPA_DIR" sherpa-onnx.tar.bz2
|
|
165
|
+
|
|
166
|
+
echo " Done!"
|
|
167
|
+
fi
|
|
168
|
+
|
|
169
|
+
# ============ Summary ============
|
|
170
|
+
|
|
171
|
+
echo ""
|
|
172
|
+
echo "============================================================"
|
|
173
|
+
echo "Setup complete!"
|
|
174
|
+
echo "============================================================"
|
|
175
|
+
echo ""
|
|
176
|
+
echo "Cache location: $CACHE_DIR"
|
|
177
|
+
echo ""
|
|
178
|
+
echo "Models:"
|
|
179
|
+
ls -lh "$MODELS_DIR"
|
|
180
|
+
echo ""
|
|
181
|
+
echo "Binaries:"
|
|
182
|
+
ls -lh "$BIN_DIR"
|
|
183
|
+
|
|
184
|
+
# Check for missing dependencies
|
|
185
|
+
MISSING_BREW=""
|
|
186
|
+
[ ! -L "$BIN_DIR/whisper-cli" ] && [ ! -f "$BIN_DIR/whisper-cli" ] && MISSING_BREW="$MISSING_BREW whisper-cpp"
|
|
187
|
+
[ ! -L "$BIN_DIR/llama-completion" ] && [ ! -f "$BIN_DIR/llama-completion" ] && MISSING_BREW="$MISSING_BREW llama.cpp"
|
|
188
|
+
|
|
189
|
+
if [ -n "$MISSING_BREW" ]; then
|
|
190
|
+
echo ""
|
|
191
|
+
echo "⚠️ Missing dependencies:"
|
|
192
|
+
echo " brew install$MISSING_BREW"
|
|
193
|
+
echo ""
|
|
194
|
+
echo "Then re-run: npx mvas setup"
|
|
195
|
+
else
|
|
196
|
+
echo ""
|
|
197
|
+
echo "✅ All dependencies installed!"
|
|
198
|
+
echo ""
|
|
199
|
+
echo "You can customize the cache location with:"
|
|
200
|
+
echo " export MVAS_CACHE=/path/to/cache"
|
|
201
|
+
fi
|