A VITS model by owensong, from owensong/inflect-nano-v2-onnx, packaged for phoonnx, our ONNX text-to-speech library.
| Architecture | VITS |
| Upstream | owensong/inflect-nano-v2-onnx |
| Author | owensong |
| Languages | en-us |
| Text input | espeak phonemes, IPA alphabet |
pip install --pre phoonnx
The phonemes come from the espeak-ng program, so install it too (for example
apt install espeak-ng). Without it, pip install --pre "phoonnx[espeak]" gives
phoonnx the espyak port of espeak-ng. Some espyak phonemes differ from those of
espeak-ng, so the voice can say some words wrong with espyak.
import wave
from phoonnx.model_manager import TTSModelManager
manager = TTSModelManager()
manager.load()
manager.merge_default_voices()
voice = manager.voices["inflect/nano-en"].load()
with wave.open("output.wav", "wb") as wav_file:
text = "..." # a sentence in en-us
voice.synthesize_wav(text, wav_file)
In OVOS, phoonnx installs the ovos-tts-plugin-phoonnx plugin. Select the voice in mycroft.conf:
{"tts": {"module": "ovos-tts-plugin-phoonnx", "ovos-tts-plugin-phoonnx": {"voice": "inflect/nano-en"}}}
phoonnx hands the text to scriptconv, our text conversion library, which normalises it and turns it into the model's input:
espeak: EspeakPhonemizer from scriptconv.phonemizers.mul, installed by the scriptconv[espeak] extra.inflect/nano-enThe upstream declares the licence apache-2.0 in the model card of owensong/inflect-nano-v2-onnx.
decode.onnx 13 MBduration.onnx 4 MB