ailia_voice
1.3.0.0
|
ailia Voice ライブラリ [詳解]
#include "ailia.h"
#include "ailia_audio.h"
クラス | |
struct | _AILIAVoiceApiCallback |
マクロ定義 | |
#define | AILIA_API __stdcall |
#define | AILIA_VOICE_DICTIONARY_TYPE_OPEN_JTALK (0) |
OpenJtalk形式 [詳解] | |
#define | AILIA_VOICE_DICTIONARY_TYPE_G2P_EN (1) |
G2P_EN形式 [詳解] | |
#define | AILIA_VOICE_MODEL_TYPE_TACOTRON2 (0) |
Tacoreon2形式 [詳解] | |
#define | AILIA_VOICE_MODEL_TYPE_GPT_SOVITS (1) |
GPT-SoVITS形式 [詳解] | |
#define | AILIA_VOICE_CLEANER_TYPE_BASIC (0) |
BasicCleaner [詳解] | |
#define | AILIA_VOICE_CLEANER_TYPE_ENGLISH (1) |
EnglishCleaner [詳解] | |
#define | AILIA_VOICE_FLAG_NONE (0) |
フラグを設定しません [詳解] | |
#define | AILIA_VOICE_G2P_TYPE_GPT_SOVITS_EN (1) |
GPT_SOVITSの英語向けの処理 [詳解] | |
#define | AILIA_VOICE_G2P_TYPE_GPT_SOVITS_JA (2) |
GPT_SOVITSの日本語向けの処理 [詳解] | |
#define | AILIA_VOICE_TEXT_POST_PROCESS_APPEND_PUNCTUATION (2) |
#define | AILIA_VOICE_USER_API |
#define | AILIA_VOICE_API_CALLBACK_VERSION (2) |
構造体バージョン [詳解] | |
#define | ailiaVoiceSetUserDictionaryFile ailiaVoiceSetUserDictionaryFileA |
#define | ailiaVoiceOpenDictionaryFile ailiaVoiceOpenDictionaryFileW |
#define | ailiaVoiceOpenModelFile ailiaVoiceOpenModelFileW |
型定義 | |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_AUDIO_RESAMPLE) (void *, const void *, int, int, int, int) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_AUDIO_GET_RESAMPLE_LEN) (int *, int, int, int) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_CREATE) (struct AILIANetwork **, int, int) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_A) (struct AILIANetwork *, const char *) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_W) (struct AILIANetwork *, const wchar_t *) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_MEM) (struct AILIANetwork *, const void *, unsigned int) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_SET_MEMORY_MODE) (struct AILIANetwork *, unsigned int) |
typedef void(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_DESTROY) (struct AILIANetwork *) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_UPDATE) (struct AILIANetwork *) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_INPUT_INDEX) (struct AILIANetwork *, unsigned int *, unsigned int) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_OUTPUT_INDEX) (struct AILIANetwork *, unsigned int *, unsigned int) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_GET_BLOB_DATA) (struct AILIANetwork *, void *, unsigned int, unsigned int) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_DATA) (struct AILIANetwork *, const void *, unsigned int, unsigned int) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_SHAPE) (struct AILIANetwork *, const AILIAShape *, unsigned int, unsigned int) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_GET_BLOB_SHAPE) (struct AILIANetwork *, AILIAShape *, unsigned int, unsigned int) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_GET_INPUT_BLOB_COUNT) (struct AILIANetwork *, unsigned int *) |
typedef int(AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_GET_OUTPUT_BLOB_COUNT) (struct AILIANetwork *, unsigned int *) |
typedef 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) |
typedef struct _AILIAVoiceApiCallback | AILIAVoiceApiCallback |
関数 | |
const typedef char *AILIA_VOICE_USER_API * | AILIA_VOICE_USER_API_AILIA_GET_ERROR_DETAIL (struct AILIANetwork *) |
int AILIA_API | ailiaVoiceCreate (struct AILIAVoice **net, int env_id, int num_thread, int memory_mode, int flags, AILIAVoiceApiCallback callback, int version) |
ボイスオブジェクトを作成します。 [詳解] | |
int AILIA_API | ailiaVoiceSetUserDictionaryFileA (struct AILIAVoice *net, const char *dictionary_path, int dictionary_type) |
ユーザ辞書を指定します。(MBSC) [詳解] | |
int AILIA_API | ailiaVoiceSetUserDictionaryFileW (struct AILIAVoice *net, const wchar_t *dictionary_path, int dictionary_type) |
ユーザ辞書を指定します。(UTF16) [詳解] | |
int AILIA_API | ailiaVoiceOpenDictionaryFileA (struct AILIAVoice *net, const char *dictionary_path, int dictionary_type) |
辞書を指定します。(MBSC) [詳解] | |
int AILIA_API | ailiaVoiceOpenDictionaryFileW (struct AILIAVoice *net, const wchar_t *dictionary_path, int dictionary_type) |
辞書を指定します。(UTF16) [詳解] | |
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) |
モデルを指定します。(MBSC) [詳解] | |
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) |
モデルを指定します。(UTF16) [詳解] | |
int AILIA_API | ailiaVoiceGraphemeToPhoneme (struct AILIAVoice *net, const char *utf8, int g2p_type) |
G2Pを行います。 [詳解] | |
int AILIA_API | ailiaVoiceExtractFullContext (struct AILIAVoice *net, const char *utf8) |
ExtractFullContextを行います。 [詳解] | |
int AILIA_API | ailiaVoiceGetFeatureLength (struct AILIAVoice *net, unsigned int *len) |
フィーチャーの長さを取得します。(NULL文字含む) [詳解] | |
int AILIA_API | ailiaVoiceGetFeatures (struct AILIAVoice *net, char *features, unsigned int len) |
フィーチャーを取得します。 [詳解] | |
int AILIA_API | ailiaVoiceSetReference (struct AILIAVoice *net, float *buf, unsigned int buf_size, unsigned int channels, unsigned int sampling_rate, const char *features) |
0ショット音声合成のリファレンスとなる波形とテキストを設定します。 [詳解] | |
int AILIA_API | ailiaVoiceInference (struct AILIAVoice *net, const char *utf8) |
推論を行います。 [詳解] | |
int AILIA_API | ailiaVoiceGetWaveInfo (struct AILIAVoice *net, unsigned int *samples, unsigned int *channels, unsigned int *sampling_rate) |
波形の情報を取得します。 [詳解] | |
int AILIA_API | ailiaVoiceGetWave (struct AILIAVoice *net, float *buf, unsigned int buf_size) |
波形を取得します。 [詳解] | |
void AILIA_API | ailiaVoiceDestroy (struct AILIAVoice *net) |
ボイスオブジェクトを破棄します。 [詳解] | |
const char *AILIA_API | ailiaVoiceGetErrorDetail (struct AILIAVoice *net) |
エラーの詳細を返します [詳解] | |
ailia Voice ライブラリ
#define AILIA_API __stdcall |
#define AILIA_VOICE_API_CALLBACK_VERSION (2) |
構造体バージョン
#define AILIA_VOICE_CLEANER_TYPE_BASIC (0) |
BasicCleaner
#define AILIA_VOICE_CLEANER_TYPE_ENGLISH (1) |
EnglishCleaner
#define AILIA_VOICE_DICTIONARY_TYPE_G2P_EN (1) |
G2P_EN形式
#define AILIA_VOICE_DICTIONARY_TYPE_OPEN_JTALK (0) |
OpenJtalk形式
#define AILIA_VOICE_FLAG_NONE (0) |
フラグを設定しません
#define AILIA_VOICE_G2P_TYPE_GPT_SOVITS_EN (1) |
GPT_SOVITSの英語向けの処理
#define AILIA_VOICE_G2P_TYPE_GPT_SOVITS_JA (2) |
GPT_SOVITSの日本語向けの処理
#define AILIA_VOICE_MODEL_TYPE_GPT_SOVITS (1) |
GPT-SoVITS形式
#define AILIA_VOICE_MODEL_TYPE_TACOTRON2 (0) |
Tacoreon2形式
#define AILIA_VOICE_TEXT_POST_PROCESS_APPEND_PUNCTUATION (2) |
#define AILIA_VOICE_USER_API |
#define ailiaVoiceOpenDictionaryFile ailiaVoiceOpenDictionaryFileW |
#define ailiaVoiceOpenModelFile ailiaVoiceOpenModelFileW |
#define ailiaVoiceSetUserDictionaryFile ailiaVoiceSetUserDictionaryFileA |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_AUDIO_GET_RESAMPLE_LEN) (int *, int, int, int) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_AUDIO_RESAMPLE) (void *, const void *, int, int, int, int) |
typedef 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) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_CREATE) (struct AILIANetwork **, int, int) |
typedef void(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_DESTROY) (struct AILIANetwork *) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_BLOB_DATA) (struct AILIANetwork *, void *, unsigned int, unsigned int) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_INPUT_INDEX) (struct AILIANetwork *, unsigned int *, unsigned int) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_BLOB_INDEX_BY_OUTPUT_INDEX) (struct AILIANetwork *, unsigned int *, unsigned int) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_BLOB_SHAPE) (struct AILIANetwork *, AILIAShape *, unsigned int, unsigned int) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_INPUT_BLOB_COUNT) (struct AILIANetwork *, unsigned int *) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_OUTPUT_BLOB_COUNT) (struct AILIANetwork *, unsigned int *) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_A) (struct AILIANetwork *, const char *) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_FILE_W) (struct AILIANetwork *, const wchar_t *) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_OPEN_WEIGHT_MEM) (struct AILIANetwork *, const void *, unsigned int) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_DATA) (struct AILIANetwork *, const void *, unsigned int, unsigned int) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_SET_INPUT_BLOB_SHAPE) (struct AILIANetwork *, const AILIAShape *, unsigned int, unsigned int) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_SET_MEMORY_MODE) (struct AILIANetwork *, unsigned int) |
typedef int(AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_UPDATE) (struct AILIANetwork *) |
typedef struct _AILIAVoiceApiCallback AILIAVoiceApiCallback |
const typedef char* AILIA_VOICE_USER_API* AILIA_VOICE_USER_API_AILIA_GET_ERROR_DETAIL | ( | struct AILIANetwork * | ) |
int AILIA_API ailiaVoiceCreate | ( | struct AILIAVoice ** | net, |
int | env_id, | ||
int | num_thread, | ||
int | memory_mode, | ||
int | flags, | ||
AILIAVoiceApiCallback | callback, | ||
int | version | ||
) |
ボイスオブジェクトを作成します。
net | ボイスオブジェクトポインタへのポインタ |
env_id | 計算に利用する推論実行環境のID( ailiaGetEnvironment() で取得) AILIA_ENVIRONMENT_ID_AUTO にした場合は自動で選択する |
num_thread | スレッド数の上限( AILIA_MULTITHREAD_AUTO にした場合は自動で設定) |
memory_mode | メモリモード(AILIA_MEMORY_MODE_*) |
flag | AILIA_VOICE_FLAG_*の論理和 |
api_callback | ailiaのAPIへのコールバック |
version | AILIA_VOICE_API_CALLBACK_VERSION |
ボイスオブジェクトを作成します。
void AILIA_API ailiaVoiceDestroy | ( | struct AILIAVoice * | net | ) |
ボイスオブジェクトを破棄します。
net | ボイスオブジェクトポインタ |
int AILIA_API ailiaVoiceExtractFullContext | ( | struct AILIAVoice * | net, |
const char * | utf8 | ||
) |
ExtractFullContextを行います。
net | ボイスオブジェクトポインタ |
text | テキスト(UTF8) |
認識した結果はailiaVoiceGetFeaturesAPIで取得します。
const char* AILIA_API ailiaVoiceGetErrorDetail | ( | struct AILIAVoice * | net | ) |
エラーの詳細を返します
net | ネットワークオブジェクトポインタ |
返値は解放する必要はありません。 文字列の有効期間は次にailiaVoiceのAPIを呼ぶまでです。
int AILIA_API ailiaVoiceGetFeatureLength | ( | struct AILIAVoice * | net, |
unsigned int * | len | ||
) |
フィーチャーの長さを取得します。(NULL文字含む)
net | ボイスオブジェクトポインタ |
len | フィーチャーの長さ |
int AILIA_API ailiaVoiceGetFeatures | ( | struct AILIAVoice * | net, |
char * | features, | ||
unsigned int | len | ||
) |
フィーチャーを取得します。
net | ボイスオブジェクトポインタ |
features | フィーチャー(UTF8) |
len | フィーチャーの長さ |
ailiaVoiceGraphemeToPhoneme() もしくは ailiaVoiceExtractFullContext() を一度も実行していない場合は AILIA_STATUS_INVALID_STATE が返ります。
int AILIA_API ailiaVoiceGetWave | ( | struct AILIAVoice * | net, |
float * | buf, | ||
unsigned int | buf_size | ||
) |
波形を取得します。
net | ボイスオブジェクトポインタ |
buf | PCM波形 (0 - 1で正規化) |
buf_size | バッファサイズ(byte単位) |
ailiaVoiceInference() を一度も実行していない場合は AILIA_STATUS_INVALID_STATE が返ります。
int AILIA_API ailiaVoiceGetWaveInfo | ( | struct AILIAVoice * | net, |
unsigned int * | samples, | ||
unsigned int * | channels, | ||
unsigned int * | sampling_rate | ||
) |
波形の情報を取得します。
net | ボイスオブジェクトポインタ |
samples | サンプル数(チャンネル単位) |
channels | チャンネル数 |
sampling_rate | サンプリングレート |
int AILIA_API ailiaVoiceGraphemeToPhoneme | ( | struct AILIAVoice * | net, |
const char * | utf8, | ||
int | g2p_type | ||
) |
G2Pを行います。
net | ボイスオブジェクトポインタ |
text | テキスト(UTF8) |
g2p_type | AILIA_VOICE_G2P_TYPE_* |
認識した結果はailiaVoiceGetFeatures APIで取得します。
int AILIA_API ailiaVoiceInference | ( | struct AILIAVoice * | net, |
const char * | utf8 | ||
) |
推論を行います。
net | ボイスオブジェクトポインタ |
text | テキスト(UTF8) |
音声合成した結果はailiaVoiceGetWave APIで取得します。
int AILIA_API ailiaVoiceOpenDictionaryFileA | ( | struct AILIAVoice * | net, |
const char * | dictionary_path, | ||
int | dictionary_type | ||
) |
辞書を指定します。(MBSC)
net | ネットワークオブジェクトポインタ |
dictionary_path | 辞書フォルダのパス名(MBSC) |
dictionary_type | AILIA_VOICE_DICTIONARY_TYPE_* |
int AILIA_API ailiaVoiceOpenDictionaryFileW | ( | struct AILIAVoice * | net, |
const wchar_t * | dictionary_path, | ||
int | dictionary_type | ||
) |
辞書を指定します。(UTF16)
net | ネットワークオブジェクトポインタ |
dictionary_path | 辞書フォルダのパス名(UTF16) |
dictionary_type | AILIA_VOICE_DICTIONARY_TYPE_* |
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 | ||
) |
モデルを指定します。(MBSC)
net | ネットワークオブジェクトポインタ |
encoder_path | onnxファイルのパス名(MBSC) |
decoder1_path | onnxファイルのパス名(MBSC) |
decoder2_path | onnxファイルのパス名(MBSC) |
wave_path | onnxファイルのパス名(MBSC) |
ssl_path | onnxファイルのパス名(MBSC) |
model_type | AILIA_VOICE_MODEL_TYPE_* |
cleaner_type | AILIA_VOICE_CLEANER_TYPE_* |
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 | ||
) |
モデルを指定します。(UTF16)
net | ネットワークオブジェクトポインタ |
encoder | onnxファイルのパス名(UTF16) |
decoder1 | onnxファイルのパス名(UTF16) |
decoder2 | onnxファイルのパス名(UTF16) |
wave | onnxファイルのパス名(UTF16) |
ssl | onnxファイルのパス名(UTF16) |
model_type | AILIA_VOICE_MODEL_TYPE_* |
cleaner_type | AILIA_VOICE_CLEANER_TYPE_* |
int AILIA_API ailiaVoiceSetReference | ( | struct AILIAVoice * | net, |
float * | buf, | ||
unsigned int | buf_size, | ||
unsigned int | channels, | ||
unsigned int | sampling_rate, | ||
const char * | features | ||
) |
0ショット音声合成のリファレンスとなる波形とテキストを設定します。
net | ボイスオブジェクトポインタ |
buf | PCM波形 (0 - 1で正規化) |
buf_size | バッファサイズ(byte単位) |
channels | チャンネル数 |
sampling_rate | サンプリングレート |
features | フィーチャー(UTF8) |
int AILIA_API ailiaVoiceSetUserDictionaryFileA | ( | struct AILIAVoice * | net, |
const char * | dictionary_path, | ||
int | dictionary_type | ||
) |
ユーザ辞書を指定します。(MBSC)
net | ネットワークオブジェクトポインタ |
dictionary_path | ユーザ辞書ファイルのパス名(MBSC) |
dictionary_type | AILIA_VOICE_DICTIONARY_TYPE_* |
ailiaVoiceOpenDictionaryFileAの前に呼び出す必要があります。
int AILIA_API ailiaVoiceSetUserDictionaryFileW | ( | struct AILIAVoice * | net, |
const wchar_t * | dictionary_path, | ||
int | dictionary_type | ||
) |
ユーザ辞書を指定します。(UTF16)
net | ネットワークオブジェクトポインタ |
dictionary_path | ユーザ辞書ファイルのパス名(UTF16) |
dictionary_type | AILIA_VOICE_DICTIONARY_TYPE_* |
ailiaVoiceOpenDictionaryFileWの前に呼び出す必要があります。