Skip to main content

No project description provided

Project description

Introduction

Python wrapper for Kaldi's native I/O. The internal implementation uses C++ code from Kaldi. A Python wrapper with pybind11 is provided to read ark/scp files from Kaldi in Python.

Note: This project is self-contained and does not depend on Kaldi.

Installation

pip install --verbose kaldi_native_io

or

git clone https://github.com/csukuangfj/kaldi_native_io
cd kaldi_native_io
python3 setup.py install

or

conda install -c kaldi_native_io kaldi_native_io

Features

  • Native support for ALL types of rspecifier and wspecifier since the C++ code is borrowed from Kaldi.

  • Support the following data types (More will be added later on request.)

    • Note: We also support Python bytes class
C++ Data Type Writer Sequential Reader Random Access Reader
Python's bytes BlobWriter SequentialBlobReader RandomAccessBlobReader
int32 Int32Writer SequentialInt32Reader RandomAccessInt32Reader
std::vector<int32> Int32VectorWriter SequentialInt32VectorReader RandomAccessInt32VectorReader
std::vector<int8> Int8VectorWriter SequentialInt8VectorReader RandomAccessInt8VectorReader
std::vector<std::vector<int32>> Int32VectorVectorWriter SequentialInt32VectorVectorReader RandomAccessInt32VectorVectorReader
std::vector<std::pair<int32, int32>> Int32PairVectorWriter SequentialInt32PairVectorReader RandomAccessInt32PairVectorReader
float FloatWriter SequentialFloatReader RandomAccessFloatReader
std::vector<std::pair<float, float>> FloatPairVectorWriter SequentialFloatPairVectorReader RandomAccessFloatPairVectorReader
double DoubleWriter SequentialDoubleReader RandomAccessDoubleReader
bool BoolWriter SequentialBoolReader RandomAccessBoolReader
std::string TokenWriter SequentialTokenReader RandomAccessTokenReader
std::vector<std::string> TokenVectorWriter SequentialTokenVectorReader RandomAccessTokenVectorReader
kaldi::Vector<float> FloatVectorWriter SequentialFloatVectorReader RandomAccessFloatVectorReader
kaldi::Vector<double> DoubleVectorWriter SequentialDoubleVectorReader RandomAccessDoubleVectorReader
kaldi::Matrix<float> FloatMatrixWriter SequentialFloatMatrixReader RandomAccessFloatMatrixReader
kaldi::Matrix<double> DoubleMatrixWriter SequentialDoubleMatrixReader RandomAccessDoubleMatrixReader
std::pair<kaldi::Matrix<float>, HtkHeader> HtkMatrixWriter SequentialHtkMatrixReader RandomAccessHtkMatrixReader
kaldi::CompressedMatrix CompressedMatrixWriter SequentialCompressedMatrixReader RandomAccessCompressedMatrixReader
kaldi::Posterior PosteriorWriter SequentialPosteriorReader RandomAccessPosteriorReader
kaldi::GausPost GaussPostWriter SequentialGaussPostReader RandomAccessGaussPostReader
kaldi::WaveInfo - SequentialWaveInfoReader RandomAccessWaveInfoReader
kaldi::WaveData - SequentialWaveReader RandomAccessWaveReader
MatrixShape - SequentialMatrixShapeReader RandomAccessMatrixShapeReader

Note:

  • MatrixShape does not exist in Kaldi. Its purpose is to get the shape information of a matrix without reading all the data.

Usage

Table readers and writers

Write

Create a writer instance with a wspecifier and use writer[key] = value.

For instance, the following code uses kaldi_native_io.FloatMatrixWriter to write kaldi::Matrix<float> to a wspecifier.

import numpy as np
import kaldi_native_io

base = "float_matrix"
wspecifier = f"ark,scp,t:{base}.ark,{base}.scp"

def test_float_matrix_writer():
    with kaldi_native_io.FloatMatrixWriter(wspecifier) as ko:
        ko.write("a", np.array([[1, 2], [3, 4]], dtype=np.float32))
        ko["b"] = np.array([[10, 20, 30], [40, 50, 60]], dtype=np.float32)

Read

Sequential Read

Create a sequential reader instance with an rspecifier and use for key, value in reader to read the file.

For instance, the following code uses kaldi_native_io.SequentialFloatMatrixReader to read kaldi::Matrix<float> from an rspecifier.

