Metadata-Version: 2.4
Name: kaldi-python-io
Version: 1.2.2
Summary: A pure python IO interface for data accessing in kaldi
Home-page: https://github.com/funcwj/kaldi-python-io
Author: Jian Wu
Author-email: funcwj@foxmail.com
License: Apache V2.0
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.14
Dynamic: author
Dynamic: author-email
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

## Kaldi Python IO

A python (3.6+) wrapper for Kaldi's data accessing.

### Support Type

* Kaldi's binary archives (*.ark)
* Kaldi's scripts (alignments & features, *.scp)
* Kaldi nnet3 data examples in binary (*.egs)

### Install

`python setup.py install` or `pip install kaldi-python-io`

### Usage

* ArchiveReader && AlignArchiveReader
    ```python
    # allow only sequential index
    ark_reader = ArchiveReader("copy-feats ark:foo.ark ark:- |")
    for key, _ in ark_reader:
        print(key)
    ali_reader = AlignArchiveReader("gunzip -c foo.ali.gz |")
    for key, _ in ark_reader:
        print(key)
    ```

* Nnet3EgsReader
    ```python
    # allow only sequential index
    egs_reader = Nnet3EgsReader("foo.egs")
    for key, _ in egs_reader:
        print(key)
    ```

* ArchiveWriter
    ```python
    with ArchiveWriter("foo.ark", "foo.scp") as writer:
        for i in range(10):
            mat = np.random.rand(100, 20)
            writer.write(f"mat-{i}", mat)
    ```

* ScriptReader && AlignScriptReader
    ```python
    # allow sequential/random index
    scp_reader = ScriptReader("shuf foo.scp | head -n 2")
    for key, mat in scp_reader:
        print(f"{key}: {mat.shape}")
    ali_reader = AlignScriptReader("foo.ali.scp")
    for key, ali in ali_reader:
        print(f"{key}: {ali.shape}")
    ```
