| # Container Template for SoundsRight Subnet Miners | |
| Miners in [Bittensor's](https://bittensor.com/) [SoundsRight Subnet](https://github.com/synapsec-ai/SoundsRightSubnet) must containerize their models before uploading to HuggingFace. This repo serves as a template. | |
| The branches `DENOISING_16000HZ` and `DEREVERBERATION_16000HZ` contain this template fitted with [SGMSE+](https://huggingface.co/sp-uhh/speech-enhancement-sgmse) and are also helpful resources for how to incorporate your model. | |
| The `main` branch contains a template for a container that will spin up an API to communicate with the validator. The following entrypoints cannot be altered: | |
| 1. `/status/` : Communicates API status | |
| 2. `/prepare/` : Makes necessary preparations (downloading checkpoints, etc.) and initializes model | |
| 3. `/upload-audio/` : Upload audio files, save to noisy audio directory | |
| 4. `/enhance/` : Initialize model, enhance audio files, save to enhanced audio directory | |
| 5. `/download-enhanced/` : Download enhanced audio files | |
| To add your own model to this template, there are a few things that a miner must do: | |
| 1. Add the model files under the `model` directory. | |
| 2. Modify the `modelapi.prepare` method in `app/app.py` with necessary preparations to initialize your model. | |
| 3. Modify the `modelapi.enhance` method in `app/app.py` with the logic your model uses to enhance audio. | |
| 4. Update `dependencies` in `pyproject.toml` with the dependencies used by your model. | |
| 5. If you have directories other than `app` in your repository, be sure to modify the `Dockerfile` accordingly (reference line 12 in the `Dockerfile` for how to do this). | |
| 6. Cite your sources (if applicable). | |
| For your model to be processed by validators, there are a few formatting requirements. Note that the template already has been formatted to fit these guidelines. | |
| 1. API endpoints must as outlined above. | |
| 2. Port must be 6500. | |
| 3. Container must be configured to run as non-root user. |