Skip to content

Commit

Permalink
Pull all TTS binaries (#70)
Browse files Browse the repository at this point in the history
  • Loading branch information
TilmanGriesel authored Jan 12, 2025
1 parent 9f79e94 commit cf5384f
Show file tree
Hide file tree
Showing 12 changed files with 98 additions and 102 deletions.
5 changes: 1 addition & 4 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,4 @@
*.png binary
*.gif binary
*.ttf binary

# Git config
# git config core.eol lf
# git config core.autocrlf input
*.data filter=lfs diff=lfs merge=lfs -text
2 changes: 1 addition & 1 deletion .github/workflows/publish-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
password: ${{ secrets.DOCKER_API_KEY }}

- name: Pull TTS Model
run: ./services/web/scripts/pull_tts_model.sh
run: python ./services/web/scripts/pull_tts_assets.py

- name: Build and Push API Image
run: |
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,7 @@ output
/docs/.vitepress/cache
*.bak
/services/web/src/static/vendor/tts-sherpa-onnx

# binary
*.wasm
*.data
2 changes: 1 addition & 1 deletion docker/docker-compose.base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,4 @@ networks:

volumes:
ollama-data:
elasticsearch-data:
elasticsearch-data:
2 changes: 1 addition & 1 deletion docker/docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,4 @@ services:
healthcheck:
<<: *default-healthcheck
test: ["CMD", "curl", "-f", "http://localhost:5000/health"]
deploy: *shared-deploy
deploy: *shared-deploy
2 changes: 1 addition & 1 deletion docker/docker-compose.prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,4 @@ services:

volumes:
nginx-proxy-data:
nginx-proxy-letsencrypt:
nginx-proxy-letsencrypt:
2 changes: 1 addition & 1 deletion run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ function clean_environment() {

function pull_assets() {
echo "Pulling additional assets..."
./services/web/scripts/pull_tts_model.sh
python ./services/web/scripts/pull_tts_assets.py
}

function ensure_environment() {
Expand Down
88 changes: 88 additions & 0 deletions services/web/scripts/pull_tts_assets.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import os
import shutil
import sys
import tempfile
import time
import urllib.request
from pathlib import Path


def get_script_dir():
return Path(__file__).parent.resolve()


def setup_target_dir():
target_dir = (
get_script_dir().parent / "src" / "static" / "vendor" / "tts-sherpa-onnx"
)

if not target_dir.exists():
raise RuntimeError(f"Target directory does not exist: {target_dir}")
if not os.access(target_dir, os.W_OK):
raise RuntimeError(f"Target directory is not writable: {target_dir}")

return target_dir


def download_file(url, target_file, tmp_file, max_retries=3):
for attempt in range(max_retries):
try:
print(f"Downloading {target_file.name}...")
urllib.request.urlretrieve(url, tmp_file)

if not os.path.exists(tmp_file):
raise RuntimeError(f"Download file not found: {tmp_file}")
if os.path.getsize(tmp_file) == 0:
raise RuntimeError(f"Downloaded file is empty: {tmp_file}")

shutil.move(tmp_file, target_file)
print(f"Download completed successfully to: {target_file}")
return True

except Exception as e:
if attempt < max_retries - 1:
print(
f"Download failed, retrying (attempt {attempt + 1} of {max_retries})..."
)
time.sleep(2)
else:
print(f"Error downloading {url}: {str(e)}", file=sys.stderr)
return False


def main():
files = {
"sherpa-onnx-wasm-main-tts.data": "https://huggingface.co/spaces/k2-fsa/web-assembly-tts-sherpa-onnx-en/resolve/main/sherpa-onnx-wasm-main-tts.data", # noqa: E501
"sherpa-onnx-wasm-main.wasm": "https://huggingface.co/spaces/k2-fsa/web-assembly-tts-sherpa-onnx-en/resolve/main/sherpa-onnx-wasm-main.wasm", # noqa: E501
"sherpa-onnx-wasm-main-tts.wasm": "https://huggingface.co/spaces/k2-fsa/web-assembly-tts-sherpa-onnx-en/resolve/main/sherpa-onnx-wasm-main-tts.wasm", # noqa: E501
}

try:
target_dir = setup_target_dir()

print("Pulling Wasm client side TTS...")

with tempfile.TemporaryDirectory() as temp_dir:
for filename, url in files.items():
target_file = target_dir / filename

if target_file.exists():
print(f"File already exists at: {target_file}")
print("Skipping download")
continue

tmp_file = Path(temp_dir) / f"{filename}.tmp"

if not download_file(url, target_file, tmp_file):
return 1

print("All downloads completed successfully!")
return 0

except Exception as e:
print(f"Error: {str(e)}", file=sys.stderr)
return 1


if __name__ == "__main__":
sys.exit(main())
51 changes: 0 additions & 51 deletions services/web/scripts/pull_tts_model.sh

This file was deleted.

36 changes: 0 additions & 36 deletions services/web/src/static/vendor/tts-sherpa-onnx/.gitattributes
Original file line number Diff line number Diff line change
@@ -1,36 +0,0 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.parquet filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.safetensors filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
*.data filter=lfs diff=lfs merge=lfs -text

This file was deleted.

This file was deleted.

0 comments on commit cf5384f

Please sign in to comment.