import numpy as np
import kaldi_native_io

base = "float_matrix"
rspecifier = f"scp:{base}.scp"

def test_sequential_float_matrix_reader():
    with kaldi_native_io.SequentialFloatMatrixReader(rspecifier) as ki:
        for key, value in ki:
            if key == "a":
                assert np.array_equal(
                    value, np.array([[1, 2], [3, 4]], dtype=np.float32)
                )
            elif key == "b":
                assert np.array_equal(
                    value,
                    np.array([[10, 20, 30], [40, 50, 60]], dtype=np.float32),
                )
            else:
                raise ValueError(f"Unknown key {key} with value {value}")

Random Access Read

Create a random access reader instance with an rspecifier and use reader[key] to read the file.

For instance, the following code uses kaldi_native_io.RandomAccessFloatMatrixReader to read kaldi::Matrix<float> from an rspecifier.

import numpy as np
import kaldi_native_io

base = "float_matrix"
rspecifier = f"scp:{base}.scp"

def test_random_access_float_matrix_reader():
    with kaldi_native_io.RandomAccessFloatMatrixReader(rspecifier) as ki:
        assert "b" in ki
        assert "a" in ki
        assert np.array_equal(
            ki["a"], np.array([[1, 2], [3, 4]], dtype=np.float32)
        )
        assert np.array_equal(
            ki["b"], np.array([[10, 20, 30], [40, 50, 60]], dtype=np.float32)
        )

There are unit tests for all supported types. Please visit https://github.com/csukuangfj/kaldi_native_io/tree/master/kaldi_native_io/python/tests for more examples.

Read and write a single matrix

See

def test_read_write_single_mat():
    arr = np.array(
        [
            [0, 1, 2, 22, 33],
            [3, 4, 5, -1, -3],
            [6, 7, 8, -9, 0],
            [9, 10, 11, 5, 100],
        ],
        dtype=np.float32,
    )
    mat = kaldi_native_io.FloatMatrix(arr)
    mat.write(wxfilename="binary.ark", binary=True)
    mat.write(wxfilename="matrix.txt", binary=False)

    m1 = kaldi_native_io.FloatMatrix.read("binary.ark")
    m2 = kaldi_native_io.FloatMatrix.read("matrix.txt")

    assert np.array_equal(mat, m1)
    assert np.array_equal(mat, m2)

    # read range
    # Note: the upper bound is inclusive!
    m3 = kaldi_native_io.FloatMatrix.read("binary.ark[0:1]")  # row 0 and row 1
    assert np.array_equal(mat.numpy()[0:2], m3.numpy())

    m4 = kaldi_native_io.FloatMatrix.read(
        "matrix.txt[:,3:4]"
    )  # column 3 and column 4
    assert np.array_equal(mat.numpy()[:, 3:5], m4.numpy())

    os.remove("binary.ark")
    os.remove("matrix.txt")

    a = np.array([[1, 2], [3, 4]], dtype=np.float32)
    b = np.array([[10, 20, 30], [40, 50, 60]], dtype=np.float32)
    with kaldi_native_io.FloatMatrixWriter("ark,scp:m.ark,m.scp") as ko:
        ko.write("a", a)
        ko["b"] = b

    """
    m.scp contains:
      a m.ark:2
      b m.ark:35
    """

    m5 = kaldi_native_io.FloatMatrix.read("m.ark:2")
    assert np.array_equal(m5.numpy(), a)

    m6 = kaldi_native_io.FloatMatrix.read("m.ark:35")
    assert np.array_equal(m6.numpy(), b)

    os.remove("m.scp")
    os.remove("m.ark")

Read and write a single vector

See

def test_read_write_single_vector():
    a = np.array([1, 2], dtype=np.float32)
    v = kaldi_native_io.FloatVector(a)
    v.write(wxfilename="binary.ark", binary=True)

    b = kaldi_native_io.FloatVector.read("binary.ark")
    assert np.array_equal(a, b.numpy())

    a = np.array([1, 2], dtype=np.float32)
    b = np.array([10.5], dtype=np.float32)
    with kaldi_native_io.FloatVectorWriter("ark,scp:v.ark,v.scp") as ko:
        ko.write("a", a)
        ko["b"] = b

    """
    v.scp contains:
      a v.ark:2
      b v.ark:22
    """
    va = kaldi_native_io.FloatVector.read("v.ark:2")
    assert np.array_equal(va.numpy(), a)

    vb = kaldi_native_io.FloatVector.read("v.ark:22")
    assert np.array_equal(vb.numpy(), b)

    os.remove("v.scp")
    os.remove("v.ark")
