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.Documentation Index
Fetch the complete documentation index at: https://docs.ai-coustics.com/llms.txt
Use this file to discover all available pages before exploring further.
Quick migration checklist
Regenerate your license key
Create a new license key in the developer platform and store it in
AIC_SDK_LICENSE.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.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.Rename parameters
Update
AICParameter/AICVadParameter to ProcessorParameter/VadParameter (CamelCase).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.