Overview
AICFilter is an audio processor that enhances user speech by reducing background noise and improving speech clarity. It inherits from BaseAudioFilter and processes audio frames in real-time using ai-coustics’ speech enhancement technology.
To use AIC, you need a license key. Get started at ai-coustics.com.
This documentation covers aic-sdk v2.x. If you’re using aic-sdk v1.x, please see the Migration Guide section below for upgrading instructions.
Installation
The AIC filter requires additional dependencies:Constructor Parameters
ai-coustics license key for authentication. Get your key at developers.ai-coustics.io.
Model identifier to download from CDN. Required if
model_path is not provided.
See artifacts.ai-coustics.io for available models.
See the documentation for more detailed information about the models.Examples: "quail-vf-l-16khz", "quail-s-16khz", "quail-l-8khz"Path to a local
.aicmodel file. If provided, model_id is ignored and no download occurs.
Useful for offline deployments or custom models.Directory for downloading and caching models. Defaults to a cache directory in the user’s home folder.
Methods
create_vad_analyzer
Creates anAICVADAnalyzer that uses the AIC model’s built-in voice activity detection.
VAD Parameters
Controls for how long the VAD continues to detect speech after the audio signal no longer contains speech (in seconds).
Range:
0.0 to 100x model window length, Default (in SDK): 0.05sControls for how long speech needs to be present in the audio signal before the VAD considers it speech (in seconds).
Range:
0.0 to 1.0, Default (in SDK): 0.0sControls the sensitivity (energy threshold) of the VAD. This value is used by the VAD as the threshold a speech audio signal’s energy has to exceed in order to be considered speech.
Formula:
Energy threshold = 10 ** (-sensitivity)
Range: 1.0 to 15.0, Default (in SDK): 6.0get_vad_context
Returns the VAD context once the processor is initialized. Can be used to dynamically adjust VAD parameters at runtime.Input Frames
Specific control frame to toggle filtering on/off
Usage Examples
Basic Usage with AIC VAD
The recommended approach is to useAICFilter with its built-in VAD analyzer:
Using a Local Model
For offline deployments or when you want to manage model files yourself:Custom Cache Directory
Specify a custom directory for model downloads:With Other Transports
The AIC filter works with any Pipecat transport:See the AIC filter example for a complete working example.
Models
For detailed information about the available models, take a look at the Models documentation.Audio Flow
The AIC filter enhances audio before it reaches the VAD and STT stages, improving transcription accuracy in noisy environments.Migration Guide (v1 to v2)
For the complete aic-sdk migration guide including all API changes, see the official Python 1.3 to 2.0 Migration Guide.
Migration Steps
- Update Pipecat to the latest version (aic-sdk v2.x is included automatically).
- Remove deprecated constructor parameters (
model_type,enhancement_level,voice_gain,noise_gate_enable). - Add
model_idparameter with an appropriate model (e.g.,"quail-vf-l-16khz"). - Update any runtime VAD adjustments to use the new VAD context API.
- We recommend to use
aic_filter.create_vad_analyzer()for improved accuracy.
Breaking Changes
| v1 Parameter | v2 Replacement |
|---|---|
model_type | model_id (string-based model selection) |
enhancement_level | Removed (model-specific behavior) |
voice_gain | Removed |
noise_gate_enable | Removed |
Notes
- Requires ai-coustics license key (get one at developers.ai-coustics.io)
- Models are automatically downloaded and cached on first use
- Supports real-time audio processing with low latency
- Handles PCM_16 audio format (int16 samples)
- Thread-safe for pipeline processing
- Can be dynamically enabled/disabled via
FilterEnableFrame - Integrated VAD provides better accuracy than standalone VAD when using enhancement
- For available models, visit artifacts.ai-coustics.io