def test_read_write_single_vector():
    a = np.array([1, 2], dtype=np.float64)
    v = kaldi_native_io.DoubleVector(a)
    v.write(wxfilename="binary.ark", binary=True)

    b = kaldi_native_io.DoubleVector.read("binary.ark")
    assert np.array_equal(a, b.numpy())

    os.remove("binary.ark")

    a = np.array([1, 2], dtype=np.float64)
    b = np.array([10.5], dtype=np.float64)
    with kaldi_native_io.DoubleVectorWriter("ark,scp:v.ark,v.scp") as ko:
        ko.write("a", a)
        ko["b"] = b

    """
    v.scp contains:
      a v.ark:2
      b v.ark:30
    """
    va = kaldi_native_io.DoubleVector.read("v.ark:2")
    assert np.array_equal(va.numpy(), a)

    vb = kaldi_native_io.DoubleVector.read("v.ark:30")
    assert np.array_equal(vb.numpy(), b)

    os.remove("v.scp")
    os.remove("v.ark")

Read a single int32 vector

See https://github.com/csukuangfj/kaldi_native_io/blob/master/kaldi_native_io/python/tests/test_int32_vector_writer_reader.py

def test_read_single_item():
    a = [10, 20]
    b = [100, 200, 300]

    # You can also generate a text format by adding ",t" if you like
    #  with kaldi_native_io.Int32VectorWriter("ark,scp,t:v.ark,v.scp") as ko:
    with kaldi_native_io.Int32VectorWriter("ark,scp:v.ark,v.scp") as ko:
        ko.write("a", a)
        ko["b"] = b
    """
    v.scp contains:
      a v.ark:2
      b v.ark:21
    """

    va = kaldi_native_io.read_int32_vector("v.ark:2")
    assert va == a

    vb = kaldi_native_io.read_int32_vector("v.ark:21")
    assert va == b

Read/Write Waves

See

def test_wave_writer():
    file1 = "/ceph-fj/fangjun/open-source-2/kaldi_native_io/build/BAC009S0002W0123.wav"
    if not Path(file1).is_file():
        return

    file2 = "/ceph-fj/fangjun/open-source-2/kaldi_native_io/build/BAC009S0002W0124.wav"
    if not Path(file2).is_file():
        return

    print("-----test_wave_writer------")

    file2 = f"cat {file2} |"

    wave1 = kaldi_native_io.read_wave(file1)
    wave2 = kaldi_native_io.read_wave(file2)

    wspecifier = "ark,scp:wave.ark,wave.scp"
    with kaldi_native_io.WaveWriter(wspecifier) as ko:
        ko.write("a", wave1)
        ko["b"] = wave2
    """
    wave.scp has the following content:
      a wave.ark:2
      b wave.ark:123728
    """
    wave3 = kaldi_native_io.read_wave("wave.ark:2")
    wave4 = kaldi_native_io.read_wave("wave.ark:123728")

    assert wave1.sample_freq == wave3.sample_freq
    assert wave2.sample_freq == wave4.sample_freq

    assert np.array_equal(wave1.data.numpy(), wave3.data.numpy())
    assert np.array_equal(wave2.data.numpy(), wave4.data.numpy())

Read/Write Python's bytes

See

base = "blob"
wspecifier = f"ark,scp:{base}.ark,{base}.scp"
rspecifier = f"scp:{base}.scp"


def test_blob_writer():
    with kaldi_native_io.BlobWriter(wspecifier) as ko:
        ko.write("a", bytes([0x30, 0x31]))
        ko["b"] = b"1234"


def test_sequential_blob_reader():
    with kaldi_native_io.SequentialBlobReader(rspecifier) as ki:
        for key, value in ki:
            if key == "a":
                assert value == bytes([0x30, 0x31])
            elif key == "b":
                assert value == b"1234"
            else:
                raise ValueError(f"Unknown key {key} with value {value}")

