9 #ifndef INCLUDED_AILIA_VOICE
10 #define INCLUDED_AILIA_VOICE
15 #include "ailia_audio.h"
19 #if defined(_WIN64) || defined(_M_X64) || defined(__amd64__) || defined(__x86_64__) || defined(__APPLE__) || \
20 defined(__ANDROID__) || defined(ANDROID) || defined(__linux__) || defined(NN_NINTENDO_SDK)
23 #define AILIA_API __stdcall
43 #define AILIA_VOICE_DICTIONARY_TYPE_OPEN_JTALK (0)
54 #define AILIA_VOICE_DICTIONARY_TYPE_G2P_EN (1)
65 #define AILIA_VOICE_DICTIONARY_TYPE_G2P_CN (2)
76 #define AILIA_VOICE_DICTIONARY_TYPE_G2PW (3)
91 #define AILIA_VOICE_MODEL_TYPE_TACOTRON2 (0)
102 #define AILIA_VOICE_MODEL_TYPE_GPT_SOVITS (1)
113 #define AILIA_VOICE_MODEL_TYPE_GPT_SOVITS_V2 (2)
124 #define AILIA_VOICE_MODEL_TYPE_GPT_SOVITS_V3 (3)
135 #define AILIA_VOICE_MODEL_TYPE_GPT_SOVITS_V2_PRO (4)
146 #define AILIA_VOICE_CLEANER_TYPE_BASIC (0)
157 #define AILIA_VOICE_CLEANER_TYPE_ENGLISH (1)
172 #define AILIA_VOICE_FLAG_NONE (0)
187 #define AILIA_VOICE_G2P_TYPE_GPT_SOVITS_EN (1)
198 #define AILIA_VOICE_G2P_TYPE_GPT_SOVITS_JA (2)
209 #define AILIA_VOICE_G2P_TYPE_GPT_SOVITS_ZH (3)
211 #define AILIA_VOICE_TEXT_POST_PROCESS_APPEND_PUNCTUATION (2)
219 #if defined(_WIN32) && !defined(_WIN64)
220 #define AILIA_VOICE_USER_API __stdcall
222 #define AILIA_VOICE_USER_API
229 typedef int(
AILIA_VOICE_USER_API*
AILIA_VOICE_USER_API_AILIA_AUDIO_GET_SPECTROGRAM)(
void*,
const void*, int, int, int, int, int, int, int, float, int);
230 typedef int(
AILIA_VOICE_USER_API*
AILIA_VOICE_USER_API_AILIA_AUDIO_GET_MEL_SPECTROGRAM)(
void*,
const void*, int, int, int, int, int, int, int, int, float, int, float, float, int, int, int);
260 #define AILIA_VOICE_API_CALLBACK_VERSION (3)
467 int AILIA_API ailiaVoiceOpenModelFileA(
struct AILIAVoice* net,
const char* encoder,
const char* decoder1,
const char* decoder2,
const char* wave,
const char* ssl,
int model_type,
int cleaner_type);
502 int AILIA_API ailiaVoiceOpenModelFileW(
struct AILIAVoice* net,
const wchar_t* encoder,
const wchar_t* decoder1,
const wchar_t* decoder2,
const wchar_t* wave,
const wchar_t* ssl,
int model_type,
int cleaner_type);
657 int AILIA_API ailiaVoiceOpenGPTSoVITSV2ModelFileW(
struct AILIAVoice* net,
const wchar_t* encoder,
const wchar_t* decoder1,
const wchar_t* decoder2,
const wchar_t* wave,
const wchar_t* ssl,
const wchar_t* chinese_bert,
const wchar_t* vocab);
690 int AILIA_API ailiaVoiceOpenGPTSoVITSV3ModelFileA(
struct AILIAVoice* net,
const char* encoder,
const char* decoder1,
const char* decoder2,
const char* ssl,
const char* vq,
const char* cfm,
const char* bigvgan,
const char* chinese_bert,
const char* vocab);
723 int AILIA_API ailiaVoiceOpenGPTSoVITSV3ModelFileW(
struct AILIAVoice* net,
const wchar_t* encoder,
const wchar_t* decoder1,
const wchar_t* decoder2,
const wchar_t* ssl,
const wchar_t* vq,
const wchar_t* cfm,
const wchar_t* bigvgan,
const wchar_t* chinese_bert,
const wchar_t* vocab);
785 int AILIA_API ailiaVoiceOpenGPTSoVITSV2ProModelFileW(
struct AILIAVoice* net,
const wchar_t* encoder,
const wchar_t* decoder1,
const wchar_t* decoder2,
const wchar_t* ssl,
const wchar_t* vits,
const wchar_t* sv,
const wchar_t* chinese_bert,
const wchar_t* vocab);
895 int AILIA_API ailiaVoiceSetReference(
struct AILIAVoice* net,
float* buf,
unsigned int buf_size,
unsigned int channels,
unsigned int sampling_rate,
const char *features);
1056 #define ailiaVoiceSetUserDictionaryFile ailiaVoiceSetUserDictionaryFileW
1057 #define ailiaVoiceOpenDictionaryFile ailiaVoiceOpenDictionaryFileW
1058 #define ailiaVoiceOpenModelFile ailiaVoiceOpenModelFileW
1059 #define ailiaVoiceOpenTacotron2ModelFile ailiaVoiceOpenTacotron2ModelFileW
1060 #define ailiaVoiceOpenGPTSoVITSV1ModelFile ailiaVoiceOpenGPTSoVITSV1ModelFileW
1061 #define ailiaVoiceOpenGPTSoVITSV2ModelFile ailiaVoiceOpenGPTSoVITSV2ModelFileW
1062 #define ailiaVoiceOpenGPTSoVITSV3ModelFile ailiaVoiceOpenGPTSoVITSV3ModelFileW
1063 #define ailiaVoiceOpenGPTSoVITSV2ProModelFile ailiaVoiceOpenGPTSoVITSV2ProModelFileW
1065 #define ailiaVoiceSetUserDictionaryFile ailiaVoiceSetUserDictionaryFileA
1066 #define ailiaVoiceOpenDictionaryFile ailiaVoiceOpenDictionaryFileA
1067 #define ailiaVoiceOpenModelFile ailiaVoiceOpenModelFileA
1068 #define ailiaVoiceOpenTacotron2ModelFile ailiaVoiceOpenTacotron2ModelFileA
1069 #define ailiaVoiceOpenGPTSoVITSV1ModelFile ailiaVoiceOpenGPTSoVITSV1ModelFileA
1070 #define ailiaVoiceOpenGPTSoVITSV2ModelFile ailiaVoiceOpenGPTSoVITSV2ModelFileA
1071 #define ailiaVoiceOpenGPTSoVITSV3ModelFile ailiaVoiceOpenGPTSoVITSV3ModelFileA
1072 #define ailiaVoiceOpenGPTSoVITSV2ProModelFile ailiaVoiceOpenGPTSoVITSV2ProModelFileA
int AILIA_API ailiaVoiceGraphemeToPhoneme(struct AILIAVoice *net, const char *utf8, int g2p_type)
Perform g2p.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_INPUT_INDEX)(struct AILIANetwork *, unsigned int *, unsigned int)
Definition: ailia_voice.h:240
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_UPDATE)(struct AILIANetwork *)
Definition: ailia_voice.h:239
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_W)(struct AILIANetwork *, const wchar_t *)
Definition: ailia_voice.h:235
int AILIA_API ailiaVoiceSetReference(struct AILIAVoice *net, float *buf, unsigned int buf_size, unsigned int channels, unsigned int sampling_rate, const char *features)
Set the waveform and text as references for zero-shot voice synthesis.
#define AILIA_API
Definition: ailia_voice.h:23
int AILIA_API ailiaVoiceOpenGPTSoVITSV2ProModelFileW(struct AILIAVoice *net, const wchar_t *encoder, const wchar_t *decoder1, const wchar_t *decoder2, const wchar_t *ssl, const wchar_t *vits, const wchar_t *sv, const wchar_t *chinese_bert, const wchar_t *vocab)
Set GPT-SoVITS V2-Pro models into a network instance.
int AILIA_API ailiaVoiceSetUserDictionaryFileA(struct AILIAVoice *net, const char *dictionary_path, int dictionary_type)
Set user dictionary into a network instance.
int AILIA_API ailiaVoiceOpenGPTSoVITSV2ModelFileW(struct AILIAVoice *net, const wchar_t *encoder, const wchar_t *decoder1, const wchar_t *decoder2, const wchar_t *wave, const wchar_t *ssl, const wchar_t *chinese_bert, const wchar_t *vocab)
Set GPT-SoVITS V2 models into a network instance.
const char *(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_ERROR_DETAIL)(struct AILIANetwork *)
Definition: ailia_voice.h:248
int AILIA_API ailiaVoiceOpenGPTSoVITSV1ModelFileA(struct AILIAVoice *net, const char *encoder, const char *decoder1, const char *decoder2, const char *wave, const char *ssl)
Set GPT-SoVITS V1 models into a network instance.
int AILIA_API ailiaVoiceExtractFullContext(struct AILIAVoice *net, const char *utf8)
Perform ExtractFullContext.
const char *AILIA_API ailiaVoiceGetErrorDetail(struct AILIAVoice *net)
Returns the details of errors.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_AUDIO_GET_MEL_SPECTROGRAM)(void *, const void *, int, int, int, int, int, int, int, int, float, int, float, float, int, int, int)
Definition: ailia_voice.h:230
int AILIA_API ailiaVoiceInference(struct AILIAVoice *net, const char *utf8)
Perform inference.
int AILIA_API ailiaVoiceOpenGPTSoVITSV2ProModelFileA(struct AILIAVoice *net, const char *encoder, const char *decoder1, const char *decoder2, const char *ssl, const char *vits, const char *sv, const char *chinese_bert, const char *vocab)
Set GPT-SoVITS V2-Pro models into a network instance.
int AILIA_API ailiaVoiceGetFeatureLength(struct AILIAVoice *net, unsigned int *len)
Gets the size of features. (Include null)
int AILIA_API ailiaVoiceOpenModelFileW(struct AILIAVoice *net, const wchar_t *encoder, const wchar_t *decoder1, const wchar_t *decoder2, const wchar_t *wave, const wchar_t *ssl, int model_type, int cleaner_type)
Set models into a network instance.
int AILIA_API ailiaVoiceSetModelType(struct AILIAVoice *net, int model_type)
Set the model type used for G2P processing.
int AILIA_API ailiaVoiceGetWave(struct AILIAVoice *net, float *buf, unsigned int buf_size)
Gets the decoded features.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_BLOB_DATA)(struct AILIANetwork *, void *, unsigned int, unsigned int)
Definition: ailia_voice.h:242
int AILIA_API ailiaVoiceGetWaveInfo(struct AILIAVoice *net, unsigned int *samples, unsigned int *channels, unsigned int *sampling_rate)
Gets the information of wave.
int AILIA_API ailiaVoiceOpenGPTSoVITSV3ModelFileW(struct AILIAVoice *net, const wchar_t *encoder, const wchar_t *decoder1, const wchar_t *decoder2, const wchar_t *ssl, const wchar_t *vq, const wchar_t *cfm, const wchar_t *bigvgan, const wchar_t *chinese_bert, const wchar_t *vocab)
Set GPT-SoVITS V3 models into a network instance.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_AUDIO_RESAMPLE)(void *, const void *, int, int, int, int)
Definition: ailia_voice.h:226
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_AUDIO_GET_SPECTROGRAM)(void *, const void *, int, int, int, int, int, int, int, float, int)
Definition: ailia_voice.h:229
int AILIA_API ailiaVoiceCreate(struct AILIAVoice **net, int env_id, int num_thread, int memory_mode, int flags, AILIAVoiceApiCallback callback, int version)
Creates a Voice instance.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_SET_MEMORY_MODE)(struct AILIANetwork *, unsigned int)
Definition: ailia_voice.h:237
int AILIA_API ailiaVoiceOpenGPTSoVITSV2ModelFileA(struct AILIAVoice *net, const char *encoder, const char *decoder1, const char *decoder2, const char *wave, const char *ssl, const char *chinese_bert, const char *vocab)
Set GPT-SoVITS V2 models into a network instance.
int AILIA_API ailiaVoiceSetUserDictionaryFileW(struct AILIAVoice *net, const wchar_t *dictionary_path, int dictionary_type)
Set user dictionary into a network instance.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_OUTPUT_BLOB_COUNT)(struct AILIANetwork *, unsigned int *)
Definition: ailia_voice.h:247
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_A)(struct AILIANetwork *, const char *)
Definition: ailia_voice.h:234
struct _AILIAVoiceApiCallback AILIAVoiceApiCallback
#define AILIA_VOICE_USER_API
Definition: ailia_voice.h:222
int AILIA_API ailiaVoiceGetFeatures(struct AILIAVoice *net, char *features, unsigned int len)
Gets the decoded features.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_BLOB_SHAPE)(struct AILIANetwork *, AILIAShape *, unsigned int, unsigned int)
Definition: ailia_voice.h:245
int AILIA_API ailiaVoiceOpenTacotron2ModelFileA(struct AILIAVoice *net, const char *encoder, const char *decoder1, const char *decoder2, const char *wave, int cleaner_type)
Set Tacotron2 models into a network instance.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_SHAPE)(struct AILIANetwork *, const AILIAShape *, unsigned int, unsigned int)
Definition: ailia_voice.h:244
int AILIA_API ailiaVoiceOpenDictionaryFileA(struct AILIAVoice *net, const char *dictionary_path, int dictionary_type)
Set dictionary into a network instance.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_AUDIO_GET_RESAMPLE_LEN)(int *, int, int, int)
Definition: ailia_voice.h:227
int AILIA_API ailiaVoiceSetSpeed(struct AILIAVoice *net, float speed)
Set the speech speed for synthesis.
int AILIA_API ailiaVoiceOpenGPTSoVITSV3ModelFileA(struct AILIAVoice *net, const char *encoder, const char *decoder1, const char *decoder2, const char *ssl, const char *vq, const char *cfm, const char *bigvgan, const char *chinese_bert, const char *vocab)
Set GPT-SoVITS V3 models into a network instance.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_OUTPUT_INDEX)(struct AILIANetwork *, unsigned int *, unsigned int)
Definition: ailia_voice.h:241
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_MEM)(struct AILIANetwork *, const void *, unsigned int)
Definition: ailia_voice.h:236
int AILIA_API ailiaVoiceOpenModelFileA(struct AILIAVoice *net, const char *encoder, const char *decoder1, const char *decoder2, const char *wave, const char *ssl, int model_type, int cleaner_type)
Set models into a network instance.
int AILIA_API ailiaVoiceOpenTacotron2ModelFileW(struct AILIAVoice *net, const wchar_t *encoder, const wchar_t *decoder1, const wchar_t *decoder2, const wchar_t *wave, int cleaner_type)
Set Tacotron2 models into a network instance.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_INPUT_BLOB_COUNT)(struct AILIANetwork *, unsigned int *)
Definition: ailia_voice.h:246
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_AUDIO_GET_FRAME_LEN)(int *, int, int, int, int)
Definition: ailia_voice.h:228
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_COPY_BLOB_DATA)(struct AILIANetwork *dst_net, unsigned int dst_blob_idx, struct AILIANetwork *src_net, unsigned int src_blob_idx)
Definition: ailia_voice.h:249
int AILIA_API ailiaVoiceOpenDictionaryFileW(struct AILIAVoice *net, const wchar_t *dictionary_path, int dictionary_type)
Set dictionary into a network instance.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_CREATE)(struct AILIANetwork **, int, int)
Definition: ailia_voice.h:233
void AILIA_API ailiaVoiceDestroy(struct AILIAVoice *net)
It destroys the Voice instance.
void(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_DESTROY)(struct AILIANetwork *)
Definition: ailia_voice.h:238
int AILIA_API ailiaVoiceSetSampleSteps(struct AILIAVoice *net, int steps)
Set the number of CFM sampling steps for GPT-SoVITS v3.
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_DATA)(struct AILIANetwork *, const void *, unsigned int, unsigned int)
Definition: ailia_voice.h:243
int AILIA_API ailiaVoiceOpenGPTSoVITSV1ModelFileW(struct AILIAVoice *net, const wchar_t *encoder, const wchar_t *decoder1, const wchar_t *decoder2, const wchar_t *wave, const wchar_t *ssl)
Set GPT-SoVITS V1 models into a network instance.
Definition: ailia_voice.h:263
AILIA_VOICE_USER_API_AILIA_CREATE ailiaCreate
Definition: ailia_voice.h:269
AILIA_VOICE_USER_API_AILIA_GET_OUTPUT_BLOB_COUNT ailiaGetOutputBlobCount
Definition: ailia_voice.h:283
AILIA_VOICE_USER_API_AILIA_GET_BLOB_DATA ailiaGetBlobData
Definition: ailia_voice.h:278
AILIA_VOICE_USER_API_AILIA_UPDATE ailiaUpdate
Definition: ailia_voice.h:275
AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_OUTPUT_INDEX ailiaGetBlobIndexByOutputIndex
Definition: ailia_voice.h:277
AILIA_VOICE_USER_API_AILIA_GET_BLOB_SHAPE ailiaGetBlobShape
Definition: ailia_voice.h:281
AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_W ailiaOpenWeightFileW
Definition: ailia_voice.h:271
AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_A ailiaOpenWeightFileA
Definition: ailia_voice.h:270
AILIA_VOICE_USER_API_AILIA_SET_MEMORY_MODE ailiaSetMemoryMode
Definition: ailia_voice.h:273
AILIA_VOICE_USER_API_AILIA_COPY_BLOB_DATA ailiaCopyBlobData
Definition: ailia_voice.h:285
AILIA_VOICE_USER_API_AILIA_AUDIO_GET_FRAME_LEN ailiaAudioGetFrameLen
Definition: ailia_voice.h:266
AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_SHAPE ailiaSetInputBlobShape
Definition: ailia_voice.h:280
AILIA_VOICE_USER_API_AILIA_AUDIO_GET_MEL_SPECTROGRAM ailiaAudioGetMelSpectrogram
Definition: ailia_voice.h:268
AILIA_VOICE_USER_API_AILIA_AUDIO_GET_SPECTROGRAM ailiaAudioGetSpectrogram
Definition: ailia_voice.h:267
AILIA_VOICE_USER_API_AILIA_AUDIO_RESAMPLE ailiaAudioResample
Definition: ailia_voice.h:264
AILIA_VOICE_USER_API_AILIA_GET_INPUT_BLOB_COUNT ailiaGetInputBlobCount
Definition: ailia_voice.h:282
AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_INPUT_INDEX ailiaGetBlobIndexByInputIndex
Definition: ailia_voice.h:276
AILIA_VOICE_USER_API_AILIA_DESTROY ailiaDestroy
Definition: ailia_voice.h:274
AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_DATA ailiaSetInputBlobData
Definition: ailia_voice.h:279
AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_MEM ailiaOpenWeightMem
Definition: ailia_voice.h:272
AILIA_VOICE_USER_API_AILIA_GET_ERROR_DETAIL ailiaGetErrorDetail
Definition: ailia_voice.h:284
AILIA_VOICE_USER_API_AILIA_AUDIO_GET_RESAMPLE_LEN ailiaAudioGetResampleLen
Definition: ailia_voice.h:265