> ## 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.

# C++ API reference

> Complete C++11 wrapper 0.25.0 types, members, factories and ownership contracts.

C++ wrapper **0.25.0** uses core **0.25.0** and model file format **7**. This reference covers the 16 public named types and two free functions in namespace `aic`, including fields, enum members, constructor overloads, moves and deleted copies. Signatures follow the [released header](https://github.com/ai-coustics/aic-sdk-cpp/blob/b11360b127d20aa25ba221a6b3d8c687e1f1bfdb/include/aic.hpp).

Start with the [C++ integration guide](/reference/sdk/language-bindings/cpp) for installation and a complete audio example. The wrapper has no model-downloader, file-decoder, async-processing or `initialize(ProcessorConfig)` overload. Use the three-argument initializers and arrange application threads explicitly. Private constructors, native handle fields and wrapper-registration helpers are not public API.

## Browse by task

| Task | Reference |
| - | - |
| Load a model or inspect configuration | [Models and configuration](/reference/sdk/api/cpp/models-and-config) |
| Enhance audio and control a stream | [Processing](/reference/sdk/api/cpp/processing) |
| Detect speech with a dedicated model, or from an enhancement processor | [VAD](/reference/sdk/api/cpp/vad) |
| Collect audio and analyze Tyto scores | [Analysis](/reference/sdk/api/cpp/analysis) |
| Extract a factory result or handle an error | [Results and errors](/reference/sdk/api/cpp/results-and-errors) |

## Alphabetical symbol index

Constructor and assignment suffixes distinguish move and deleted copy overloads. All names refer to namespace `aic`.

| Public symbol | Definition |
| - | - |
| `aic::AnalysisResult` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalysisResult) |
| `aic::AnalysisResult::codec_degradation` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalysisResult-codec_degradation) |
| `aic::AnalysisResult::interfering_speech` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalysisResult-interfering_speech) |
| `aic::AnalysisResult::noise` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalysisResult-noise) |
| `aic::AnalysisResult::packet_loss` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalysisResult-packet_loss) |
| `aic::AnalysisResult::risk_score` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalysisResult-risk_score) |
| `aic::AnalysisResult::speaker_loudness` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalysisResult-speaker_loudness) |
| `aic::AnalysisResult::speaker_reverb` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalysisResult-speaker_reverb) |
| `aic::Analyzer` | [Reference](/reference/sdk/api/cpp/analysis#aic-Analyzer) |
| `aic::Analyzer::analyze_buffered` | [Reference](/reference/sdk/api/cpp/analysis#aic-Analyzer-analyze_buffered) |
| `aic::Analyzer::Analyzer-copy` | [Reference](/reference/sdk/api/cpp/analysis#aic-Analyzer-Analyzer-copy) |
| `aic::Analyzer::Analyzer-move` | [Reference](/reference/sdk/api/cpp/analysis#aic-Analyzer-Analyzer-move) |
| `aic::Analyzer::operator=-copy` | [Reference](/reference/sdk/api/cpp/analysis#aic-Analyzer-operatorassign-copy) |
| `aic::Analyzer::operator=-move` | [Reference](/reference/sdk/api/cpp/analysis#aic-Analyzer-operatorassign-move) |
| `aic::Analyzer::reset` | [Reference](/reference/sdk/api/cpp/analysis#aic-Analyzer-reset) |
| `aic::Analyzer::terminate_session` | [Reference](/reference/sdk/api/cpp/analysis#aic-Analyzer-terminate_session) |
| `aic::Analyzer::update_bearer_token` | [Reference](/reference/sdk/api/cpp/analysis#aic-Analyzer-update_bearer_token) |
| `aic::Analyzer::~Analyzer` | [Reference](/reference/sdk/api/cpp/analysis#aic-Analyzer-destructor-Analyzer) |
| `aic::AnalyzerPair` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalyzerPair) |
| `aic::AnalyzerPair::analyzer` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalyzerPair-analyzer) |
| `aic::AnalyzerPair::collector` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalyzerPair-collector) |
| `aic::AnalyzerPair::create` | [Reference](/reference/sdk/api/cpp/analysis#aic-AnalyzerPair-create) |
| `aic::Collector` | [Reference](/reference/sdk/api/cpp/analysis#aic-Collector) |
| `aic::Collector::buffer` | [Reference](/reference/sdk/api/cpp/analysis#aic-Collector-buffer) |
| `aic::Collector::Collector-copy` | [Reference](/reference/sdk/api/cpp/analysis#aic-Collector-Collector-copy) |
| `aic::Collector::Collector-move` | [Reference](/reference/sdk/api/cpp/analysis#aic-Collector-Collector-move) |
| `aic::Collector::initialize` | [Reference](/reference/sdk/api/cpp/analysis#aic-Collector-initialize) |
| `aic::Collector::operator=-copy` | [Reference](/reference/sdk/api/cpp/analysis#aic-Collector-operatorassign-copy) |
| `aic::Collector::operator=-move` | [Reference](/reference/sdk/api/cpp/analysis#aic-Collector-operatorassign-move) |
| `aic::Collector::~Collector` | [Reference](/reference/sdk/api/cpp/analysis#aic-Collector-destructor-Collector) |
| `aic::EnergyVadContext` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext) |
| `aic::EnergyVadContext::EnergyVadContext-copy` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext-EnergyVadContext-copy) |
| `aic::EnergyVadContext::EnergyVadContext-move` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext-EnergyVadContext-move) |
| `aic::EnergyVadContext::get_parameter` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext-get_parameter) |
| `aic::EnergyVadContext::get_prediction_delay` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext-get_prediction_delay) |
| `aic::EnergyVadContext::is_speech_detected` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext-is_speech_detected) |
| `aic::EnergyVadContext::operator=-copy` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext-operatorassign-copy) |
| `aic::EnergyVadContext::operator=-move` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext-operatorassign-move) |
| `aic::EnergyVadContext::reset` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext-reset) |
| `aic::EnergyVadContext::set_parameter` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext-set_parameter) |
| `aic::EnergyVadContext::~EnergyVadContext` | [Reference](/reference/sdk/api/cpp/vad#aic-EnergyVadContext-destructor-EnergyVadContext) |
| `aic::ErrorCode` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode) |
| `aic::ErrorCode::AudioConfigMismatch` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-AudioConfigMismatch) |
| `aic::ErrorCode::AudioConfigUnsupported` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-AudioConfigUnsupported) |
| `aic::ErrorCode::FilePathInvalid` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-FilePathInvalid) |
| `aic::ErrorCode::FileSystemError` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-FileSystemError) |
| `aic::ErrorCode::InternalError` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-InternalError) |
| `aic::ErrorCode::LicenseExpired` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-LicenseExpired) |
| `aic::ErrorCode::LicenseFormatInvalid` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-LicenseFormatInvalid) |
| `aic::ErrorCode::LicenseVersionUnsupported` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-LicenseVersionUnsupported) |
| `aic::ErrorCode::ModelDataUnaligned` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-ModelDataUnaligned) |
| `aic::ErrorCode::ModelInvalid` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-ModelInvalid) |
| `aic::ErrorCode::ModelTypeUnsupported` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-ModelTypeUnsupported) |
| `aic::ErrorCode::ModelVersionUnsupported` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-ModelVersionUnsupported) |
| `aic::ErrorCode::NotInitialized` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-NotInitialized) |
| `aic::ErrorCode::NullPointer` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-NullPointer) |
| `aic::ErrorCode::ParameterOutOfRange` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-ParameterOutOfRange) |
| `aic::ErrorCode::ProcessingNotAllowed` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-ProcessingNotAllowed) |
| `aic::ErrorCode::Success` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-Success) |
| `aic::ErrorCode::TokenUpdateUnsupported` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-ErrorCode-TokenUpdateUnsupported) |
| `aic::get_compatible_model_version` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-get_compatible_model_version) |
| `aic::get_sdk_version` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-get_sdk_version) |
| `aic::Model` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model) |
| `aic::Model::create_from_buffer` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model-create_from_buffer) |
| `aic::Model::create_from_file` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model-create_from_file) |
| `aic::Model::get_id` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model-get_id) |
| `aic::Model::get_optimal_block_size` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model-get_optimal_block_size) |
| `aic::Model::get_optimal_sample_rate` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model-get_optimal_sample_rate) |
| `aic::Model::Model-copy` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model-Model-copy) |
| `aic::Model::Model-move` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model-Model-move) |
| `aic::Model::operator=-copy` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model-operatorassign-copy) |
| `aic::Model::operator=-move` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model-operatorassign-move) |
| `aic::Model::~Model` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-Model-destructor-Model) |
| `aic::OtelConfig` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-OtelConfig) |
| `aic::OtelConfig::enable` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-OtelConfig-enable) |
| `aic::OtelConfig::export_interval_ms` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-OtelConfig-export_interval_ms) |
| `aic::OtelConfig::OtelConfig` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-OtelConfig-OtelConfig) |
| `aic::OtelConfig::session_id` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-OtelConfig-session_id) |
| `aic::Processor` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor) |
| `aic::Processor::create` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-create) |
| `aic::Processor::create_context` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-create_context) |
| `aic::Processor::create_energy_vad_context` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-create_energy_vad_context) |
| `aic::Processor::initialize` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-initialize) |
| `aic::Processor::operator=-copy` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-operatorassign-copy) |
| `aic::Processor::operator=-move` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-operatorassign-move) |
| `aic::Processor::process` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-process) |
| `aic::Processor::Processor-copy` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-Processor-copy) |
| `aic::Processor::Processor-move` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-Processor-move) |
| `aic::Processor::terminate_session` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-terminate_session) |
| `aic::Processor::~Processor` | [Reference](/reference/sdk/api/cpp/processing#aic-Processor-destructor-Processor) |
| `aic::ProcessorConfig` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-ProcessorConfig) |
| `aic::ProcessorConfig::block_size` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-ProcessorConfig-block_size) |
| `aic::ProcessorConfig::ProcessorConfig` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-ProcessorConfig-ProcessorConfig) |
| `aic::ProcessorConfig::sample_rate` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-ProcessorConfig-sample_rate) |
| `aic::ProcessorConfig::variable_block_size` | [Reference](/reference/sdk/api/cpp/models-and-config#aic-ProcessorConfig-variable_block_size) |
| `aic::ProcessorContext` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext) |
| `aic::ProcessorContext::get_audio_delay` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext-get_audio_delay) |
| `aic::ProcessorContext::get_parameter` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext-get_parameter) |
| `aic::ProcessorContext::operator=-copy` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext-operatorassign-copy) |
| `aic::ProcessorContext::operator=-move` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext-operatorassign-move) |
| `aic::ProcessorContext::ProcessorContext-copy` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext-ProcessorContext-copy) |
| `aic::ProcessorContext::ProcessorContext-move` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext-ProcessorContext-move) |
| `aic::ProcessorContext::reset` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext-reset) |
| `aic::ProcessorContext::set_parameter` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext-set_parameter) |
| `aic::ProcessorContext::update_bearer_token` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext-update_bearer_token) |
| `aic::ProcessorContext::~ProcessorContext` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorContext-destructor-ProcessorContext) |
| `aic::ProcessorParameter` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorParameter) |
| `aic::ProcessorParameter::Bypass` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorParameter-Bypass) |
| `aic::ProcessorParameter::EnhancementLevel` | [Reference](/reference/sdk/api/cpp/processing#aic-ProcessorParameter-EnhancementLevel) |
| `aic::Result<T>` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-Result-T) |
| `aic::Result<T>::error` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-Result-T-error) |
| `aic::Result<T>::ok` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-Result-T-ok) |
| `aic::Result<T>::Result-copy` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-Result-T-Result-copy) |
| `aic::Result<T>::Result-move` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-Result-T-Result-move) |
| `aic::Result<T>::take` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-Result-T-take) |
| `aic::Result<T>::value` | [Reference](/reference/sdk/api/cpp/results-and-errors#aic-Result-T-value) |
| `aic::Vad` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad) |
| `aic::Vad::create` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad-create) |
| `aic::Vad::create_context` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad-create_context) |
| `aic::Vad::initialize` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad-initialize) |
| `aic::Vad::operator=-copy` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad-operatorassign-copy) |
| `aic::Vad::operator=-move` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad-operatorassign-move) |
| `aic::Vad::process` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad-process) |
| `aic::Vad::terminate_session` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad-terminate_session) |
| `aic::Vad::Vad-copy` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad-Vad-copy) |
| `aic::Vad::Vad-move` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad-Vad-move) |
| `aic::Vad::~Vad` | [Reference](/reference/sdk/api/cpp/vad#aic-Vad-destructor-Vad) |
| `aic::VadContext` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext) |
| `aic::VadContext::get_parameter` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-get_parameter) |
| `aic::VadContext::get_prediction_delay` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-get_prediction_delay) |
| `aic::VadContext::get_raw_vad_probability` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-get_raw_vad_probability) |
| `aic::VadContext::is_speech_detected` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-is_speech_detected) |
| `aic::VadContext::operator=-copy` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-operatorassign-copy) |
| `aic::VadContext::operator=-move` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-operatorassign-move) |
| `aic::VadContext::reset` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-reset) |
| `aic::VadContext::set_parameter` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-set_parameter) |
| `aic::VadContext::update_bearer_token` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-update_bearer_token) |
| `aic::VadContext::VadContext-copy` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-VadContext-copy) |
| `aic::VadContext::VadContext-move` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-VadContext-move) |
| `aic::VadContext::~VadContext` | [Reference](/reference/sdk/api/cpp/vad#aic-VadContext-destructor-VadContext) |
| `aic::VadParameter` | [Reference](/reference/sdk/api/cpp/vad#aic-VadParameter) |
| `aic::VadParameter::MinimumSpeechDuration` | [Reference](/reference/sdk/api/cpp/vad#aic-VadParameter-MinimumSpeechDuration) |
| `aic::VadParameter::Sensitivity` | [Reference](/reference/sdk/api/cpp/vad#aic-VadParameter-Sensitivity) |
| `aic::VadParameter::SpeechHoldDuration` | [Reference](/reference/sdk/api/cpp/vad#aic-VadParameter-SpeechHoldDuration) |

## Update this reference

Compare API changes against the released header and implementation, preserving correct text and anchors. Check overloads and move/copy behavior directly; convenience types do not imply additional overloads.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.