def test_read_single_item():
    a = bytes([10, 20])
    b = b"1234"

    with kaldi_native_io.BlobWriter("ark,scp:b.ark,b.scp") as ko:
        ko.write("a", a)
        ko["b"] = b
    """
    b.scp contains:
      a b.ark:2
      b b.ark:20
    """

    va = kaldi_native_io.read_blob("b.ark:2")
    assert va == a, (va, a)

    vb = kaldi_native_io.read_blob("b.ark:20")
    assert vb == b, (vb, b)

    # test range read
    # [start:end], both ends are inclusive
    # Must satisfy 0 <= start <= end < length of the data

    # start 0, end 2
    vc = kaldi_native_io.read_blob("b.ark:20[0:2]")
    assert vc == b"123", (vc, b"123")

    # start 1, end 2
    vd = kaldi_native_io.read_blob("b.ark:20[1:2]")
    assert vd == b"23", (vd, b"23")

    # start 2, end 2
    ve = kaldi_native_io.read_blob("b.ark:20[2:2]")
    assert ve == b"3", (ve, b"3")

    # start 2, end -1
    # -1 means the end of the data
    vf = kaldi_native_io.read_blob("b.ark:20[2:-1]")
    assert vf == b"34", (vf, b"34")

    # [:] means all the data
    vg = kaldi_native_io.read_blob("b.ark:20[:]")
    assert vg == b"1234", (vg, b"1234")

    os.remove("b.scp")
    os.remove("b.ark")

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

kaldi_native_io-1.22.1.tar.gz (150.4 kB view details)

Uploaded Source

Built Distributions

kaldi_native_io-1.22.1-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12 Windows x86-64

kaldi_native_io-1.22.1-cp312-cp312-win32.whl (875.7 kB view details)

Uploaded CPython 3.12 Windows x86

kaldi_native_io-1.22.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

kaldi_native_io-1.22.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

kaldi_native_io-1.22.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

kaldi_native_io-1.22.1-cp312-cp312-macosx_10_9_universal2.whl (2.7 MB view details)

Uploaded CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

kaldi_native_io-1.22.1-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11 Windows x86-64

kaldi_native_io-1.22.1-cp311-cp311-win32.whl (876.4 kB view details)

Uploaded CPython 3.11 Windows x86

kaldi_native_io-1.22.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

kaldi_native_io-1.22.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

kaldi_native_io-1.22.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

