Call Center SDK  1.11.3
core_c_api.h
1 /* Copyright 2021 ID R&D Inc. All Rights Reserved. */
2 
3 #pragma once
4 
5 #include <stdint.h>
6 #include <stdbool.h>
7 #include <stdlib.h>
8 
9 #include "config.h"
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
18 typedef enum VoiceSdkErrorCode {
19  kVoiceSdkErrorCodeOk = 0,
20  kVoiceSdkErrorCodeNullPointer = 1,
21  kVoiceSdkErrorCodeInvalidArgument = 2,
22  kVoiceSdkErrorCodeRuntimeError = 3,
23  kVoiceSdkErrorCodeLicenseError = 4
24 } VoiceSdkErrorCode;
25 
26 #define DECL_TYPED_ARRAY(name, type) \
27  typedef struct { \
28  size_t size; \
29  type* data; \
30  } name; \
31  \
32  VOICE_SDK_API \
33  name* name##Create(size_t size); \
34  \
35  VOICE_SDK_API \
36  void name##Release(name* wrapped); \
37  \
38  /* nested create/release are only used internally */ \
39  void name##CreateNested(name* wrapped, size_t size); \
40  void name##ReleaseNested(name* wrapped); \
41  \
42 
43 DECL_TYPED_ARRAY(VoiceSdkByteArray, uint8_t)
44 DECL_TYPED_ARRAY(VoiceSdkShortArray, int16_t)
45 DECL_TYPED_ARRAY(VoiceSdkFloatArray, float)
46 
47 typedef struct VoiceSdkVoiceTemplate VoiceSdkVoiceTemplate;
48 
49 typedef struct VoiceSdkBuildInfo {
53  const char* version;
54 
58  const char* components;
59 
63  const char* git_info;
65 
72 
73 typedef struct VoiceSdkAudioInterval {
77  size_t start_sample;
78 
82  size_t end_sample;
83 
87  size_t start_time;
88 
92  size_t end_time;
93 
100 
101 typedef struct VoiceSdkAudioInfo {
105  size_t num_samples;
106 
110  size_t sample_rate;
111 
115  size_t num_channels;
117 
118 typedef enum VoiceSdkChannelType {
119  CHANNEL_TYPE_MIC = 1,
120  CHANNEL_TYPE_TEL = 2,
121  CHANNEL_TYPE_MIXED = 3
122 } VoiceSdkChannelType;
123 
124 /********************
125  * Build Info calls *
126  ********************/
127 
134 VOICE_SDK_API
135 void VoiceSdkGetBuildInfo(VoiceSdkBuildInfo* build_info);
136 
137 /******************
138  * Settings calls *
139  ******************/
140 
149 VOICE_SDK_API
150 void VoiceSdkSetNumThreads(unsigned int num_threads);
151 
156 VOICE_SDK_API
157 void VoiceSdkSetAllowMobileGpu(bool allow_mobile_gpu);
158 
163 VOICE_SDK_API
164 void VoiceSdkSetAllowMobileNnapi(bool allow_mobile_nnapi);
165 
171 VOICE_SDK_API
172 void VoiceSdkSetUseVoiceTemplateCompression(bool use_voice_template_compression);
173 
182 VOICE_SDK_API
183 bool VoiceSdkSetMobileLicense(const char* mobile_license_string, char** error_msg);
184 
194 VOICE_SDK_API
195 void VoiceSdkGetLicenseInfo(char* license_info, size_t license_info_size);
196 
203 VOICE_SDK_API
204 VoiceSdkLicenseExpirationDate VoiceSdkGetLicenseExpirationDate();
205 
206 /*******************
207  * Wav Utils calls *
208  *******************/
209 
218 VOICE_SDK_API
219 VoiceSdkByteArray* VoiceSdkWavUtilsReadFromFileAsPcm16Bytes(const char* wav_path, size_t* sample_rate,
220  char** error_msg);
221 
230 VOICE_SDK_API
231 VoiceSdkShortArray* VoiceSdkWavUtilsReadFromFileAsPcm16Samples(const char* wav_path, size_t* sample_rate,
232  char** error_msg);
233 
242 VOICE_SDK_API
243 VoiceSdkFloatArray* VoiceSdkWavUtilsReadFromFileAsFloatSamples(const char* wav_path, size_t* sample_rate,
244  char** error_msg);
245 
254 VOICE_SDK_API
255 VoiceSdkFloatArray* VoiceSdkWavUtilsReadFromFileAs16BitFloatSamples(const char* wav_path, size_t* sample_rate,
256  char** error_msg);
257 
267 VOICE_SDK_API
268 VoiceSdkByteArray* VoiceSdkWavUtilsReadFromBufferAsPcm16Bytes(const uint8_t* data, size_t data_size,
269  size_t* sample_rate, char** error_msg);
270 
280 VOICE_SDK_API
281 VoiceSdkShortArray* VoiceSdkWavUtilsReadFromBufferAsPcm16Samples(const uint8_t* data, size_t data_size,
282  size_t* sample_rate, char** error_msg);
283 
293 VOICE_SDK_API
294 VoiceSdkFloatArray* VoiceSdkWavUtilsReadFromBufferAsFloatSamples(const uint8_t* data, size_t data_size,
295  size_t* sample_rate, char** error_msg);
296 
307 VOICE_SDK_API
308 VoiceSdkFloatArray* VoiceSdkWavUtilsReadFromBufferAs16BitFloatSamples(const uint8_t* data, size_t data_size,
309  size_t* sample_rate, char** error_msg);
318 VOICE_SDK_API
319 bool VoiceSdkWavUtilsGetAudioInfoFromFile(const char* wav_path, VoiceSdkAudioInfo* result, char** error_msg);
320 
330 VOICE_SDK_API
331 bool VoiceSdkWavUtilsGetAudioInfoFromBuffer(const uint8_t* data, size_t data_size, VoiceSdkAudioInfo* result,
332  char** error_msg);
333 
334 /************************
335  * Voice Template calls *
336  ************************/
337 
344 VOICE_SDK_API
345 VoiceSdkVoiceTemplate* VoiceSdkVoiceTemplateLoadFromFile(const char* filepath, char** error_msg);
346 
354 VOICE_SDK_API
355 bool VoiceSdkVoiceTemplateSaveToFile(const VoiceSdkVoiceTemplate* voice_template, const char* filepath,
356  char** error_msg);
357 
365 VOICE_SDK_API
366 VoiceSdkVoiceTemplate* VoiceSdkVoiceTemplateDeserialize(const uint8_t* array, size_t array_size, char** error_msg);
367 
374 VOICE_SDK_API
375 VoiceSdkByteArray* VoiceSdkVoiceTemplateSerialize(const VoiceSdkVoiceTemplate* voice_template, char** error_msg);
376 
384 VOICE_SDK_API
385 bool VoiceSdkVoiceTemplateGetChannelType(const VoiceSdkVoiceTemplate* voice_template, VoiceSdkChannelType* channel_type,
386  char** error_msg);
387 
395 VOICE_SDK_API
396 const char* VoiceSdkVoiceTemplateGetInitDataId(const VoiceSdkVoiceTemplate* voice_template, char** error_msg);
397 
405 VOICE_SDK_API
406 bool VoiceSdkVoiceTemplateIsValid(const VoiceSdkVoiceTemplate* voice_template, bool* is_valid, char** error_msg);
407 
412 VOICE_SDK_API
413 void VoiceSdkVoiceTemplateRelease(VoiceSdkVoiceTemplate* voice_template);
414 
424 VOICE_SDK_API
425 VoiceSdkShortArray* VoiceSdkOpusUtilsReadFromBufferAsPcm16Samples(const uint8_t* data, size_t data_size,
426  size_t* sample_rate, char** error_msg);
427 
428 #ifdef __cplusplus
429 }
430 #endif
Definition: core_c_api.h:101
size_t num_samples
Number of audio samples.
Definition: core_c_api.h:105
size_t sample_rate
Audio sample rate in Hz.
Definition: core_c_api.h:110
size_t num_channels
Number of audio channels.
Definition: core_c_api.h:115
Definition: core_c_api.h:73
size_t start_sample
Sample number where interval starts.
Definition: core_c_api.h:77
int sample_rate
Sample rate of corresponding audio.
Definition: core_c_api.h:98
size_t end_sample
Sample number where interval ends (not inclusive)
Definition: core_c_api.h:82
size_t start_time
Timestamp in milliseconds of where interval starts.
Definition: core_c_api.h:87
size_t end_time
Timestamp in milliseconds of where interval ends (not inclusive)
Definition: core_c_api.h:92
Definition: core_c_api.h:49
const char * components
VoiceSDK components presented in build.
Definition: core_c_api.h:58
const char * git_info
Git info dump at the build stage.
Definition: core_c_api.h:63
const char * version
VoiceSDK build version.
Definition: core_c_api.h:53
Definition: core_c_api.h:66
char license_expiration_date[11]
License expiration date in YYYY-MM-DD format.
Definition: core_c_api.h:70