polyvoice 0.6.0-alpha.7

Speaker diarization library for Rust — online and offline, ONNX-powered, ecosystem-agnostic
Documentation
# src/ffi

## Purpose

C FFI bindings (ABI v2) exposing polyvoice pipeline to C callers.

## Surfaces

- `polyvoice_pipeline_create(profile)`
- `polyvoice_pipeline_run(handle, samples, sample_rate)`
- `polyvoice_pipeline_free(handle)`
- `PolyvoicePipeline` — opaque C handle

## Dependencies

- `pipeline` — Pipeline orchestration
- `models` — ModelRegistry
- `types` — DiarizationConfig, Profile
- `vad` — VadConfig

## Invariants

- Every create has exactly one free (memory safety).
- C-visible structs use `#[repr(C)]`.

## Verification

```bash
cargo test --test ffi_smoke_test --features ffi
```

## Notes

- Header file: `include/polyvoice.h`
- Example usage: `examples/ffi_usage.c`