kaldiio
Kaldi-ark loading and writing module
Decision gist · record as of 2026-08-14
Yes, if you work with Kaldi-based speech systems or need to read/write Kaldi archive formats in Python. The pure-Python implementation, low install friction, and stable feature set make it a practical choice for that niche. However, verify the license status before use in proprietary contexts, and note that maintenance is aging—critical bug fixes may be slow. If you need C++ performance or full Kaldi feature coverage, consider kaldi_native_io instead.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with a single runtime dependency (numpy).
- The package is in aging maintenance status with a last commit on 2025-03-06, though the repository remains active and not archived.
License · maintenance · safety
(unclear) — License treatment is unclear—no SPDX identifier or raw license text is available in the metadata. Verify the actual license before use in proprietary or restricted contexts.
last release 2025-03-06 (526 days) · last repo commit 2025-03-06 · 268 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,180,709 downloads/mo, #4,258 on PyPI
Alternatives
Verify before relying
pip install kaldiio
from kaldiio import ReadHelper
with ReadHelper('scp:file.scp') as reader:
for key, numpy_array in reader:
print(key, numpy_array.shape)- Whether the unclear license status reflects a genuine licensing gap or a metadata omission in the package metadata.
- Current compatibility with Kaldi versions beyond those tested during development.
- Performance characteristics when handling very large ark files or streaming from pipes.
What it is and what it does
Kaldiio is a pure-Python library for reading and writing Kaldi archive and script files, which are standard formats in speech recognition and audio processing workflows. It handles Kaldi matrices and vectors in binary, text, and compressed formats, and can read/write wav.scp files and work with pipes for streaming data. The library depends only on numpy and provides high-level helpers (ReadHelper, WriteHelper) that abstract away low-level format details, letting you iterate over utterance-keyed data or write batches without worrying whether the underlying format is compressed or text.
Kaldiio is designed for researchers and engineers working with Kaldi-based speech systems or audio feature pipelines. Unlike some alternatives that require C++ bindings, it is pure Python and thus easier to install and deploy. It supports sequential reading and writing, pipe-based I/O for integration with Unix tools, and extended formats (numpy, pickle, FLAC) beyond standard Kaldi types. The aging maintenance status suggests the core functionality is stable but new features are unlikely.
Use it for
- Load pre-computed acoustic features (MFCC, fbank) from Kaldi ark/scp files for training neural networks.
- Write neural network outputs back to Kaldi-compatible ark/scp format for downstream Kaldi decoding.
- Stream compressed or gzipped Kaldi archives via pipes in speech recognition pipelines.
- Read alignment (ali) files and utterance-indexed features for supervised learning workflows.
- Convert between Kaldi archive formats and extended formats (numpy, pickle) for research prototyping.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with Kaldi-based speech systems or need to read/write Kaldi archive formats in Python.
The pure-Python implementation, low install friction, and stable feature set make it a practical choice for that niche. However, verify the license status before use in proprietary contexts, and note that maintenance is aging—critical bug fixes may be slow. If you need C++ performance or full Kaldi feature coverage, consider kaldi_native_io instead.
Install
kaldiio on PyPI
Before you install
Low install friction with a single runtime dependency (numpy). The package is in aging maintenance status with a last commit on 2025-03-06, though the repository remains active and not archived.
License in practice
License treatment is unclear—no SPDX identifier or raw license text is available in the metadata. Verify the actual license before use in proprietary or restricted contexts.
Quickstart
pip install kaldiio
from kaldiio import ReadHelper
with ReadHelper('scp:file.scp') as reader:
for key, numpy_array in reader:
print(key, numpy_array.shape)
Verify before relying
- Whether the unclear license status reflects a genuine licensing gap or a metadata omission in the package metadata.
- Current compatibility with Kaldi versions beyond those tested during development.
- Performance characteristics when handling very large ark files or streaming from pipes.
Package facts
| License | Not declared unclear |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagenumpy |
| Maintenance | Aging 526 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,180,709 / month, #4,258 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: Science/ResearchProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Multimedia :: Sound/Audio :: Analysis |
Evidence: kaldiio-2.18.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “kaldi ark scp file io”
- kaldiioKaldiio reads and writes Kaldi archive (ark) and script (scp) files…
- kaldi-python-ioReads and writes Kaldi binary archives, alignment files, and neural…
- scpProvides file transfer over SSH using the SCP protocol via a paramiko…
Give your agent the search over MCP, or paste the wish link into any chat.
More Analysis packages
Pydub provides a high-level Python interface for loading, manipulating, and exporting audio files with simple operations like slicing, concatenation, and format conversion.
However, the abandoned status since 2021-03-10 means no future fixes or compatibility updates—use it only if you can tolerate potential issues with newer Python…
librosa provides audio and music signal processing algorithms and tools for building music information retrieval systems in Python.
Install it if you need to work with audio features, music analysis, or MIR tasks.
Performs high-quality sample-rate conversion (resampling) for audio signals, supporting both one-shot and streaming modes via a Python wrapper around libsoxr.
MoviePy is a Python library for video editing that reads, processes, and writes video and audio files by converting them to numpy arrays for frame-level manipulation and effect application.
Reads metadata (artist, title, duration, bitrate, and more) from audio files in formats including MP3, MP4, FLAC, OGG, WAV, and others, without writing or modifying tags.
Install it if you need to extract metadata from audio files without the overhead of a heavier library.
mir_eval computes standard accuracy metrics for music and audio information retrieval tasks, enabling transparent evaluation of audio processing algorithms.
Install it if you are evaluating audio or music processing algorithms and need reproducible metric computation.
See also kaldi-python-io · kaldifst · fastavro · audiofile · kaldi-native-fbank · soundfile · rosbags · scp · tomlrt · kaldialign