Quick migration checklist
1
Regenerate your license key
Create a new license key in the developer portal 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_L16 → quail-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
- Import name changed from
aictoaic_sdk(useimport aic_sdk as aicfor convenience). - Model names changed (
Quail→Sparrow,Quail-STT→Quail). - New license keys required; old keys fail in 2.0.
- New architecture splits
Model,ProcessorConfig,ProcessorandProcessorContext. - Parameter enums renamed from
SNAKE_CASEtoCamelCase. - Models are downloaded separately; no longer bundled.
Model naming changes
Models were renamed to clarify use cases, check the Model Name Migration GuideArchitecture changes
- 1.3
- 2.0
- Reuse one model across multiple processors.
- Smaller package footprint because models download separately.
API changes (quick reference)
| Operation | 1.3 | 2.0 |
|---|---|---|
| Import | from aic import Model, AICModelType, AICParameter | import aic_sdk as aic |
| Model creation | Model(AICModelType.QUAIL_VF_STT_L16, ...) | Model.download() + Model.from_file() |
| Configuration | Inline constructor params | ProcessorConfig |
| Processing | model.process(audio) | processor.process(audio) |
| Set parameter | model.set_parameter(AICParameter.*, val) | proc_ctx.set_parameter(ProcessorParameter.*, val) |
| Get parameter | model.get_parameter(AICParameter.*) | proc_ctx.get_parameter(ProcessorParameter.*) |
| Get latency | model.processing_latency() | proc_ctx.get_output_delay() |
| Optimal frames | model.optimal_num_frames() | model.get_optimal_num_frames(sample_rate) |
| Optimal sample rate | model.optimal_sample_rate() | model.get_optimal_sample_rate() |
| Reset state | model.reset() | proc_ctx.reset() |
| Create VAD | model.create_vad() | processor.get_vad_context() |
| VAD parameters | vad.set_parameter(AICVadParameter.*, val) | vad.set_parameter(VadParameter.*, val) |
| Cleanup | model.close() | Automatic |
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)
| 1.3 | 2.0 |
|---|---|
AICParameter.BYPASS | ProcessorParameter.Bypass |
AICParameter.ENHANCEMENT_LEVEL | ProcessorParameter.EnhancementLevel |
AICParameter.VOICE_GAIN | ProcessorParameter.VoiceGain |
AICParameter.NOISE_GATE_ENABLE | Removed (now used automatically by the VAD) |
VadParameter (was AICVadParameter)
| 1.3 | 2.0 |
|---|---|
AICVadParameter.SPEECH_HOLD_DURATION | VadParameter.SpeechHoldDuration |
AICVadParameter.SENSITIVITY | VadParameter.Sensitivity |
AICVadParameter.MINIMUM_SPEECH_DURATION | VadParameter.MinimumSpeechDuration |
Complete migration example
- 1.3
- 2.0
Async processing
- 1.3
- 2.0
| 1.3 | 2.0 |
|---|---|
model.process_async(audio) | ProcessorAsync.process_async(audio) |
model.process_submit(audio) | Use asyncio primitives directly |
model.process_interleaved_async() | Not available (use process_async with numpy array (channels, frames)) |
Removed features
AICModelTypeenum (use model ID strings such as"quail-vf-l-16khz").process_interleaved()andprocess_sequential()(useprocesswith numpy array(channels, frames)).- Context manager
with Model(...) as m:. NOISE_GATE_ENABLEparameter (now used automatically by the VAD).process_submit()future API (useasynciowithProcessorAsync).
New features
Model downloading
Model reuse
Configure the Processor
Model information
Specific exception types
Need help?
- See the GitHub Repository and the type stubs file.
- Browse available models at artifacts.ai-coustics.io.
- Generate new license keys at developers.ai-coustics.com.