> ## 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.24.0 types, members, factories and ownership contracts.

C++ wrapper **0.24.0** uses core **0.24.0** and model file format **7**. This reference covers the 15 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/e2703b8b54457e1002e1bf84d4e8c841de7e0bca/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                               | [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::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::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.
