ESPnet Model Zoo
Project description
ESPnet Model Zoo
This repository includes various models created by each user using ESPnet.
Install
pip install espnet_model_zoo
pip install torch # You need to install some modules manually
Obtain a model
>>> from espnet_model_zoo.downloader import ModelDownloader
>>> d = ModelDownloader("~/.cache/espnet") # Specify cachedir
>>> d = ModelDownloader() # <module_dir> is used as cachedir by default
To obtain a model, you need to give a model in the form of <user_name/model_name>
>>> d.download_and_unpack("kamo-naoyuki/mini_an4_asr_train_raw_bpe_valid.acc.best")
{"asr_train_config": <config path>, "asr_model_file": <model path>, ...}
Note that if the model already exists, downloading and unpacking is skipped.
You can also query a model with certain conditions.
>>> d.download_and_unpack(task="asr", corpus="wsj")
If multiple models are matched with the condition, latest model is selected. You can also specify the model using "version" option.
>>> d.download_and_unpack(task="asr", corpus="wsj", version=-1) # Get the latest model
>>> d.download_and_unpack(task="asr", corpus="wsj", version=-2) # Get previous model
You can also obtain it from the URL directly.
>>> d.download_and_unpack("https://zenodo.org/record/...")
[...]
Query model names
You can view the model names from our Zenodo community, https://zenodo.org/communities/espnet/,
or using query()
. All information are written in table.csv.
>>> d.query("name")
[...]
You can also show them with specifying certain conditions.
>>> d.query("name", task="asr")
[...]
Command line tools
-
espnet_model_zoo_query
# Query model name espnet_model_zoo_query --condition task=asr --condition corpus=wsj # Query the other key espnet_model_zoo_query --key url --condition task=asr --condition corpus=wsj
-
espnet_model_zoo_download
espnet_model_zoo_download <model_name> espnet_model_zoo_download --unpack true <model_name>
-
espnet_model_zoo_upload
export ACCESS_TOKEN=<access_token> espnet_zenodo_upload \ --file <packed_model> \ --title <title> \ --description <description> \ --creator_name <your-git-account>
Use a pretrained model for inference
ASR
>>> import soundfile
>>> from espnet_model_zoo.downloader import ModelDownloader
>>> from espnet2.bin.asr_inference import Speech2Text
>>> d = ModelDownloader()
>>> speech2text = Speech2Text(**d.download_and_unpack("user_name/model_name"))
>>> speech, rate = soundfile.read("speech.wav")
>>> speech2text(speech)
[(text, token, token_int, hypothesis object), ...]
TTS
>>> import soundfile
>>> from espnet_model_zoo.downloader import ModelDownloader
>>> from espnet2.bin.tts_inference import Text2Speech
>>> d = ModelDownloader()
>>> text2speech = Text2Speech(**d.download_and_unpack("user_name/model_name"))
>>> retval = text2speech("foobar")
>>> speech = retval[0]
>>> soundfile.write("out.wav", speech.numpy(), text2speech.fs, "PCM_16")
Register your model
-
Upload your model to Zenodo
You need to signup to Zenodo and create an access token to upload models. You can upload your own model by using
zenodo_upload
command freely, but we normally upload a model using recipes. -
Create a Pull Request to modify table.csv
You need to append you record at the last line.
-
Increment the third version number of setup.py, e.g. 0.0.3 -> 0.0.4
Update your model
If your model has some troubles, please modify the record at Zenodo directly or reupload a correct file using espnet_zenodo_upload
as another record.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for espnet_model_zoo-0.0.0a1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1dd01cd8f741e4e1c6461441039efa63ee008f1b3fd5b651b778d164ab63848e |
|
MD5 | 23944cfdde2db69332d3e3e959de0ac1 |
|
BLAKE2b-256 | 4541617a097b8180c19df0c225af6bdbe56d937bacd9f6bb2127c804d0ade658 |