Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

opensmile: Developer Reference

Status: Current Last updated: 2026-07-29 18:27 EDT

Implementation guide for the opensmile command. For user-facing documentation, see User Guide: opensmile.


Implementation map

LayerLocationResponsibility
CLI argscrates/batchalign/src/cli/args/commands.rs: OpensmileArgsPositional input/output dirs, feature-set, lang
Catalog entrycrates/batchalign/src/recipe_runner/catalog.rsthe CatalogEntry for opensmile
Stage recipecrates/batchalign/src/recipe_runner/recipes.rsOPENSMILE_RECIPE
Audio prepShared media prep in crates/batchalign/src/runner/Converts audio to mono PCM artifact
Worker IPCbatchalign/inference/opensmile.py: extract_features()Loads openSMILE, returns feature dict
CSV writercrates/batchalign/src/commands/opensmile.rsTyped feature map → row-oriented CSV via csv crate

Positional I/O

opensmile does not use CommonOpts (PATHS... -o DIR). It uses positional INPUT_DIR OUTPUT_DIR syntax. This is an intentional deviation inherited from BA2 and documented in Command I/O.


Output format change from BA2

BA2 wrote a transposed CSV (feature per row, file per column). BA3 writes a row-oriented CSV (file per row, feature per column). This is a breaking output format change. The feature names and values are identical.


Worker IPC: opensmile task (V2 protocol)

execute_v2 request:
{
  "task": "opensmile",
  "audio_ref_id": <prepared-audio-ref>,
  "feature_set": "eGeMAPSv02",
  "feature_level": "functionals"
}

execute_v2 response:
{
  "features": { "F0semitoneFrom27.5Hz_sma3nz_amean": 12.3, ... }
}


This page last changed: 2026-07-29 (commit 36ab6582). The whole book last changed: 2026-09-17 (commit e9f67b7c).