MatchaTTS / README.md
cchiou-amba's picture
Add LICENSE and upstream attribution/modification notices
de05c01 verified
|
Raw History Blame Contribute Delete
2.83 kB
---
library_name: pytorch
license: apache-2.0
---
# Matcha-TTS LJSpeech (Ambarella N1-655 CVflow v3 NVP)
Matcha-TTS is a fast conditional flow-matching acoustic text-to-speech architecture trained on LJSpeech-1.1 (Public Domain). It is partitioned at the duration/length regulator into a static-shape phoneme encoder (`matcha_enc.bin`) and a flow-matching ODE decoder (`matcha_dec.bin`) that outputs 80-bin log-Mel spectrograms (`[1, 80, 500]`) for synthesis with `HiFiGAN` on the Ambarella N1-655 CVflow v3 NVP.
Original paper: [Matcha-TTS: A fast TTS architecture with conditional flow matching](https://arxiv.org/abs/2309.03199)
Model Configuration:
- Reference implementation: [https://github.com/shivammehta25/Matcha-TTS](https://github.com/shivammehta25/Matcha-TTS)
- Original Weight: [https://huggingface.co/csukuangfj/matcha-icefall-en_US-ljspeech](https://huggingface.co/csukuangfj/matcha-icefall-en_US-ljspeech)
- Dataset: LJSpeech-1.1 (Public Domain)
- License: Apache-2.0 / MIT (`LICENSE`, trained on Public Domain LJSpeech-1.1)
- Support Cooper version:
- CNNGen: `[3.9.0 / n1-655x]` (`cavalry_gen 3.0.4`)
## Upstream Attribution & Modification Notice
- **Upstream Copyright**: Matcha-TTS architecture Copyright (c) 2023 Shivam Mehta (`shivammehta25/Matcha-TTS`, MIT License); `k2-fsa/icefall` LJSpeech recipe and ONNX export Copyright (c) `k2-fsa/icefall` & `sherpa-onnx` contributors (`csukuangfj/matcha-icefall-en_US-ljspeech`, Apache License 2.0); trained on the LJSpeech-1.1 dataset (Public Domain).
- **Modification Notice (Apache-2.0 Section 4(b))**: Modified by Ambarella International LLC (2026). Partitioned at the duration predictor / length regulator into Stage 0 (`matcha_enc.bin`, `[1, 128]` -> `mu_x [1, 80, 128], logw [1, 1, 128]`) and Stage 1 (`matcha_dec.bin`, `mu_y [1, 80, 500]` -> `mel [1, 80, 500]`), and compiled via Ambarella Cooper SDK CNNGen 3.9.0 (`cavalry_gen 3.0.4`) for CVflow v3 N1-655 (`vdg_arch = 0xB`).
## NVP Port & Runtime Specification
- **Target SoC**: Ambarella N1-655 (`vdg_arch = 0xB`, CVflow v3 `cavalry_gen` 3.0.4)
- **Archive members**: `matcha_enc.bin`, `matcha_dec.bin`, `tokens.txt`
- **Stage 0 (`matcha_enc.bin`)**: `x` `[1, 128]` int16, `x_mask` `[1, 1, 128]` FP16 -> `mu_x` `[1, 80, 128]`, `logw` `[1, 1, 128]` IEEE FP16
- **CPU Bridge**: `d_i = ceil(exp(logw_i) * x_mask_i * length_scale)`, expand `mu_x` to `mu_y` `[1, 80, 500]` and `y_mask` `[1, 1, 500]`
- **Stage 1 (`matcha_dec.bin`)**: `mu_y` `[1, 80, 500]`, `y_mask` `[1, 1, 500]`, `z` `[1, 80, 500]` FP16 -> `mel` `[1, 80, 500]` IEEE FP16 (chains into HiFi-GAN)
| Model | Device | Compression | Model Link |
| :---: | :---: | :---: | :--- |
| MatchaTTS | N1-655 | Amba_optimized | [Model_Link](https://huggingface.co/cchiou-amba/MatchaTTS/blob/main/n1-655_matcha_ljspeech_amba_optimized.tar.gz) |