ailia_voice  1.1.0.0
ailia_voice.h
Go to the documentation of this file.
1 
9 #ifndef INCLUDED_AILIA_VOICE
10 #define INCLUDED_AILIA_VOICE
11 
12 /* エラーコードと構造体 */
13 
14 #include "ailia.h"
15 #include "ailia_audio.h"
16 
17 /* 呼び出し規約 */
18 
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)
21 #define AILIA_API
22 #else
23 #define AILIA_API __stdcall
24 #endif
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 /****************************************************************
31  * 辞書定義
32  **/
33 
43 #define AILIA_VOICE_DICTIONARY_TYPE_OPEN_JTALK (0)
44 
54 #define AILIA_VOICE_DICTIONARY_TYPE_G2P_EN (1)
55 
56 /****************************************************************
57  * アルゴリズム定義
58  **/
59 
69 #define AILIA_VOICE_MODEL_TYPE_TACOTRON2 (0)
70 
80 #define AILIA_VOICE_MODEL_TYPE_GPT_SOVITS (1)
81 
91 #define AILIA_VOICE_CLEANER_TYPE_BASIC (0)
92 
102 #define AILIA_VOICE_CLEANER_TYPE_ENGLISH (1)
103 
104 /****************************************************************
105  * フラグ定義
106  **/
107 
117 #define AILIA_VOICE_FLAG_NONE (0)
118 
119 /****************************************************************
120  * G2Pの処理タイプ
121  **/
122 
132 #define AILIA_VOICE_G2P_TYPE_GPT_SOVITS_EN (1)
133 
143 #define AILIA_VOICE_G2P_TYPE_GPT_SOVITS_JA (2)
144 
145 #define AILIA_VOICE_TEXT_POST_PROCESS_APPEND_PUNCTUATION (2) // 互換性用
146 
147 /****************************************************************
148  * APIコールバック定義
149  **/
150 
151 //接続が必要なAPI
152 
153 #if defined(_WIN32) && !defined(_WIN64)
154  #define AILIA_VOICE_USER_API __stdcall
155 #else
156  #define AILIA_VOICE_USER_API
157 #endif
158 
159 // ailia.audio API
160 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_AUDIO_RESAMPLE)(void*, const void*, int, int, int, int);
162 
163 // ailia API
164 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_CREATE)(struct AILIANetwork **, int, int);
165 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_A)(struct AILIANetwork *, const char *);
166 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_W)(struct AILIANetwork *, const wchar_t *);
167 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_MEM)(struct AILIANetwork *, const void *, unsigned int);
168 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_SET_MEMORY_MODE)(struct AILIANetwork*, unsigned int);
169 typedef void(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_DESTROY)(struct AILIANetwork *);
170 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_UPDATE)(struct AILIANetwork *);
171 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_INPUT_INDEX)(struct AILIANetwork *, unsigned int *, unsigned int);
172 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_OUTPUT_INDEX)(struct AILIANetwork *, unsigned int *, unsigned int);
173 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_BLOB_DATA)(struct AILIANetwork *, void*, unsigned int, unsigned int);
174 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_DATA)(struct AILIANetwork *, const void*, unsigned int, unsigned int);
175 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_SHAPE)(struct AILIANetwork *, const AILIAShape*, unsigned int, unsigned int);
176 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_BLOB_SHAPE)(struct AILIANetwork *, AILIAShape*, unsigned int, unsigned int);
177 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_INPUT_BLOB_COUNT)(struct AILIANetwork *, unsigned int *);
178 typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_OUTPUT_BLOB_COUNT)(struct AILIANetwork *, unsigned int *);
179 typedef const char*(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_ERROR_DETAIL)(struct AILIANetwork *);
180 
190 #define AILIA_VOICE_API_CALLBACK_VERSION (1)
191 
192 /* APIコールバック関数構造体 */
193 typedef struct _AILIAVoiceApiCallback {
213 
214 /****************************************************************
215  * ボイスオブジェクトのインスタンス
216  **/
217 
218 struct AILIAVoice;
219 
220 /****************************************************************
221  * Voice API
222  **/
223 
254 int AILIA_API ailiaVoiceCreate(struct AILIAVoice** net, int env_id, int num_thread, int memory_mode, int flags, AILIAVoiceApiCallback callback, int version);
255 
273 int AILIA_API ailiaVoiceOpenDictionaryFileA(struct AILIAVoice* net, const char* dictionary_path, int dictionary_type);
274 
292 int AILIA_API ailiaVoiceOpenDictionaryFileW(struct AILIAVoice* net, const wchar_t* dictionary_path, int dictionary_type);
293 
321 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);
322 
350 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);
351 
373 int AILIA_API ailiaVoiceGraphemeToPhoneme(struct AILIAVoice* net, const char *utf8, int g2p_type);
374 
394 int AILIA_API ailiaVoiceExtractFullContext(struct AILIAVoice* net, const char *utf8);
395 
411 int AILIA_API ailiaVoiceGetFeatureLength(struct AILIAVoice* net, unsigned int* len);
412 
434 int AILIA_API ailiaVoiceGetFeatures(struct AILIAVoice* net, char* features, unsigned int len);
435 
460 int AILIA_API ailiaVoiceSetReference(struct AILIAVoice* net, float* buf, unsigned int buf_size, unsigned int channels, unsigned int sampling_rate, const char *features);
461 
481 int AILIA_API ailiaVoiceInference(struct AILIAVoice* net, const char *utf8);
482 
502 int AILIA_API ailiaVoiceGetWaveInfo(struct AILIAVoice* net, unsigned int* samples, unsigned int* channels, unsigned int* sampling_rate);
503 
525 int AILIA_API ailiaVoiceGetWave(struct AILIAVoice* net, float* buf, unsigned int buf_size);
526 
536 void AILIA_API ailiaVoiceDestroy(struct AILIAVoice* net);
537 
557 const char* AILIA_API ailiaVoiceGetErrorDetail(struct AILIAVoice* net);
558 
559 #ifdef UNICODE
560 #define ailiaVoiceOpenDictionaryFile ailiaVoiceOpenDictionaryFileW
561 #define ailiaVoiceOpenModelFile ailiaVoiceOpenModelFileW
562 #else
563 #define ailiaVoiceOpenDictionaryFile ailiaVoiceOpenDictionaryFileW
564 #define ailiaVoiceOpenModelFile ailiaVoiceOpenModelFileW
565 #endif
566 
567 #ifdef __cplusplus
568 }
569 #endif
570 #endif /* !defined(INCLUDED_AILIA_Voice) */
AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_MEM
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_MEM)(struct AILIANetwork *, const void *, unsigned int)
Definition: ailia_voice.h:167
_AILIAVoiceApiCallback
Definition: ailia_voice.h:193
AILIA_VOICE_USER_API_AILIA_GET_ERROR_DETAIL
const typedef char *AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_ERROR_DETAIL(struct AILIANetwork *)
_AILIAVoiceApiCallback::ailiaAudioResample
AILIA_VOICE_USER_API_AILIA_AUDIO_RESAMPLE ailiaAudioResample
Definition: ailia_voice.h:194
_AILIAVoiceApiCallback::ailiaAudioGetResampleLen
AILIA_VOICE_USER_API_AILIA_AUDIO_GET_RESAMPLE_LEN ailiaAudioGetResampleLen
Definition: ailia_voice.h:195
_AILIAVoiceApiCallback::ailiaGetBlobIndexByOutputIndex
AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_OUTPUT_INDEX ailiaGetBlobIndexByOutputIndex
Definition: ailia_voice.h:204
ailiaVoiceGetErrorDetail
const char *AILIA_API ailiaVoiceGetErrorDetail(struct AILIAVoice *net)
Returns the details of errors.
AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_SHAPE
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:175
ailiaVoiceDestroy
void AILIA_API ailiaVoiceDestroy(struct AILIAVoice *net)
It destroys the Voice instance.
ailiaVoiceGetFeatures
int AILIA_API ailiaVoiceGetFeatures(struct AILIAVoice *net, char *features, unsigned int len)
Gets the decoded features.
ailiaVoiceOpenDictionaryFileA
int AILIA_API ailiaVoiceOpenDictionaryFileA(struct AILIAVoice *net, const char *dictionary_path, int dictionary_type)
Set dictionary into a network instance.
AILIA_VOICE_USER_API_AILIA_UPDATE
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_UPDATE)(struct AILIANetwork *)
Definition: ailia_voice.h:170
AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_W
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_W)(struct AILIANetwork *, const wchar_t *)
Definition: ailia_voice.h:166
ailiaVoiceGetFeatureLength
int AILIA_API ailiaVoiceGetFeatureLength(struct AILIAVoice *net, unsigned int *len)
Gets the size of features. (Include null)
ailiaVoiceGetWaveInfo
int AILIA_API ailiaVoiceGetWaveInfo(struct AILIAVoice *net, unsigned int *samples, unsigned int *channels, unsigned int *sampling_rate)
Gets the information of wave.
AILIA_VOICE_USER_API
#define AILIA_VOICE_USER_API
Definition: ailia_voice.h:156
AILIA_VOICE_USER_API_AILIA_AUDIO_RESAMPLE
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_AUDIO_RESAMPLE)(void *, const void *, int, int, int, int)
Definition: ailia_voice.h:160
AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_INPUT_INDEX
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:171
ailiaVoiceOpenModelFileW
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.
AILIA_VOICE_USER_API_AILIA_GET_BLOB_DATA
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_BLOB_DATA)(struct AILIANetwork *, void *, unsigned int, unsigned int)
Definition: ailia_voice.h:173
ailiaVoiceOpenDictionaryFileW
int AILIA_API ailiaVoiceOpenDictionaryFileW(struct AILIAVoice *net, const wchar_t *dictionary_path, int dictionary_type)
Set dictionary into a network instance.
AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_OUTPUT_INDEX
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:172
ailiaVoiceGraphemeToPhoneme
int AILIA_API ailiaVoiceGraphemeToPhoneme(struct AILIAVoice *net, const char *utf8, int g2p_type)
Perform g2p.
ailiaVoiceInference
int AILIA_API ailiaVoiceInference(struct AILIAVoice *net, const char *utf8)
Perform inference.
_AILIAVoiceApiCallback::ailiaGetBlobIndexByInputIndex
AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_INPUT_INDEX ailiaGetBlobIndexByInputIndex
Definition: ailia_voice.h:203
_AILIAVoiceApiCallback::ailiaUpdate
AILIA_VOICE_USER_API_AILIA_UPDATE ailiaUpdate
Definition: ailia_voice.h:202
_AILIAVoiceApiCallback::ailiaGetInputBlobCount
AILIA_VOICE_USER_API_AILIA_GET_INPUT_BLOB_COUNT ailiaGetInputBlobCount
Definition: ailia_voice.h:209
AILIA_API
#define AILIA_API
Definition: ailia_voice.h:23
_AILIAVoiceApiCallback::ailiaGetErrorDetail
AILIA_VOICE_USER_API_AILIA_GET_ERROR_DETAIL ailiaGetErrorDetail
Definition: ailia_voice.h:211
AILIA_VOICE_USER_API_AILIA_GET_OUTPUT_BLOB_COUNT
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_OUTPUT_BLOB_COUNT)(struct AILIANetwork *, unsigned int *)
Definition: ailia_voice.h:178
_AILIAVoiceApiCallback::ailiaGetOutputBlobCount
AILIA_VOICE_USER_API_AILIA_GET_OUTPUT_BLOB_COUNT ailiaGetOutputBlobCount
Definition: ailia_voice.h:210
ailiaVoiceOpenModelFileA
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.
AILIA_VOICE_USER_API_AILIA_SET_MEMORY_MODE
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_SET_MEMORY_MODE)(struct AILIANetwork *, unsigned int)
Definition: ailia_voice.h:168
_AILIAVoiceApiCallback::ailiaSetInputBlobShape
AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_SHAPE ailiaSetInputBlobShape
Definition: ailia_voice.h:207
ailiaVoiceExtractFullContext
int AILIA_API ailiaVoiceExtractFullContext(struct AILIAVoice *net, const char *utf8)
Perform ExtractFullContext.
AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_A
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_A)(struct AILIANetwork *, const char *)
Definition: ailia_voice.h:165
_AILIAVoiceApiCallback::ailiaOpenWeightFileW
AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_W ailiaOpenWeightFileW
Definition: ailia_voice.h:198
_AILIAVoiceApiCallback::ailiaSetMemoryMode
AILIA_VOICE_USER_API_AILIA_SET_MEMORY_MODE ailiaSetMemoryMode
Definition: ailia_voice.h:200
_AILIAVoiceApiCallback::ailiaOpenWeightMem
AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_MEM ailiaOpenWeightMem
Definition: ailia_voice.h:199
ailiaVoiceGetWave
int AILIA_API ailiaVoiceGetWave(struct AILIAVoice *net, float *buf, unsigned int buf_size)
Gets the decoded features.
AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_DATA
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:174
ailiaVoiceCreate
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.
_AILIAVoiceApiCallback::ailiaCreate
AILIA_VOICE_USER_API_AILIA_CREATE ailiaCreate
Definition: ailia_voice.h:196
AILIA_VOICE_USER_API_AILIA_GET_INPUT_BLOB_COUNT
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_INPUT_BLOB_COUNT)(struct AILIANetwork *, unsigned int *)
Definition: ailia_voice.h:177
AILIA_VOICE_USER_API_AILIA_GET_BLOB_SHAPE
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_GET_BLOB_SHAPE)(struct AILIANetwork *, AILIAShape *, unsigned int, unsigned int)
Definition: ailia_voice.h:176
ailiaVoiceSetReference
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.
AILIA_VOICE_USER_API_AILIA_AUDIO_GET_RESAMPLE_LEN
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_AUDIO_GET_RESAMPLE_LEN)(int *, int, int, int)
Definition: ailia_voice.h:161
_AILIAVoiceApiCallback::ailiaDestroy
AILIA_VOICE_USER_API_AILIA_DESTROY ailiaDestroy
Definition: ailia_voice.h:201
_AILIAVoiceApiCallback::ailiaSetInputBlobData
AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_DATA ailiaSetInputBlobData
Definition: ailia_voice.h:206
_AILIAVoiceApiCallback::ailiaGetBlobData
AILIA_VOICE_USER_API_AILIA_GET_BLOB_DATA ailiaGetBlobData
Definition: ailia_voice.h:205
AILIAVoiceApiCallback
struct _AILIAVoiceApiCallback AILIAVoiceApiCallback
AILIA_VOICE_USER_API_AILIA_CREATE
int(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_CREATE)(struct AILIANetwork **, int, int)
Definition: ailia_voice.h:164
AILIA_VOICE_USER_API_AILIA_DESTROY
void(AILIA_VOICE_USER_API * AILIA_VOICE_USER_API_AILIA_DESTROY)(struct AILIANetwork *)
Definition: ailia_voice.h:169
_AILIAVoiceApiCallback::ailiaOpenWeightFileA
AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_A ailiaOpenWeightFileA
Definition: ailia_voice.h:197
_AILIAVoiceApiCallback::ailiaGetBlobShape
AILIA_VOICE_USER_API_AILIA_GET_BLOB_SHAPE ailiaGetBlobShape
Definition: ailia_voice.h:208