| API key | A secret credential issued via the Sanas Developer Console, used to authenticate the SDK against the Sanas cloud and resolve the correct server endpoint. |
Audio Processor (IAudioProcessor) | An SDK object representing a single live audio stream to the Sanas cloud. One processor handles one concurrent call or session. |
| BCP-47 | An IETF standard for language tags, e.g. "en-US" (English, United States) or "zh-CN" (Mandarin, China). Used to specify source and target languages in Language Translation mode. |
| Callback | A function you provide to the SDK that the SDK calls asynchronously from a background thread, for example when the processor state changes or a transcript event arrives. |
| Conversation ID | An optional string that ties an audio stream to a named session for logging or session continuity. Auto-generated as a UUID if not supplied. |
IRemoteSDK | The top-level SDK interface. Created once per process, initialised with an API key, and used to create and destroy audio processors. |
| Jitter buffer | An internal buffer that absorbs network timing variations (jitter) to deliver smooth audio output. Tunable via JitterParams. |
kInitializing | Processor state immediately after creation, while the SDK is establishing the connection to the Sanas cloud. |
kReady | Processor state indicating the connection is established and the processor is ready to accept audio via ProcessSamples. |
kFailed / kDisconnected | Terminal processor states indicating the connection could not be established or was lost. Destroy and recreate the processor to recover. |
| Language Translation (LT) | A processing mode that translates live speech from a source BCP-47 language to a target BCP-47 language, delivering translated audio and dual transcript streams. |
ProcessSamples | The core SDK method for sending audio to the cloud and receiving processed audio in return. It is synchronous — it blocks until the processed frame is available. |
| Processor state | An enum (ProcessorState) that tracks the lifecycle of an IAudioProcessor: kUnknown → kInitializing → kReady, or kFailed / kDisconnected on error. |
ProcessorStateCallback | A callback function invoked on a background thread whenever the processor’s state changes. |
| Real-time pacing | The requirement to feed audio frames at approximately the natural playback rate (~1 frame every 20 ms), matching how audio would arrive from a live microphone. |
| Sample rate | The number of audio samples per second. The SDK supports 8 000, 16 000, and 48 000 Hz. |
| Speech Enhancement (SE) | A processing mode that reduces background noise and improves speech clarity using a named Sanas model. |
| Accent Translation (AT) | A processing mode that standardises the speaker’s accent for improved intelligibility using a named Sanas model. |
TranscriptCallback | A callback function invoked on a background thread each time a transcript JSON event is received from the server. |
| Transcript event | A JSON payload delivered to the TranscriptCallback containing recognised words (source language) or translated words (target language), split into complete (finalised) and partial (in-progress) arrays. |
UpdateLanguageConfig | An IAudioProcessor method that changes the source/target language pair on a kReady processor without interrupting the audio stream. |
utterance_idx | A monotonically increasing integer in the transcript JSON that groups words into discrete utterances. |