YAML Metadata Warning: empty or missing yaml metadata in repo card
Check out the documentation for more information.
Container Template for SoundsRight Subnet Miners
Miners in Bittensor's SoundsRight Subnet 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+ for 16 kHz speech enhancement, and the branches DENOISING_48000HZ and DEREVERBERATION_48000HZ are fitted with SGMSE+ for 48 kHz speech enhancement for the denoising and dereverberation tasks. These 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:
/status/: Communicates API status/prepare/: Makes necessary preparations (downloading checkpoints, etc.) and initializes model/upload-audio/: Upload audio files, save to noisy audio directory/enhance/: Initialize model, enhance audio files, save to enhanced audio directory/download-enhanced/: Download enhanced audio files/reset/: Remove all existing audio files for another batch of enhancement
To add your own model to this template, there are a few things that a miner must do:
- Add the model files under the
modeldirectory. - Modify the
modelapi.preparemethod inapp/app.pywith necessary preparations to initialize your model. - Modify the
modelapi.enhancemethod inapp/app.pywith the logic your model uses to enhance audio. - Update
dependenciesinpyproject.tomlwith the dependencies used by your model. - If you have directories other than
appin your repository, be sure to modify theDockerfileaccordingly (reference line 12 in theDockerfilefor how to do this). - 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.
- API endpoints must as outlined above.
- Port must be 6500.
- Container must be configured to run as non-root user.
- Container is not reliant on having network access to function as intended.