Skip to main content

TTSVowelViz

TTSVowelViz is a tool for visualizing static and dynamic vowel spaces during the training of text-to-speech ( TTS) models. This helps researchers and developers monitor the progression of vowel quality over training steps.


✨ Features

  • 📊 Visualize static and dynamic vowel spaces across training steps.
  • 📈 Track vowel space evolution during model training.
  • 🔍 Examine the shape of the learned vowel space.
  • 🆚 Compare learned vowel spaces at training steps against the ground truth.
  • 🛠️ Customize visualizations with various user-defined inputs and configurations.
  • 🧠 Analyze, evaluate, and interpret TTS systems.
  • 🧩 Easily integrate into TTS training pipelines with minimal effort.

📦 Installation

Install using pip:

pip install ttsvowelviz

Or install the latest version from source:

git clone https://github.com/pasindu-ud/ttsvowelviz.git
cd ttsvowelviz
pip install .

🔧 Usage

Basic Example

from typing import List, Union

from ttsvowelviz import Synthesizer, TTSVowelViz
from ttsvowelviz.forced_aligner import ForcedAligner, WebMAUSBasicAligner
from ttsvowelviz.formant_extractor import FormantExtractor, PraatFormantExtractor


class ExampleSynthesizer(Synthesizer):
    def synthesize(self, step: int, text: str) -> str:
        # Code to generate speech from text at a given step
        return "Path to the synthesized audio file"


static_vowels: List[str] = ["3:", "6", "6:", "I", "O", "U", "e", "i:", "o:", "{", "}:"]
static_time_points: List[Union[int, float]] = [50]
point_vowels: List[str] = ["i:", "o:", "6:"]
dynamic_vowels: List[str] = ["@}", "Ae", "e:", "oI", "{I", "{O"]
dynamic_time_points: List[Union[int, float]] = [20, 50, 80]
intermediate_steps: List[int] = [0, 1000, 3000]
synthesizer: Synthesizer = ExampleSynthesizer()
forced_aligner: ForcedAligner = WebMAUSBasicAligner(language="eng-NZ")
formant_extractor: FormantExtractor = PraatFormantExtractor()
text_list: List[str] = ["Heard foot hud heed head had hard hod thought goose hid heard.",
                        "How'd hear oat hide lloyd hare aid how'd."]
ground_truth_src_dir_path: str = "Path to the ground truth directory"
vowel_space_dst_dir_path: str = "Path to the directory where vowel spaces should be saved"

tool: TTSVowelViz = TTSVowelViz(static_vowels=static_vowels, static_time_points=static_time_points,
                                point_vowels=point_vowels, dynamic_vowels=dynamic_vowels,
                                dynamic_time_points=dynamic_time_points, intermediate_steps=intermediate_steps,
                                synthesizer=synthesizer, forced_aligner=forced_aligner,
                                formant_extractor=formant_extractor, text_list=text_list,
                                ground_truth_src_dir_path=ground_truth_src_dir_path,
                                vowel_space_dst_dir_path=vowel_space_dst_dir_path)
for s in intermediate_steps:
    tool.execute(step=s)

📚 Citation

If you use this tool in your research, please cite:

@inproceedings{ttsvowelviz-2026,
  author    = {Pasindu Udawatta and Jesin James and B.T. Balamurali and Catherine I. Watson and Ake Nicholas and Binu Abeysinghe},
  title     = {{TTSVowelViz: A Tool for Visualising Text-to-Speech Model Training via Vowel Spaces}},
  booktitle = {Proceedings of the Language Resources and Evaluation Conference},
  month     = {May},
  year      = {2026},
  address   = {Palma, Spain},
  publisher = {European Language Resources Association},
  url       = {https://pypi.org/project/ttsvowelviz/}}

📄 License

MIT License. See LICENSE file for details.


Metadata

Release files for ttsvowelviz 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ttsvowelviz 0.1.1
File Size Uploaded
ttsvowelviz-0.1.1.tar.gz 17.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ttsvowelviz 0.1.1
File Interpreter ABI Platform
ttsvowelviz-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 39.5 kB

Release files / ttsvowelviz-0.1.1.tar.gz

Download URL ttsvowelviz-0.1.1.tar.gz
Size 17.6 kB
Tags Source
SHA-256 checksum
How to use checksums
899bb86eabc42325b560825aced1ccd8f63d337c351f86146a797dc0d2a658bf
BLAKE2b-256 checksum
How to use checksums
602a6369cc30cdaab7970e3edf67360a7c2c861ae69146f64d5689e45cfbc088
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / ttsvowelviz-0.1.1-py3-none-any.whl

Download URL ttsvowelviz-0.1.1-py3-none-any.whl
Size 22.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b977237fbb6dbd1924fc6edd613c960178ec923b9ce4071c1f5a892da74d0e5d
BLAKE2b-256 checksum
How to use checksums
34d05fd1b4d0c80a5ef1b2543c66f2ecda37501f4436f5c63b1c7bf97c9819ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page