Skip to content

Commit c478208

Browse files
committed
feat: supertonic tts plugin
1 parent d58c3c3 commit c478208

File tree

16 files changed

+3259
-2
lines changed

16 files changed

+3259
-2
lines changed

justfile

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ lint-plugins:
260260
@cd plugins/native/vad && cargo fmt -- --check && cargo clippy -- -D warnings
261261
@cd plugins/native/matcha && cargo fmt -- --check && cargo clippy -- -D warnings
262262
@cd plugins/native/nllb && cargo fmt -- --check && CMAKE_ARGS="-DCMAKE_INSTALL_PREFIX=$$(pwd)/target/cmake-install" cargo clippy -- -D warnings
263+
@cd plugins/native/supertonic && cargo fmt -- --check && cargo clippy -- -D warnings
263264
@echo "✓ All native plugins passed linting"
264265

265266
# Auto-fix formatting and linting issues in native plugins
@@ -272,6 +273,7 @@ fix-plugins:
272273
@cd plugins/native/vad && cargo fmt && cargo clippy --fix --allow-dirty --allow-staged -- -D warnings
273274
@cd plugins/native/matcha && cargo fmt && cargo clippy --fix --allow-dirty --allow-staged -- -D warnings
274275
@cd plugins/native/nllb && cargo fmt && CMAKE_ARGS="-DCMAKE_INSTALL_PREFIX=$$(pwd)/target/cmake-install" cargo clippy --fix --allow-dirty --allow-staged -- -D warnings
276+
@cd plugins/native/supertonic && cargo fmt && cargo clippy --fix --allow-dirty --allow-staged -- -D warnings
275277
@echo "✓ All native plugins fixed"
276278

277279
# --- Profiling ---
@@ -773,12 +775,49 @@ upload-helsinki-plugin: build-plugin-native-helsinki
773775
@curl -X POST -F plugin=@target/release/libhelsinki.so \
774776
http://127.0.0.1:4545/api/v1/plugins
775777

778+
# Download Supertonic TTS models
779+
download-supertonic-models:
780+
@echo "Downloading Supertonic TTS models..."
781+
@mkdir -p models
782+
@if [ -f models/supertonic-v2-onnx.tar.bz2 ]; then \
783+
echo "✓ Supertonic archive already exists at models/supertonic-v2-onnx.tar.bz2"; \
784+
else \
785+
echo "Downloading supertonic-v2-onnx.tar.bz2..." && \
786+
curl -L -o models/supertonic-v2-onnx.tar.bz2 \
787+
https://huggingface.co/streamkit/supertonic-models/resolve/main/supertonic-v2-onnx.tar.bz2 && \
788+
echo "✓ Supertonic archive downloaded"; \
789+
fi
790+
@if [ -d models/supertonic-v2-onnx ]; then \
791+
echo "✓ Supertonic models already extracted at models/supertonic-v2-onnx"; \
792+
else \
793+
echo "Extracting models..." && \
794+
cd models && tar xf supertonic-v2-onnx.tar.bz2 && \
795+
echo "✓ Supertonic v2 models ready at models/supertonic-v2-onnx (5 languages, 10 voices)"; \
796+
fi
797+
798+
# Setup Supertonic TTS (download models)
799+
setup-supertonic: download-supertonic-models
800+
@echo "✓ Supertonic TTS setup complete!"
801+
802+
# Build native Supertonic TTS plugin
803+
[working-directory: 'plugins/native/supertonic']
804+
build-plugin-native-supertonic:
805+
@echo "Building native Supertonic TTS plugin..."
806+
@cargo build --release
807+
808+
# Upload Supertonic plugin to running server
809+
[working-directory: 'plugins/native/supertonic']
810+
upload-supertonic-plugin: build-plugin-native-supertonic
811+
@echo "Uploading Supertonic plugin to server..."
812+
@curl -X POST -F plugin=@target/release/libsupertonic.so \
813+
http://127.0.0.1:4545/api/v1/plugins
814+
776815
# Build specific native plugin by name
777816
build-plugin-native name:
778817
@just build-plugin-native-{{name}}
779818

780819
# Build all native plugin examples
781-
build-plugins-native: build-plugin-native-gain build-plugin-native-whisper build-plugin-native-kokoro build-plugin-native-piper build-plugin-native-matcha build-plugin-native-sensevoice build-plugin-native-nllb build-plugin-native-vad build-plugin-native-helsinki
820+
build-plugins-native: build-plugin-native-gain build-plugin-native-whisper build-plugin-native-kokoro build-plugin-native-piper build-plugin-native-matcha build-plugin-native-sensevoice build-plugin-native-nllb build-plugin-native-vad build-plugin-native-helsinki build-plugin-native-supertonic
782821

783822
## Combined
784823

@@ -812,7 +851,7 @@ copy-plugins-native:
812851
cp examples/plugins/gain-native/target/release/libgain_plugin_native.* .plugins/native/ 2>/dev/null || true
813852

814853
# Official native plugins (repo-local)
815-
for name in whisper kokoro piper matcha vad sensevoice nllb helsinki; do
854+
for name in whisper kokoro piper matcha vad sensevoice nllb helsinki supertonic; do
816855
for f in \
817856
plugins/native/"$name"/target/release/lib"$name".so \
818857
plugins/native/"$name"/target/release/lib"$name".so.* \

marketplace/official-plugins.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,34 @@
210210
}
211211
]
212212
},
213+
{
214+
"id": "supertonic",
215+
"name": "Supertonic",
216+
"version": "0.1.0",
217+
"node_kind": "supertonic",
218+
"kind": "native",
219+
"entrypoint": "libsupertonic.so",
220+
"artifact": "plugins/native/supertonic/target/release/libsupertonic.so",
221+
"description": "Multilingual TTS using Supertonic (66M params, 5 languages, up to 167x real-time)",
222+
"license": "MPL-2.0",
223+
"models": [
224+
{
225+
"id": "supertonic-v2-onnx",
226+
"name": "Supertonic v2 ONNX models",
227+
"default": true,
228+
"source": "huggingface",
229+
"repo_id": "streamkit/supertonic-models",
230+
"revision": "main",
231+
"files": [
232+
"supertonic-v2-onnx.tar.bz2"
233+
],
234+
"expected_size_bytes": 244451376,
235+
"license": "MIT",
236+
"license_url": "https://github.com/supertone-inc/supertonic/blob/main/LICENSE",
237+
"sha256": "29e18bfdcbfbdd8bef25204b19be21d13fda36d4e66fe31c74e2a01dad457cec"
238+
}
239+
]
240+
},
213241
{
214242
"id": "vad",
215243
"name": "VAD",

0 commit comments

Comments
 (0)