VoiceSDK  5.0.2
core_c_api.h
Go to the documentation of this file.
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 {
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 
48 
49 typedef struct VoiceSdkBuildInfo {
53  const char* version;
54 
58  const char* components;
59 
63  const char* git_info;
65 
69 typedef enum VoiceSdkLicenseFeature {
73  4,
77 
83  char expiration_date[11];
85 
90  char license_expiration_date[11];
92 
93 typedef struct VoiceSdkAudioInterval {
97  size_t start_sample;
98 
102  size_t end_sample;
103 
107  size_t start_time;
108 
112  size_t end_time;
113 
120 
121 typedef struct VoiceSdkAudioInfo {
125  size_t num_samples;
126 
130  size_t sample_rate;
131 
135  size_t num_channels;
137 
138 typedef enum VoiceSdkChannelType {
143 
144 /********************
145  * Build Info calls *
146  ********************/
147 
155 void VoiceSdkGetBuildInfo(VoiceSdkBuildInfo* build_info);
156 
157 /******************
158  * Settings calls *
159  ******************/
160 
170 void VoiceSdkSetNumThreads(unsigned int num_threads);
171 
177 void VoiceSdkSetAllowMobileGpu(bool allow_mobile_gpu);
178 
184 void VoiceSdkSetAllowMobileNnapi(bool allow_mobile_nnapi);
185 
192 void VoiceSdkSetUseVoiceTemplateCompression(bool use_voice_template_compression);
193 
203 bool VoiceSdkSetMobileLicense(const char* mobile_license_string, char** error_msg);
204 
215 VoiceSdkLicenseFeatureInfo* VoiceSdkGetLicenseInfo(size_t* num_license_features, VoiceSdkErrorCode* error_code,
216  char** error_msg);
217 
224 
233 
234 /*******************
235  * Wav Utils calls *
236  *******************/
237 
247 VoiceSdkByteArray* VoiceSdkWavUtilsReadFromFileAsPcm16Bytes(const char* wav_path, size_t* sample_rate,
248  char** error_msg);
249 
259 VoiceSdkShortArray* VoiceSdkWavUtilsReadFromFileAsPcm16Samples(const char* wav_path, size_t* sample_rate,
260  char** error_msg);
261 
271 VoiceSdkFloatArray* VoiceSdkWavUtilsReadFromFileAsFloatSamples(const char* wav_path, size_t* sample_rate,
272  char** error_msg);
273 
283 VoiceSdkFloatArray* VoiceSdkWavUtilsReadFromFileAs16BitFloatSamples(const char* wav_path, size_t* sample_rate,
284  char** error_msg);
285 
296 VoiceSdkByteArray* VoiceSdkWavUtilsReadFromBufferAsPcm16Bytes(const uint8_t* data, size_t data_size,
297  size_t* sample_rate, char** error_msg);
298 
309 VoiceSdkShortArray* VoiceSdkWavUtilsReadFromBufferAsPcm16Samples(const uint8_t* data, size_t data_size,
310  size_t* sample_rate, char** error_msg);
311 
322 VoiceSdkFloatArray* VoiceSdkWavUtilsReadFromBufferAsFloatSamples(const uint8_t* data, size_t data_size,
323  size_t* sample_rate, char** error_msg);
324 
336 VoiceSdkFloatArray* VoiceSdkWavUtilsReadFromBufferAs16BitFloatSamples(const uint8_t* data, size_t data_size,
337  size_t* sample_rate, char** error_msg);
347 bool VoiceSdkWavUtilsGetAudioInfoFromFile(const char* wav_path, VoiceSdkAudioInfo* result, char** error_msg);
348 
359 bool VoiceSdkWavUtilsGetAudioInfoFromBuffer(const uint8_t* data, size_t data_size, VoiceSdkAudioInfo* result,
360  char** error_msg);
361 
362 /************************
363  * Voice Template calls *
364  ************************/
365 
373 VoiceSdkVoiceTemplate* VoiceSdkVoiceTemplateLoadFromFile(const char* filepath, char** error_msg);
374 
383 bool VoiceSdkVoiceTemplateSaveToFile(const VoiceSdkVoiceTemplate* voice_template, const char* filepath,
384  char** error_msg);
385 
394 VoiceSdkVoiceTemplate* VoiceSdkVoiceTemplateDeserialize(const uint8_t* array, size_t array_size, char** error_msg);
395 
403 VoiceSdkByteArray* VoiceSdkVoiceTemplateSerialize(const VoiceSdkVoiceTemplate* voice_template, char** error_msg);
404 
413 bool VoiceSdkVoiceTemplateGetChannelType(const VoiceSdkVoiceTemplate* voice_template, VoiceSdkChannelType* channel_type,
414  char** error_msg);
415 
424 const char* VoiceSdkVoiceTemplateGetInitDataId(const VoiceSdkVoiceTemplate* voice_template, char** error_msg);
425 
434 bool VoiceSdkVoiceTemplateIsValid(const VoiceSdkVoiceTemplate* voice_template, bool* is_valid, char** error_msg);
435 
442 
453 VoiceSdkShortArray* VoiceSdkOpusUtilsReadFromBufferAsPcm16Samples(const uint8_t* data, size_t data_size,
454  size_t* sample_rate, char** error_msg);
455 
456 #ifdef __cplusplus
457 }
458 #endif
VoiceSdkErrorCode
Enumeration of the error codes which can be returned from the VoiceSDK API.
Definition: core_c_api.h:18
Definition: core_c_api.h:49
VOICE_SDK_API VoiceSdkShortArray * VoiceSdkWavUtilsReadFromBufferAsPcm16Samples(const uint8_t *data, size_t data_size, size_t *sample_rate, char **error_msg)
Reads WAV file from a memory buffer as a PCM16 samples buffer (WAV file can be of any format) ...
size_t end_time
Timestamp in milliseconds of where interval ends (not inclusive)
Definition: core_c_api.h:112
VoiceSdkLicenseFeature
VoiceSDK licensed features.
Definition: core_c_api.h:69
struct VoiceSdkLicenseExpirationDate VoiceSdkLicenseExpirationDate
struct VoiceSdkLicenseFeatureInfo VoiceSdkLicenseFeatureInfo
DocSDK feature information.
VOICE_SDK_API void VoiceSdkSetAllowMobileGpu(bool allow_mobile_gpu)
Sets whether GPU delegate allowed to be used for VoiceSDK (for Android devices only).
const char * version
VoiceSDK build version.
Definition: core_c_api.h:53
VOICE_SDK_API const char * VoiceSdkVoiceTemplateGetInitDataId(const VoiceSdkVoiceTemplate *voice_template, char **error_msg)
Returns ID of the init data, which was used to create the template.
VOICE_SDK_API bool VoiceSdkSetMobileLicense(const char *mobile_license_string, char **error_msg)
Sets the mobile SDK license (only can be used for Android and iOS SDKs).
Definition: core_c_api.h:70
VOICE_SDK_API void VoiceSdkSetNumThreads(unsigned int num_threads)
Sets the maximum number of threads available for VoiceSDK.
VOICE_SDK_API bool VoiceSdkWavUtilsGetAudioInfoFromBuffer(const uint8_t *data, size_t data_size, VoiceSdkAudioInfo *result, char **error_msg)
Returns WAV file audio info.
DocSDK feature information.
Definition: core_c_api.h:81
Definition: core_c_api.h:23
VOICE_SDK_API bool VoiceSdkVoiceTemplateGetChannelType(const VoiceSdkVoiceTemplate *voice_template, VoiceSdkChannelType *channel_type, char **error_msg)
Retrieves voice template channel type which was specified by user on creation.
VOICE_SDK_API void VoiceSdkLicenseFeatureInfoArrayRelease(VoiceSdkLicenseFeatureInfo *license_info)
Releases VoiceSdkLicenseFeatureInfo array.
Definition: core_c_api.h:141
VOICE_SDK_API VoiceSdkVoiceTemplate * VoiceSdkVoiceTemplateLoadFromFile(const char *filepath, char **error_msg)
Loads voice template from the file.
VoiceSdkLicenseFeature feature
Definition: core_c_api.h:82
char expiration_date[11]
Definition: core_c_api.h:83
Definition: core_c_api.h:121
VoiceSdkChannelType
Definition: core_c_api.h:138
size_t num_samples
Number of audio samples.
Definition: core_c_api.h:125
struct VoiceSdkVoiceTemplate VoiceSdkVoiceTemplate
Definition: core_c_api.h:47
VOICE_SDK_API VoiceSdkVoiceTemplate * VoiceSdkVoiceTemplateDeserialize(const uint8_t *array, size_t array_size, char **error_msg)
Deserializes voice template from the array.
Definition: core_c_api.h:20
Definition: core_c_api.h:139
VOICE_SDK_API VoiceSdkShortArray * VoiceSdkWavUtilsReadFromFileAsPcm16Samples(const char *wav_path, size_t *sample_rate, char **error_msg)
Reads WAV file as a PCM16 samples buffer (WAV file can be of any format)
VOICE_SDK_API VoiceSdkFloatArray * VoiceSdkWavUtilsReadFromFileAs16BitFloatSamples(const char *wav_path, size_t *sample_rate, char **error_msg)
Reads WAV file as a float samples buffer with 16-bit precision (WAV file can be of any format) ...
VOICE_SDK_API void VoiceSdkGetBuildInfo(VoiceSdkBuildInfo *build_info)
Returns present VoiceSDK build info.
size_t sample_rate
Audio sample rate in Hz.
Definition: core_c_api.h:130
Definition: core_c_api.h:22
VOICE_SDK_API void VoiceSdkVoiceTemplateRelease(VoiceSdkVoiceTemplate *voice_template)
Releases VoiceSdkVoiceTemplate.
int sample_rate
Sample rate of corresponding audio.
Definition: core_c_api.h:118
VOICE_SDK_API VoiceSdkFloatArray * VoiceSdkWavUtilsReadFromBufferAsFloatSamples(const uint8_t *data, size_t data_size, size_t *sample_rate, char **error_msg)
Reads WAV file from a memory buffer as a float samples buffer (WAV file can be of any format) ...
VOICE_SDK_API VoiceSdkLicenseFeatureInfo * VoiceSdkGetLicenseInfo(size_t *num_license_features, VoiceSdkErrorCode *error_code, char **error_msg)
Returns information (enabled features and expiration dates) about the installed license if available...
Definition: core_c_api.h:71
VOICE_SDK_API VoiceSdkLicenseExpirationDate VoiceSdkGetLicenseExpirationDate()
Returns license expiration date in YYYY-MM-DD format. The returned date corresponds to the SDK featur...
struct VoiceSdkBuildInfo VoiceSdkBuildInfo
size_t start_time
Timestamp in milliseconds of where interval starts.
Definition: core_c_api.h:107
const char * components
VoiceSDK components presented in build.
Definition: core_c_api.h:58
VOICE_SDK_API void VoiceSdkSetAllowMobileNnapi(bool allow_mobile_nnapi)
Sets whether NNAPI delegate allowed to be used for VoiceSDK (for Android devices only).
VOICE_SDK_API void VoiceSdkSetUseVoiceTemplateCompression(bool use_voice_template_compression)
Sets whether to compress voice templates serialization.. Voice template compression is not used by de...
size_t start_sample
Sample number where interval starts.
Definition: core_c_api.h:97
VOICE_SDK_API bool VoiceSdkWavUtilsGetAudioInfoFromFile(const char *wav_path, VoiceSdkAudioInfo *result, char **error_msg)
Returns WAV file audio info.
#define VOICE_SDK_API
Definition: config.h:21
size_t end_sample
Sample number where interval ends (not inclusive)
Definition: core_c_api.h:102
Definition: core_c_api.h:86
VOICE_SDK_API VoiceSdkByteArray * VoiceSdkVoiceTemplateSerialize(const VoiceSdkVoiceTemplate *voice_template, char **error_msg)
Serializes voice template to the array.
size_t num_channels
Number of audio channels.
Definition: core_c_api.h:135
struct VoiceSdkAudioInfo VoiceSdkAudioInfo
VOICE_SDK_API bool VoiceSdkVoiceTemplateIsValid(const VoiceSdkVoiceTemplate *voice_template, bool *is_valid, char **error_msg)
Checks if voice template is valid or not.
Definition: core_c_api.h:21
Definition: core_c_api.h:93
struct VoiceSdkAudioInterval VoiceSdkAudioInterval
Definition: core_c_api.h:19
const char * git_info
Git info dump at the build stage.
Definition: core_c_api.h:63
Definition: core_c_api.h:75
#define DECL_TYPED_ARRAY(name, type)
Definition: core_c_api.h:26
VOICE_SDK_API VoiceSdkShortArray * VoiceSdkOpusUtilsReadFromBufferAsPcm16Samples(const uint8_t *data, size_t data_size, size_t *sample_rate, char **error_msg)
Reads Opus file from a memory buffer and decodes it to PCM16 samples buffer.
Definition: core_c_api.h:140
VOICE_SDK_API VoiceSdkFloatArray * VoiceSdkWavUtilsReadFromBufferAs16BitFloatSamples(const uint8_t *data, size_t data_size, size_t *sample_rate, char **error_msg)
Reads WAV file from a memory buffer as a float samples buffer with 16-bit precision (WAV file can be ...
VOICE_SDK_API bool VoiceSdkVoiceTemplateSaveToFile(const VoiceSdkVoiceTemplate *voice_template, const char *filepath, char **error_msg)
Saves voice template to the file.
VOICE_SDK_API VoiceSdkByteArray * VoiceSdkWavUtilsReadFromFileAsPcm16Bytes(const char *wav_path, size_t *sample_rate, char **error_msg)
Reads WAV file as a PCM16 bytes buffer (WAV file can be of any format)
VOICE_SDK_API VoiceSdkByteArray * VoiceSdkWavUtilsReadFromBufferAsPcm16Bytes(const uint8_t *data, size_t data_size, size_t *sample_rate, char **error_msg)
Reads WAV file from a memory buffer as a PCM16 bytes buffer (WAV file can be of any format) ...
VOICE_SDK_API VoiceSdkFloatArray * VoiceSdkWavUtilsReadFromFileAsFloatSamples(const char *wav_path, size_t *sample_rate, char **error_msg)
Reads WAV file as a float samples buffer (WAV file can be of any format)