ONNX
English
Akjava's picture
Update README.md
0b70ef0 verified
---
license: cc-by-4.0
datasets:
- CSTR-Edinburgh/vctk
language:
- en
---
[Spaces Demo](https://huggingface.co/spaces/Akjava/matcha-tts_vctk-onnx)
Trained with Matcha-TTS(Not my work,I just converted to onnx) - [Github](https://github.com/shivammehta25/Matcha-TTS) | [Paper](https://arxiv.org/abs/2309.03199)
How to Infer see [Github page](https://github.com/akjava/Matcha-TTS-Japanese/tree/main/examples)
## License
You have to follow the cc-by-4.0 vctk license.
### Datasets License
- VCTK Dataset license are cc-by-4.0
### Tools License
These tools did not effect output license.
- Matcha-TTS - MIT
- ONNX Simplifier - Apache2.0
- onnxruntime - MIT
### Converted model Owner(me)
I release my output under MIT License.If you want your license ,convert it by yourself
## Onnx File Type
All models are simplify(If you need original,export by yourself)
Vocoder:hifigan_univ_v1(some english speaker avoid robotic)
- vctk_univ_simplify.onnx
- vctk_univ_simplify_q8.onnx - Quantized Github page friendly small size ,but 3-5 times slow
Vocoder:hifigan_T2_v1(Good for English)
- vctk_t2_simplify.onnx
- vctk_t2_simplify_q8.onnx - Quantized Github page friendly small size ,but 3-5 times slow
## How to Convert
### Export Model
see Matcha-TTS [ONNX export](https://github.com/shivammehta25/Matcha-TTS)
```
python -m matcha.onnx.export matcha_vctk.ckpt vctk_t2.onnx --vocoder-name "hifigan_T2_v1" --vocoder-checkpoint "generator_v1"
```
### simplify model
```
from onnxsim import simplify
import onnx
import argparse
parser = argparse.ArgumentParser(
description="create simplify onnx"
)
parser.add_argument(
"--input","-i",
type=str,required=True
)
parser.add_argument(
"--output","-o",
type=str
)
args = parser.parse_args()
src_model_path = args.input
if args.output == None:
dst_model_path = src_model_path.replace(".onnx","_simplify.onnx")
else:
dst_model_path = args.output
model = onnx.load(src_model_path)
model_simp, check = simplify(model)
onnx.save(model_simp, dst_model_path)
```
### quantize model
```
from onnxruntime.quantization import quantize_dynamic, QuantType
import argparse
parser = argparse.ArgumentParser(
description="create quantized onnx"
)
parser.add_argument(
"--input","-i",
type=str,required=True
)
parser.add_argument(
"--output","-o",
type=str
)
args = parser.parse_args()
src_model_path = args.input
if args.output == None:
dst_model_path = src_model_path.replace(".onnx","_q8.onnx")
else:
dst_model_path = args.output
# only QUInt8 works well
quantized_model = quantize_dynamic(src_model_path, dst_model_path, weight_type=QuantType.QUInt8)
```