Skip to main content

A python library to read and write a subset of TextGrid file format

Project description

TonkineseGrid for TextGrid file format

This is a python library that can read and write a subset of TextGrid file format, with full type hint, and some extra methods to manipulate intervals.

Notice that this library does not support read file that contains TextTier class. Also this a side project has no full test of the codebase, therefore it is not production ready. Please use it at your own risk

Updates

  • 2024-10-19 short format and utf-16 encoding is supported in both reading and saving

  • 2024-11-05

    • add better error messages while reading TextGrid files
    • add two methods in IntervalTier, extend() and extend_from()
    • add format parameter in TextGrid.read() to specify whether it is full or short format.
  • 2024-12-19

    • "rename" __repr__() to to_short_str() in class TextGrid

Basic Usage

Get started with installing the package (>=python3.9).

pip install tonkinese_grid

Then you can use it like the following.

from tonkinese_grid import TextGrid

textgrid = TextGrid.read("file.TextGrid")
for items in textgrid:
    for interval in items:
        print(interval)

new = TextGrid(0, 2.5)
new.append_new(0, 2.5, "words")
new[0].append_new(0, 1, "hello")
new[0].append_new(1, 2.5, "world")
new.save("HelloWorld.TextGrid")

Classes And Methods

This section list basic information about the classes and their methods. For more details, please read the source code

class Interval:
    min: float
    max: float
    text: str
    @staticmethod
    def is_continuous(prev: "Interval", curr: "Interval") -> bool:

class IntervalList:
    """a wrapper of list of intervals, which makes sure intervals inside of it
    is continuous and provide some other useful methods."""
    def __getitem__(self, idx: int) -> Interval: ...
    def __iter__(self) -> Iterator[Interval]: ...
    def __len__(self) -> int: ...
    def size(self) -> int: ...
    def slice(
        self,
        start: Optional[int] = None,
        stop: Optional[int] = None,
        step: Optional[int] = None,
    ) -> IntervalList: ...
    def clear(self) -> None: ...
    def copy(self) -> IntervalList: ...
    def append(self, interval: Interval) -> None: ...
    def append_new(self, min: float, max: float, text: str) -> None: ...
    def extend(self, intervals: IntervalList) -> None: ...
    def extend_from(self, intervals: list[Interval]) -> None: ...
    def replace(self, idx: int, text: str) -> None: ...
    def move_offset(self, idx: int, offset: float) -> None: ...
    def move_offset_by_dur(self, idx: int, dur: float) -> None: ...
    def split_insert(self, idx: int, text: str, dur: float) -> None: ...
    def split_append(self, idx: int, text: str, dur: float) -> None: ...
    def merge(self, start: int, end: int, text: str) -> None: ...

class IntervalTier:
    """Has the same methods with IntervalList"""
    min: float
    max: float
    name: str
    intervals: IntervalList

class TextGrid:
    min: float
    max: float
    items: list[IntervalTier]
    def __iter__(self) -> Iterator[IntervalTier]: ...
    def __str__(self) -> str: ...
    def to_short_str(self) -> str: ...
    def __getitem__(self, idx: int) -> IntervalTier: ...
    def __setitem__(self, idx: int, tier: IntervalTier) -> None: ...
    @classmethod
    def read(cls, file: str, format: str="full", encoding: str="utf-8") -> "TextGrid": ...
    def size(self) -> int: ...
    def copy(self) -> "TextGrid": ...
    def save(self, path: str, format: str="full", encoding: str="utf-8") -> None: ...
    def append_new(self, min: float, max: float, name: str) -> None: ...
    def append(self, intervals: IntervalTier) -> None: ...

Credit

textgrid

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tonkinese_grid-2024.0.0a5.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tonkinese_grid-2024.0.0a5-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file tonkinese_grid-2024.0.0a5.tar.gz.

File metadata

  • Download URL: tonkinese_grid-2024.0.0a5.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.2

File hashes

Hashes for tonkinese_grid-2024.0.0a5.tar.gz
Algorithm Hash digest
SHA256 f696008caeef9cd31d2018dd9c4db0e4debb1c7d2f6ee21966296cc7f47d9710
MD5 4fbc6133211e7e4597ba448eb10717be
BLAKE2b-256 0ffd276d32b4961f875c7054319935c7ceabd1e66dbdb1baab7daf4854390ea6

See more details on using hashes here.

File details

Details for the file tonkinese_grid-2024.0.0a5-py3-none-any.whl.

File metadata

File hashes

Hashes for tonkinese_grid-2024.0.0a5-py3-none-any.whl
Algorithm Hash digest
SHA256 f750e0e231b1a9120f07ec5e53f98040fddee6ada13788dff879b2eff4bcb29d
MD5 135f7a49995300cd1b1d52f816680f45
BLAKE2b-256 34a86020d9802363f5e11a3feb4b88b55e8c27a604e2e52cc04d5f269c229e38

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page