kaldi_native_io-1.22.1-cp311-cp311-macosx_10_9_universal2.whl (2.7 MB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

kaldi_native_io-1.22.1-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10 Windows x86-64

kaldi_native_io-1.22.1-cp310-cp310-win32.whl (875.9 kB view details)

Uploaded CPython 3.10 Windows x86

kaldi_native_io-1.22.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

kaldi_native_io-1.22.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

kaldi_native_io-1.22.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

kaldi_native_io-1.22.1-cp310-cp310-macosx_10_9_universal2.whl (2.7 MB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

kaldi_native_io-1.22.1-cp39-cp39-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.9 Windows x86-64

kaldi_native_io-1.22.1-cp39-cp39-win32.whl (876.1 kB view details)

Uploaded CPython 3.9 Windows x86

kaldi_native_io-1.22.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

kaldi_native_io-1.22.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

kaldi_native_io-1.22.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

kaldi_native_io-1.22.1-cp39-cp39-macosx_10_9_universal2.whl (2.7 MB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

kaldi_native_io-1.22.1-cp38-cp38-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.8 Windows x86-64

kaldi_native_io-1.22.1-cp38-cp38-win32.whl (876.3 kB view details)

Uploaded CPython 3.8 Windows x86

kaldi_native_io-1.22.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

kaldi_native_io-1.22.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

kaldi_native_io-1.22.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

kaldi_native_io-1.22.1-cp38-cp38-macosx_10_9_universal2.whl (2.7 MB view details)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

kaldi_native_io-1.22.1-cp37-cp37m-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.7m Windows x86-64

kaldi_native_io-1.22.1-cp37-cp37m-win32.whl (876.3 kB view details)

Uploaded CPython 3.7m Windows x86

kaldi_native_io-1.22.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

kaldi_native_io-1.22.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

kaldi_native_io-1.22.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

kaldi_native_io-1.22.1-cp36-cp36m-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.6m Windows x86-64

kaldi_native_io-1.22.1-cp36-cp36m-win32.whl (876.0 kB view details)

Uploaded CPython 3.6m Windows x86

kaldi_native_io-1.22.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

kaldi_native_io-1.22.1-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686

File details

Details for the file kaldi_native_io-1.22.1.tar.gz.

File metadata

  • Download URL: kaldi_native_io-1.22.1.tar.gz
  • Upload date:
  • Size: 150.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for kaldi_native_io-1.22.1.tar.gz
Algorithm Hash digest
SHA256 a9d69d91226f564865dc4e5d1805a849c646228e594d48c8f52ec5fb912f5db7
MD5 a8088ef2b01d4189e2b91a8b2e7e1ac5
BLAKE2b-256 3828d9da9a2f520f29e477d19b7101b3d73abe439f4b9563ecfee3de07feb8c8

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b2f278448de0bde68ad85af0324aa3215ec1cafd0063a6ed076c9171b5028eed
MD5 ba49b314dd269c58f976838c34f44133
BLAKE2b-256 ddcc35556f549eca059299d895e011a25275dee4a627bf338a62ae592948e6bc

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 32a6097063982e157ac3abe3cd9fc8d58f298b26a2349db259b33e43b82a465c
MD5 3f46104721a0938eacdb6ae07f0f2390
BLAKE2b-256 1956eb58a1b54364ec9c221311a3a65367752af94276efed524a7f5f8a3dcccf

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c0953a28bb9cbfe084a7616b06d87f4ff8c4fe222939e08039e8cc77312c36c6
MD5 9bdf27194ab9f9b9ff6bef7c710c3758
BLAKE2b-256 865a9f4dfc1db8c2c68949be10c894f4461919f06762d7f51345d1192ef12de6

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ab143a6ff34b2f3b0df5f98719c552b995695e71077393ccfee34b534eef3cda
MD5 4e0cbedac9a5ee6cb3b6053b88a5dcf1
BLAKE2b-256 d16bb0aa0f0ceb72ae89433158786d6b462e21dbc3c5d2a324047613c8bf451e

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5b4d1f60bf3e737b394f2ed759c8353e864120c10a9181f19906a2382844c54d
MD5 8d4e7c286af048bf4312d98b673fbd34
BLAKE2b-256 9dcd9b79f835a18becb493bb89a213fb2cf7941e2bbeca2aa6043e0902d04ece

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5af8aec63d554dbca7d7c9ccedb1712497557b578cbfde090d2fed2c7e3cd4ab
MD5 bb35b0791c6de9656ea4927373e64047
BLAKE2b-256 c0daf85a5dbd9517e1eccc1b5854f9b6d1053621c9ebf581faea1e973946b4a6

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8d5010e1553836ea020e8638476cc81ffd27536caf4bfae7b5b0e785180ff2ab
MD5 649875cd8e4cbc33fd178a576058cc4a
BLAKE2b-256 3851f41e30b628ea933d396417f57186e31ed5d5c78cb5f72f342418f2aad737

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 1da2c31174406a213b45b9b6d3ca5a43d96d05727b2f56fd4ecdbe2f35c8caea
MD5 5e6a5360a5c5b356651e255685784707
BLAKE2b-256 7c34739042deec44f16f5d876e2e4052833193949d5d7ed73cbc4f18021e4384

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7b21218352bb759eca08776a18295f58c6cc6d6647aeb0ab91ee2b9918299895
MD5 04b83da9bdbdbfb7a2849727a702b403
BLAKE2b-256 5d4be84544745104add08dfd39749c97f0150c6fbbd47e07ad3186a2a9d96aac

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a1363457e9cc1d253640e385768c6462fcdfefc9cc0426cc9fd8dcab1867165d
MD5 0ce90f5a566ab4dd52257235c3d8f385
BLAKE2b-256 8d87ffe167081349adc294d763929dc0a57d0d4d37a145906456c092cab8e4a5

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 42a632371a4e35be04353b03b1ca02be2febbeaa712effa9f716512cbe85b0f7
MD5 96fa2dfd78570e7190b059158c132546
BLAKE2b-256 743ccea211e147ccc1f364f045708abaca9827d8f3e7b570b5a9369b40bb521f

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3dfb62584e3bb9c97d6bfdbd5d3bb5bc30bae1b5c5d2e3a4ebc2c28d9ed72958
MD5 550bf4b8ea7926ebaf2a67303ec516db
BLAKE2b-256 3800f3f0fb9e8c8a023e04f502bacbb8f76eec5ad4ef20b4d001b409cf2726af

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7145484b4d2c301dbd16b0c542f5ffc32333f1603a00cab3027374934386d536
MD5 264794ed9ad8b1f63130cb713c315646
BLAKE2b-256 47f52c34190be6b393616d5ffca9ae6a5f283ac696621c72e4d446679720d039

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 eacd4e5b69fdfdb157b8884572c9f51feab31b578428336445c5c247ede3d2c8
MD5 7a4367c2fa419b57b16d460fc2b44b74
BLAKE2b-256 252bfb2f160fe1cf0e9eb8430a75facd9eff63f4ecf6cdf11055686b0994a838

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d2bb3aa50a3aa8a054972906ed9d1613d2b83905d1b8da725d4b6924dddfc175
MD5 9a33f44a82b009c11007d5eb43d410e2
BLAKE2b-256 0820764c5232fc822dede2505194b7a53c1f08199397c264c28c5f70899c4a14

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 aaa94ccc1b621a1603f8105ba96b5f18a5bc162a6bc95159abe655adc23378e2
MD5 64455fb4903f9d468570fd3d281c057f
BLAKE2b-256 143607e0478a21482d45d3853635c6f44e1c05471048eb08199241fc6b8ede45

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3bedae8aacc794cd6a9e9edee285c2966c656879497328b539df71c34573d47f
MD5 5a120287d7277226d7cae1a5fbf8acba
BLAKE2b-256 e368019660269b71f148bbabb95974872c17bf3873f5537b9abb6a2da4caa695

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 165a606568814439cb8ad53b44c1a002edc8704076674de87b090ff7c1697468
MD5 495c9dc58a3d71177f7d66e948588043
BLAKE2b-256 214ae1436d781a9a2d7f6cdffae6f35122b67584b0309b311befdb539edbbf6d

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 82107bdf51dcdfd1012bc2d7167b12da6374bc5149fcf8356d0797fa5db4a31c
MD5 6174e3111ce307d1b87bee27f66ae0fc
BLAKE2b-256 f75f48b58a920f95355b84f6f4fd771e6d5a45562ead5bb228eb779b34687335

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp39-cp39-win32.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 347cdba971b485b1a076ab9d9052093b9403db3f628c821848cf1926c83c09a6
MD5 d675df39362691f2b365e64fb072276f
BLAKE2b-256 ecd3923b2d4267fa3a72c378a678feff419edff3903360dab5a7b4f071cb8a69

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3dcf72125c7612bab277d645bb3a7b55767decd298c556b1c36502b28b7defc3
MD5 4387034eb1054a8ead01fbd023bc9e71
BLAKE2b-256 7f8279561bc4fb466916313833ac2647d35ae11c5241f0e02b67c5c702852acd

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 51e2a5f3652b9d7f06d2626209e679d78350805e2ff014d4cf8f42f2d15f2bc3
MD5 42bf393a4ef125d3b6701de5acb37876
BLAKE2b-256 3231c7c1fb63de58e36bc187a5840476ffb6d25a1f5871ac480dde39dd0548ce

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0eb275d86cf5e57c35e78a15dc67843c527d523a6d4de355f1a429aeb54df625
MD5 04118a67ecad3db1d352d5af6d274e53
BLAKE2b-256 139d138d62cdd82057f75b599145929a69ac831b8dd202ea461a739a96b97d81

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 014085a7df03a2871cd594a67e24cc3687d0a9f23666da158a1ce2c3d6131e03
MD5 f6d1765e365a5b0b64cfbb8f48c24a44
BLAKE2b-256 5d9c1600d85a662d554ccd10f951dbd52b343d05d39f7a6fafffd86b52fccc23

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 fafacb39fc5f9c6bd9bfac5b8d3e969075af8ce972bfb0a522f87fb4ec264b29
MD5 fc9d0220ce0e2f8d5479a223a0cca55e
BLAKE2b-256 598d6431442041aaeb96a52c8c80b662bf249e3b1158b8f5c7e9ea0f407cfac3

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp38-cp38-win32.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 4b1c841220a04917cbefd41092b3fb2c050764b14dd3e4f69c185c259bafcc41
MD5 19df807fc3ecd627faf10cccf459a2c3
BLAKE2b-256 47d6601e96b9f1ab313e062f2084ff063f648cede12df0db82d57f9382cf9430

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 51e3b3d32ab3cc4038014468a76cd2fec532b4b3521f4daaa00101fe271dc05f
MD5 2c5b4033d35d31c848c68b7832d4c352
BLAKE2b-256 b7018211cce6bb949b76d3f8a2526559b6e9cdc3c9aadf66540ebcdfe981118c

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2286a36d8fa96e6f79c18fc23f3e1ac7280cfb011f53d5a1d87fc624371039d3
MD5 23102b3a4593503ab9de13f8b677e88f
BLAKE2b-256 cf63614773176b97d9fc76200f36d7d8776022ba6148419033c359edf9502fe5

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f29db52fff28ccdafa7448d39314081729d52b075e1d29ef6b51ec9fdcd0b04d
MD5 f9f921867b5b36caabe85ae2daa9db0d
BLAKE2b-256 7d68e130d88dd4d5a5b5a2aed9edaf745343cbbdf012bc2766f00aea956c22e3

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2e64392d9349b1dccec3ee4d485edaec51c17bbdddb56f48928aa75c9603c6ee
MD5 945934f87e9df6cd24559b0ae53d8828
BLAKE2b-256 9f16bca7ee097f55be16bf5bbfeaebe3b5bf2c2d54327c056f46abb8a83e179b

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 d4febf9f7f4d68fec847d6c001b9a29ee9d4285bb0b220b0059ec720d69ed015
MD5 e1fb71739688685ef6be3f6cc08dd098
BLAKE2b-256 d45736b8a6eb58b020bea53d4075db981209c0d90d349d5f0373c3427195d8fd

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp37-cp37m-win32.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 246631310bb1b7aa22726f4638576c7e543e293bd991435332e7034c59becc4c
MD5 c1e56a9671ea2de60a3649a2a3ca89f5
BLAKE2b-256 4cbdfc578456c186debcdf471f979257b6bd22ac301ec7a3f8e9732ec6ee96ad

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4941a7666a68744d4ba6b96f870c61fc8690c3d8decbf110384bb9676441ca98
MD5 c19433a6c902fad9f6cb3f92da18eb50
BLAKE2b-256 7ec3cbb91cb975d2ae88589540d436a144db88f74d1c4c6a31a0ab0107175c32

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 94b1d5073f5394103f9c794d55deff08ed8db26bcc25b159b754bc2f867c444e
MD5 563daa144a6134abcd4acb97ed2d62e4
BLAKE2b-256 1086c5eafb1653822765f971d20c9b56d0ce4de9643929207a8298faa19ec352

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cf92f8de74d30027a8d9c44bc66bf645c9ba734dc358722738e600f450447717
MD5 907043176fdbfac7228f27344095d65f
BLAKE2b-256 da3ef4bcded2a2a053ff15cb0e44df6ae7d235893031b7b99ae766b2e0ad438d

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 ad52e851d4bfe5eb7b77e58e1b7df82b5fe237051fcff9840cf5a345d08d22c0
MD5 d5e6a50eb892b9ce8ae45121f56ac7e4
BLAKE2b-256 8de8ddecccc1cad261352690747a59d3a6571b228eee0aaccfd16ad66a8a0180

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp36-cp36m-win32.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 9ef2904e6a12de30870a4aabc9073ee71f05f6211c22c6d39d5529e56288c707
MD5 4dd7348c86668d4888eb48677236481b
BLAKE2b-256 efe7a54429fe312263f384a2f8ee91e7a0969c0def6881f4672d7d99cdd24001

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5699c3bb438aaa890b730bc7b1d66297cf8e1132bba675b60197c0a26e9b1913
MD5 aefbbf41368bbee3e3c82faa000e7c2d
BLAKE2b-256 df0ecaaf6f50619e0282dcc537de1f9306fbf30a2091ca6018930ace0d30fb85

See more details on using hashes here.

File details

Details for the file kaldi_native_io-1.22.1-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for kaldi_native_io-1.22.1-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7f0d5a50f9aa414955f116c12a15c9e6c49eb5d4c1fb6dc0e785382838b81c5a
MD5 9e2f4f780a8b14758e662d0024d86783
BLAKE2b-256 0dde4307700c23064cbec9fcc71bb85540d45f0111b187e4515365b089037438

See more details on using hashes here.

Supported by

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