{"id":28411452,"url":"https://github.com/hyunnnchoi/tethys-speech","last_synced_at":"2026-05-04T10:32:55.589Z","repository":{"id":294471409,"uuid":"987055099","full_name":"hyunnnchoi/tethys-speech","owner":"hyunnnchoi","description":"tf2 implementation of whisper \u0026 wav2vec2 models w/ distributed training for k8s/kubeflow","archived":false,"fork":false,"pushed_at":"2025-06-02T10:29:14.000Z","size":232,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-09T13:04:04.500Z","etag":null,"topics":["deep-learning","distributed-training","kubeflow","kubernetes","machine-learning","nlp","speech-recognition","speech-to-text","tensorflow","tfjob","wav2vec2","whisper"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyunnnchoi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-20T14:04:15.000Z","updated_at":"2025-06-02T10:29:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"3dbe74dd-442b-4efd-aebd-637cb392b120","html_url":"https://github.com/hyunnnchoi/tethys-speech","commit_stats":null,"previous_names":["hyunnnchoi/tethys-speech"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/hyunnnchoi/tethys-speech","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyunnnchoi%2Ftethys-speech","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyunnnchoi%2Ftethys-speech/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyunnnchoi%2Ftethys-speech/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyunnnchoi%2Ftethys-speech/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyunnnchoi","download_url":"https://codeload.github.com/hyunnnchoi/tethys-speech/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyunnnchoi%2Ftethys-speech/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261575454,"owners_count":23179520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-learning","distributed-training","kubeflow","kubernetes","machine-learning","nlp","speech-recognition","speech-to-text","tensorflow","tfjob","wav2vec2","whisper"],"created_at":"2025-06-02T16:00:45.751Z","updated_at":"2026-05-04T10:32:50.547Z","avatar_url":"https://github.com/hyunnnchoi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tethys-Speech\n\nA TensorFlow-based repository for speech recognition model implementation and distributed training.\n\n## Overview\n\nThis project includes precise TensorFlow implementations of two major speech recognition models, Whisper and Wav2Vec2, with full support for distributed training in Kubernetes environments. These implementations faithfully reproduce the original model architectures with high fidelity to their published specifications.\n\nThe jobs in this repository are specifically designed to serve as workloads for scheduler performance evaluation in distributed training environments.\n\n## Main Models\n\n- **Whisper**: Speech-to-text model developed by OpenAI, implemented with precise architecture matching the original design\n- **Wav2Vec2**: Self-supervised learning-based speech recognition model developed by Meta, implemented with detailed attention to the original architecture specifications\n\nBoth models are fully implemented in TensorFlow, providing an alternative to the original PyTorch implementations.\n\n## Directory Structure\n\n```\ntethys-speech/\n├── speech_jobs/         # Speech recognition model implementation files\n│   ├── whisper_dist.py  # Whisper model and distributed training code\n│   └── wav2vec2_dist.py # Wav2Vec2 model and distributed training code\n├── stable_jobs/         # Stabilized implementation files\n├── sample_tfjobs/       # Kubeflow TFJob configuration files\n│   ├── whisper-dist.yaml\n│   └── wav2vec2-dist.yaml\n```\n\n## Features\n\n- Whisper and Wav2Vec2 models precisely implemented in TensorFlow\n- Full distributed training support using TensorFlow's MultiWorkerMirroredStrategy\n- TFJob configurations optimized for performance evaluation of Kubernetes schedulers\n- Training monitoring and automatic checkpoint saving\n- Compatible with Kubeflow and Training Operator 1.7.0\n\n## Usage\n\n### Local Training\n\n```bash\npython speech_jobs/whisper_dist.py --batch_size 4 --num_batches 30\n```\n\n### Distributed Training (Kubeflow)\n\n```bash\nkubectl apply -f sample_tfjobs/whisper-dist.yaml\n```\n\n## Performance Metrics\n\nThe following metrics are automatically recorded during model training:\n- Training loss and accuracy\n- GPU and network usage\n- Job Completion Time (JCT)\n\n## Docker Image\n\nA pre-built Docker image with all dependencies is available on DockerHub:\n\n```\npotato4332/speech-image:0.0.1-beta\n```\n\n## Dependencies\n\n- TensorFlow 2.x\n- CUDA 11.x and cuDNN 8.x\n- NumPy\n- TensorFlow Datasets\n- Kubernetes (for distributed training)\n- Kubeflow Training Operator 1.7.0\n\n## Distributed Training\n\nThis implementation leverages TensorFlow's MultiWorkerMirroredStrategy for efficient distributed training across multiple nodes. It has been tested and optimized to work seamlessly with Kubeflow's TFJob operator, specifically version 1.7.0 of the Training Operator.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyunnnchoi%2Ftethys-speech","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyunnnchoi%2Ftethys-speech","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyunnnchoi%2Ftethys-speech/lists"}