Skip to main content
Version 2.0 separates model loading from audio processing, ships models via external downloads, and introduces breaking API changes. Use this guide to migrate safely and verify behavior before rolling to production.
License keys generated for version 1.3 do not work with 2.0. Generate a new key from the developer platform.

Quick migration checklist

1

Regenerate your license key

Create a new license key in the developer platform and store it in AIC_SDK_LICENSE.
2

Update model IDs

Replace 1.3 enums with 2.0 model IDs (for example QUAIL_VF_STT_L16quail-vf-l-16khz). Model Name Migration Guide.
3

Adopt the new architecture

Download models with aic.Model.download, load with aic.Model.from_file, then create a ProcessorConfig and Processor. Parameters are now set through ProcessorContext instead of the processor to enable safer multi-threaded usage.
4

Rename parameters

Update AICParameter/AICVadParameter to ProcessorParameter/VadParameter (CamelCase).
5

Validate async usage

Switch to ProcessorAsync for asynchronous processing and Model.download_async for downloads.

Breaking changes summary

  1. Import name changed from aic to aic_sdk (use import aic_sdk as aic for convenience).
  2. Model names changed (QuailSparrow, Quail-STTQuail).
  3. New license keys required; old keys fail in 2.0.
  4. New architecture splits Model, ProcessorConfig, Processor and ProcessorContext.
  5. Parameter enums renamed from SNAKE_CASE to CamelCase.
  6. Models are downloaded separately; no longer bundled.

Model naming changes

Models were renamed to clarify use cases, check the Model Name Migration Guide

Architecture changes

Benefits
  • Reuse one model across multiple processors.
  • Smaller package footprint because models download separately.

API changes (quick reference)

Parameters are now controlled through ProcessorContext (obtained via processor.get_processor_context()) instead of directly on the processor. This design enables safer multi-threaded usage where each thread can maintain its own processing context.

Parameter changes

ProcessorParameter (was AICParameter)

VadParameter (was AICVadParameter)

Complete migration example

Async processing

Removed features

  • AICModelType enum (use model ID strings such as "quail-vf-l-16khz").
  • process_interleaved() and process_sequential() (use process with numpy array (channels, frames)).
  • Context manager with Model(...) as m:.
  • NOISE_GATE_ENABLE parameter (now used automatically by the VAD).
  • process_submit() future API (use asyncio with ProcessorAsync).

New features

Model downloading

Model reuse

Configure the Processor

Model information

Specific exception types

Check type stubs file for all error types and complete API.

Need help?