Skip to main content

CLI tool to extract audio files and metadata from Parquet datasets

Project description

vakya

CLI tool to extract audio files and metadata from Parquet datasets into a structured, portable format.

Installation

pip install vakya

Quick Start

  1. Inspect a Parquet file to see its columns:

    vakya schema data/train-00000.parquet
    
  2. Validate your config (or use defaults):

    vakya validate-config my_config.yaml
    
  3. Extract everything:

    vakya extract ./my_dataset --config my_config.yaml
    

Configuration (YAML)

All behavior is controlled via a YAML config file.

# vakya_config.yaml

# Column in the Parquet file that contains audio data (dict with "bytes").
audio_column: audio

# Output audio file extension.
audio_format: flac

# Column used for audio filename.
filename_column: fname

# List of columns to include in the metadata object.
metadata_columns:
  - fname
  - text
  - duration
  - gender
  - speaker_id
  - lang

# Name of the master JSONL file. Set to null to disable.
master_jsonl: master.jsonl

# Number of parallel workers (1 to CPU count).
workers: 1

# Whether to overwrite existing audio files.
overwrite: false

# Log level: DEBUG | INFO | WARNING | ERROR
log_level: INFO

CLI Commands

  • vakya extract ROOT_DIR: Recursively finds Parquet files and extracts them.
  • vakya validate-config CONFIG_PATH: Checks if your YAML config is valid.
  • vakya schema PARQUET_FILE: Prints the Arrow schema and row count of a Parquet file.

Output Format

root_dataset/
├── hindi/
│   ├── train-00000.parquet
│   ├── hindi_audio/              ← Audio files here
│   │   ├── sample_001.flac
│   │   └── sample_002.flac
│   └── hindi.jsonl               ← Metadata for this folder
├── master.jsonl                  ← Aggregated metadata
└── config.yaml

Each line in the .jsonl files:

{
  "audio_path": "hindi/hindi_audio/sample_001.flac",
  "metadata": {
    "fname": "sample_001",
    "text": "Hello world",
    "duration": 3.45,
    "gender": "female"
  }
}

Development

Install development dependencies:

pip install -e ".[dev]"

Run tests:

pytest

Run linting (Ruff):

ruff check src/ tests/

Run type checking (Mypy):

mypy src/ tests/

CI/CD and Branching

  • Main Branch: master
  • CI: Every push/PR to master runs linting, type checking, and tests.
  • Publishing: Automatic publishing to PyPI on version tags (v*.*.*) after tests pass. Requires GitHub environment approval.

License

MIT

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

vakya-0.1.2.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

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

vakya-0.1.2-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file vakya-0.1.2.tar.gz.

File metadata

  • Download URL: vakya-0.1.2.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vakya-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9de4fefb23d8a70b54973eea95dc196b12cd2d00bcf8179de792969f1dd4df18
MD5 849c04904857618c8914deaa4795c019
BLAKE2b-256 e7d8152a1a30d129f8d27b9537120a30520bc32d34b28c1bb7b5c8aa01f15590

See more details on using hashes here.

Provenance

The following attestation bundles were made for vakya-0.1.2.tar.gz:

Publisher: publish.yml on AbhijithMallya/vakya

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vakya-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: vakya-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vakya-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7ec1ec0c88b6e1a8b3f4d1b2128abc4d4efb4aeea362a2d8bcb6bf00568c91b4
MD5 66c97a8dee75ad345be4f2d0f227308c
BLAKE2b-256 034f3ee3a842efa14bf46d84d002bf1f5f640d03e3f5a2bea5a9255e2d5aa366

See more details on using hashes here.

Provenance

The following attestation bundles were made for vakya-0.1.2-py3-none-any.whl:

Publisher: publish.yml on AbhijithMallya/vakya

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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