VAD, the Tyto Analyzer and FrameProcessorChain. It does not include speech enhancement. Use the official LiveKit plugin for speech enhancement.
This guide compares plugin 0.2.0 with extras 0.25.0. The extras version matches the version of the ai-coustics core SDK that it uses.
What changes
These public names are removed:
Processor,ProcessorContextandProcessorParameter- Node.js only:
ProcessorOptions,float32ToPcm16andpcm16ToFloat32
VAD and Analyzer do not change. VAD defaults, VAD events, analysis events and the OpenTelemetry instrument names do not change. Authentication with AIC_SDK_LICENSE or license_key / licenseKey does not change.
Migration steps
1
Replace the package
livekit-plugins-ai-coustics package write to the same directory. Extras uses a different import path, so it can share an environment with the official plugin.Extras pins an exact SDK version. If your project also pins aic-sdk or @ai-coustics/aic-sdk, change that pin to 3.3.0 or 0.25.0.2
Update the imports
Python code that used the To keep the module-object style, use
ai_coustics module object must import names from ai_coustics.livekit.from ai_coustics import livekit as ai_coustics.In Node.js, change only the package name:3
Move speech enhancement to the official plugin
Skip this step if you do not use
Processor.Follow LiveKit’s noise cancellation documentation to install and configure the official plugin. Its audio_enhancement() / audioEnhancement() factory replaces Processor. The official plugin selects the model and does not use your provisioned enhancement .aicmodel file. Model names do not guarantee identical weights across versions. Compare the output on your own recordings.Remove the enhancement model download from your deployment. Keep the VAD and Tyto model downloads.4
Rebuild the RoomIO audio path
RoomIO has one Omit
noise_cancellation / noiseCancellation slot. The dedicated VAD needs vad.processor in that slot, and the Analyzer needs analyzer.collector in that slot. The authentication mode of the official plugin controls if the official enhancement can also go in that slot.Explicit ai-coustics authentication. With Auth.ai_coustics_api(...) / Auth.aiCousticsApi(...), the official enhancement does not need LiveKit Cloud credentials or stream information from RoomIO. Put it in the chain after vad.processor and analyzer.collector. VAD and Tyto then receive the original audio. Self-hosted LiveKit deployments have no LiveKit Cloud credentials, so they require this mode.analyzer.collector if you do not use Tyto. ai-coustics bills this enhancement to your SDK key, not through LiveKit Cloud.Default LiveKit Cloud authentication. The official enhancement needs the LiveKit Cloud credentials that RoomIO gives to the slot. FrameProcessorChain does not forward these credentials to its processors. Install the official enhancement in the slot on its own. Thus one session cannot use this mode and the dedicated VAD together. Select one configuration for each session:The official VAD adapter is not interchangeable with the dedicated
VAD. Do not copy the dedicated VAD sensitivity values to the adapter without a review of their ranges. Refer to Which LiveKit plugin to use for the differences.5
Update logs and metrics filters
In Python, the logger name changes from
livekit.plugins.ai_coustics to ai_coustics.livekit. Update log level configuration and log filters that use the old name.The OpenTelemetry meter name changes from ai-coustics-livekit-plugin to ai-coustics-livekit-extras in both runtimes. The instrument names stay the same. Update dashboards that filter on the instrumentation scope.6
Check Analyzer shutdown in Node.js
Analyzer.close() now returns void, not a promise. Existing await analyzer.close() calls still work. The SDK session ends after an in-flight analysis completes.Verify the migration
- Start a room and confirm that VAD events and
analysisResult/analysis_resultevents arrive. - Disconnect and reconnect, then confirm that a new room produces events again.