VoicevoxCore
Loading...
Searching...
No Matches
voicevox_core.h File Reference
#include <stdbool.h>
#include <stdint.h>
Include dependency graph for voicevox_core.h:

Go to the source code of this file.

Data Structures

struct  VoicevoxLoadOnnxruntimeOptions
 
struct  VoicevoxInitializeOptions
 
struct  VoicevoxSynthesisOptions
 
struct  VoicevoxTtsOptions
 
struct  VoicevoxUserDictWord
 

Typedefs

typedef int32_t VoicevoxAccelerationMode
 
typedef int32_t VoicevoxResultCode
 
typedef int32_t VoicevoxUserDictWordType
 
typedef struct OpenJtalkRc OpenJtalkRc
 
typedef struct VoicevoxOnnxruntime VoicevoxOnnxruntime
 
typedef struct VoicevoxSynthesizer VoicevoxSynthesizer
 
typedef struct VoicevoxUserDict VoicevoxUserDict
 
typedef struct VoicevoxVoiceModelFile VoicevoxVoiceModelFile
 
typedef struct VoicevoxLoadOnnxruntimeOptions VoicevoxLoadOnnxruntimeOptions
 
typedef struct VoicevoxInitializeOptions VoicevoxInitializeOptions
 
typedef const uint8_t(* VoicevoxVoiceModelId)[16]
 
typedef uint32_t VoicevoxStyleId
 
typedef struct VoicevoxSynthesisOptions VoicevoxSynthesisOptions
 
typedef struct VoicevoxTtsOptions VoicevoxTtsOptions
 
typedef struct VoicevoxUserDictWord VoicevoxUserDictWord
 

Enumerations

enum  VoicevoxAccelerationMode { VOICEVOX_ACCELERATION_MODE_AUTO = 0 , VOICEVOX_ACCELERATION_MODE_CPU = 1 , VOICEVOX_ACCELERATION_MODE_GPU = 2 }
 
enum  VoicevoxResultCode {
  VOICEVOX_RESULT_OK = 0 , VOICEVOX_RESULT_NOT_LOADED_OPENJTALK_DICT_ERROR = 1 , VOICEVOX_RESULT_GET_SUPPORTED_DEVICES_ERROR = 3 , VOICEVOX_RESULT_GPU_SUPPORT_ERROR = 4 ,
  VOICEVOX_RESULT_INIT_INFERENCE_RUNTIME_ERROR = 29 , VOICEVOX_RESULT_STYLE_NOT_FOUND_ERROR = 6 , VOICEVOX_RESULT_MODEL_NOT_FOUND_ERROR = 7 , VOICEVOX_RESULT_RUN_MODEL_ERROR = 8 ,
  VOICEVOX_RESULT_EXTRACT_FULL_CONTEXT_LABEL_ERROR = 11 , VOICEVOX_RESULT_INVALID_UTF8_INPUT_ERROR = 12 , VOICEVOX_RESULT_PARSE_KANA_ERROR = 13 , VOICEVOX_RESULT_INVALID_AUDIO_QUERY_ERROR = 14 ,
  VOICEVOX_RESULT_INVALID_ACCENT_PHRASE_ERROR = 15 , VOICEVOX_RESULT_OPEN_ZIP_FILE_ERROR = 16 , VOICEVOX_RESULT_READ_ZIP_ENTRY_ERROR = 17 , VOICEVOX_RESULT_INVALID_MODEL_HEADER_ERROR = 28 ,
  VOICEVOX_RESULT_MODEL_ALREADY_LOADED_ERROR = 18 , VOICEVOX_RESULT_STYLE_ALREADY_LOADED_ERROR = 26 , VOICEVOX_RESULT_INVALID_MODEL_DATA_ERROR = 27 , VOICEVOX_RESULT_LOAD_USER_DICT_ERROR = 20 ,
  VOICEVOX_RESULT_SAVE_USER_DICT_ERROR = 21 , VOICEVOX_RESULT_USER_DICT_WORD_NOT_FOUND_ERROR = 22 , VOICEVOX_RESULT_USE_USER_DICT_ERROR = 23 , VOICEVOX_RESULT_INVALID_USER_DICT_WORD_ERROR = 24 ,
  VOICEVOX_RESULT_INVALID_UUID_ERROR = 25
}
 
enum  VoicevoxUserDictWordType {
  VOICEVOX_USER_DICT_WORD_TYPE_PROPER_NOUN = 0 , VOICEVOX_USER_DICT_WORD_TYPE_COMMON_NOUN = 1 , VOICEVOX_USER_DICT_WORD_TYPE_VERB = 2 , VOICEVOX_USER_DICT_WORD_TYPE_ADJECTIVE = 3 ,
  VOICEVOX_USER_DICT_WORD_TYPE_SUFFIX = 4
}
 

Functions

const char * voicevox_get_onnxruntime_lib_versioned_filename (void)
 
const char * voicevox_get_onnxruntime_lib_unversioned_filename (void)
 
struct VoicevoxLoadOnnxruntimeOptions voicevox_make_default_load_onnxruntime_options (void)
 
const struct VoicevoxOnnxruntimevoicevox_onnxruntime_get (void)
 
VoicevoxResultCode voicevox_onnxruntime_load_once (struct VoicevoxLoadOnnxruntimeOptions options, const struct VoicevoxOnnxruntime **out_onnxruntime)
 
VoicevoxResultCode voicevox_onnxruntime_init_once (const struct VoicevoxOnnxruntime **out_onnxruntime)
 
VoicevoxResultCode voicevox_open_jtalk_rc_new (const char *open_jtalk_dic_dir, struct OpenJtalkRc **out_open_jtalk)
 
VoicevoxResultCode voicevox_open_jtalk_rc_use_user_dict (const struct OpenJtalkRc *open_jtalk, const struct VoicevoxUserDict *user_dict)
 
void voicevox_open_jtalk_rc_delete (struct OpenJtalkRc *open_jtalk)
 
struct VoicevoxInitializeOptions voicevox_make_default_initialize_options (void)
 
const char * voicevox_get_version (void)
 
VoicevoxResultCode voicevox_voice_model_file_open (const char *path, struct VoicevoxVoiceModelFile **out_model)
 
void voicevox_voice_model_file_id (const struct VoicevoxVoiceModelFile *model, uint8_t(*output_voice_model_id)[16])
 
char * voicevox_voice_model_file_create_metas_json (const struct VoicevoxVoiceModelFile *model)
 
void voicevox_voice_model_file_close (struct VoicevoxVoiceModelFile *model)
 
VoicevoxResultCode voicevox_synthesizer_new (const struct VoicevoxOnnxruntime *onnxruntime, const struct OpenJtalkRc *open_jtalk, struct VoicevoxInitializeOptions options, struct VoicevoxSynthesizer **out_synthesizer)
 
void voicevox_synthesizer_delete (struct VoicevoxSynthesizer *synthesizer)
 
VoicevoxResultCode voicevox_synthesizer_load_voice_model (const struct VoicevoxSynthesizer *synthesizer, const struct VoicevoxVoiceModelFile *model)
 
VoicevoxResultCode voicevox_synthesizer_unload_voice_model (const struct VoicevoxSynthesizer *synthesizer, VoicevoxVoiceModelId model_id)
 
const struct VoicevoxOnnxruntimevoicevox_synthesizer_get_onnxruntime (const struct VoicevoxSynthesizer *synthesizer)
 
bool voicevox_synthesizer_is_gpu_mode (const struct VoicevoxSynthesizer *synthesizer)
 
bool voicevox_synthesizer_is_loaded_voice_model (const struct VoicevoxSynthesizer *synthesizer, VoicevoxVoiceModelId model_id)
 
char * voicevox_synthesizer_create_metas_json (const struct VoicevoxSynthesizer *synthesizer)
 
VoicevoxResultCode voicevox_onnxruntime_create_supported_devices_json (const struct VoicevoxOnnxruntime *onnxruntime, char **output_supported_devices_json)
 
VoicevoxResultCode voicevox_synthesizer_create_audio_query_from_kana (const struct VoicevoxSynthesizer *synthesizer, const char *kana, VoicevoxStyleId style_id, char **output_audio_query_json)
 
VoicevoxResultCode voicevox_synthesizer_create_audio_query (const struct VoicevoxSynthesizer *synthesizer, const char *text, VoicevoxStyleId style_id, char **output_audio_query_json)
 
VoicevoxResultCode voicevox_synthesizer_create_accent_phrases_from_kana (const struct VoicevoxSynthesizer *synthesizer, const char *kana, VoicevoxStyleId style_id, char **output_accent_phrases_json)
 
VoicevoxResultCode voicevox_synthesizer_create_accent_phrases (const struct VoicevoxSynthesizer *synthesizer, const char *text, VoicevoxStyleId style_id, char **output_accent_phrases_json)
 
VoicevoxResultCode voicevox_synthesizer_replace_mora_data (const struct VoicevoxSynthesizer *synthesizer, const char *accent_phrases_json, VoicevoxStyleId style_id, char **output_accent_phrases_json)
 
VoicevoxResultCode voicevox_synthesizer_replace_phoneme_length (const struct VoicevoxSynthesizer *synthesizer, const char *accent_phrases_json, VoicevoxStyleId style_id, char **output_accent_phrases_json)
 
VoicevoxResultCode voicevox_synthesizer_replace_mora_pitch (const struct VoicevoxSynthesizer *synthesizer, const char *accent_phrases_json, VoicevoxStyleId style_id, char **output_accent_phrases_json)
 
struct VoicevoxSynthesisOptions voicevox_make_default_synthesis_options (void)
 
VoicevoxResultCode voicevox_synthesizer_synthesis (const struct VoicevoxSynthesizer *synthesizer, const char *audio_query_json, VoicevoxStyleId style_id, struct VoicevoxSynthesisOptions options, uintptr_t *output_wav_length, uint8_t **output_wav)
 
struct VoicevoxTtsOptions voicevox_make_default_tts_options (void)
 
VoicevoxResultCode voicevox_synthesizer_tts_from_kana (const struct VoicevoxSynthesizer *synthesizer, const char *kana, VoicevoxStyleId style_id, struct VoicevoxTtsOptions options, uintptr_t *output_wav_length, uint8_t **output_wav)
 
VoicevoxResultCode voicevox_synthesizer_tts (const struct VoicevoxSynthesizer *synthesizer, const char *text, VoicevoxStyleId style_id, struct VoicevoxTtsOptions options, uintptr_t *output_wav_length, uint8_t **output_wav)
 
void voicevox_json_free (char *json)
 
void voicevox_wav_free (uint8_t *wav)
 
const char * voicevox_error_result_to_message (VoicevoxResultCode result_code)
 
struct VoicevoxUserDictWord voicevox_user_dict_word_make (const char *surface, const char *pronunciation)
 
struct VoicevoxUserDictvoicevox_user_dict_new (void)
 
VoicevoxResultCode voicevox_user_dict_load (const struct VoicevoxUserDict *user_dict, const char *dict_path)
 
VoicevoxResultCode voicevox_user_dict_add_word (const struct VoicevoxUserDict *user_dict, const struct VoicevoxUserDictWord *word, uint8_t(*output_word_uuid)[16])
 
VoicevoxResultCode voicevox_user_dict_update_word (const struct VoicevoxUserDict *user_dict, const uint8_t(*word_uuid)[16], const struct VoicevoxUserDictWord *word)
 
VoicevoxResultCode voicevox_user_dict_remove_word (const struct VoicevoxUserDict *user_dict, const uint8_t(*word_uuid)[16])
 
VoicevoxResultCode voicevox_user_dict_to_json (const struct VoicevoxUserDict *user_dict, char **output_json)
 
VoicevoxResultCode voicevox_user_dict_import (const struct VoicevoxUserDict *user_dict, const struct VoicevoxUserDict *other_dict)
 
VoicevoxResultCode voicevox_user_dict_save (const struct VoicevoxUserDict *user_dict, const char *path)
 
void voicevox_user_dict_delete (struct VoicevoxUserDict *user_dict)
 

Detailed Description

無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXのコア。

Availability

ヘッダによって次の二つのマクロのうちどちらかが存在する。リリースされているライブラリではiOSでのみVOICEVOX_LINK_ONNXRUNTIMEが、他のプラットフォームではVOICEVOX_LOAD_ONNXRUNTIMEが存在する。

  • VOICEVOX_LOAD_ONNXRUNTIME: voicevox_onnxruntime_load_once と、それに付属するアイテムが利用可能になる。
  • VOICEVOX_LINK_ONNXRUNTIME: voicevox_onnxruntime_init_once が利用可能になる。またこのマクロが存在するなら、このライブラリはONNX Runtimeをロード時動的リンクする。
⚠️ Safety

このライブラリの利用にあたっては、いくつかの不変条件が守られている必要がある。本ドキュメントではこの不変条件を安全性要件(safety requirements)と呼び、"Safety"というセクションの下に安全性要件を示す。

安全性要件の違反はRust言語における未定義動作(undefined behavior; 通称UB)を引き起こす。Rustの未定義動作は、CのそれやC++のそれZigのそれなどとおおよそ同じであり、引き起こしてはならないものとされる。プログラム全体のどこかに未定義動作が含まれるなら、一般的に、処理系はそれについて何をしてもよい。変数は同時にtrueでもfalseでもあってもよいし、あなたの鼻から悪魔が飛び出してもよい。このことは通称鼻から悪魔(nasal demons)と呼ばれる。

未定義動作はプログラム全体に影響する。運が良ければセグメンテーション違反などで異常終了するだけだが、ライブラリを呼び出している部分から離れた所で「鼻から悪魔」が起こることもある。そうなったら挙動の予測もデバッグも困難である。これが未定義動作が禁忌とされる所以である。

voicevox_core全体における安全性要件は以下の通りである。

  • 「読み込みについて有効」と説明されているポインタは次の条件を満たしていなければならない。
    • 間接参照可能(dereferenceable)である。
    • 参照先のメモリは他スレッドから書き込み中ではない。
  • 「書き込みについて有効」と説明されているポインタは次の条件を満たしていなければならない。
    • 参照先のメモリは有効である (ただしメモリアラインメントに沿っている必要は無い)。
    • 参照先のメモリは他スレッドからアクセス中ではない。
  • このライブラリで生成したオブジェクトの解放は、このライブラリが提供するAPIで行わなくてはならない(freeHeapFreeで行ってはならない)。

次のことに注意すること。

  • 次のポインタは読み込みにおいても書き込みにおいても有効ではない。
    • ヌルポインタ。
    • 解放されたポインタ。
  • voicevox_coreをアンロードする場合、voicevox_coreが生成したポインタが有効であり続けることは保証されない。

Typedef Documentation

◆ OpenJtalkRc

typedef struct OpenJtalkRc OpenJtalkRc

テキスト解析器としてのOpen JTalk。

構築(construction)は voicevox_open_jtalk_rc_new で行い、破棄(destruction)は voicevox_open_jtalk_rc_delete で行う。

参照カウント方式のスマートポインタ(reference-counted smart pointer)であり、 voicevox_synthesizer_new に渡されるときには参照カウンタがインクリメントされる形でオブジェクトの共有が行われる。

Example
OpenJtalkRc *open_jtalk;
voicevox_open_jtalk_rc_new("./open_jtalk_dic_utf_8-1.11", &open_jtalk);
// ⋮
void voicevox_open_jtalk_rc_delete(struct OpenJtalkRc *open_jtalk)
struct OpenJtalkRc OpenJtalkRc
Definition voicevox_core.h:268
VoicevoxResultCode voicevox_open_jtalk_rc_new(const char *open_jtalk_dic_dir, struct OpenJtalkRc **out_open_jtalk)

◆ VoicevoxInitializeOptions

◆ VoicevoxLoadOnnxruntimeOptions

voicevox_onnxruntime_load_once のオプション。

Availability
リリースされているライブラリではiOSを除くプラットフォームで利用可能。詳細はファイルレベルの"Availability"の節を参照。

◆ VoicevoxOnnxruntime

ONNX Runtime。

シングルトンであり、インスタンスは高々一つ。

const VoicevoxOnnxruntime *ort1;
&ort1);
assert(ort1 == ort2);
VoicevoxResultCode voicevox_onnxruntime_load_once(struct VoicevoxLoadOnnxruntimeOptions options, const struct VoicevoxOnnxruntime **out_onnxruntime)
const struct VoicevoxOnnxruntime * voicevox_onnxruntime_get(void)
struct VoicevoxOnnxruntime VoicevoxOnnxruntime
Definition voicevox_core.h:283
struct VoicevoxLoadOnnxruntimeOptions voicevox_make_default_load_onnxruntime_options(void)

◆ VoicevoxStyleId

typedef uint32_t VoicevoxStyleId

スタイルID。

VOICEVOXにおける、ある話者(speaker)のあるスタイル(style)を指す。

◆ VoicevoxSynthesisOptions

◆ VoicevoxSynthesizer

音声シンセサイザ。

構築(construction)は voicevox_synthesizer_new で行い、破棄(destruction)は voicevox_synthesizer_delete で行う。

◆ VoicevoxTtsOptions

voicevox_synthesizer_tts のオプション。

◆ VoicevoxUserDict

ユーザー辞書。

◆ VoicevoxUserDictWord

ユーザー辞書の単語。

◆ VoicevoxVoiceModelFile

音声モデルファイル。

VVMファイルと対応する。 構築(construction)は voicevox_voice_model_file_open で行い、破棄(destruction)は voicevox_voice_model_file_close で行う。

◆ VoicevoxVoiceModelId

typedef const uint8_t(* VoicevoxVoiceModelId)[16]

音声モデルID。

Enumeration Type Documentation

◆ VoicevoxAccelerationMode

ハードウェアアクセラレーションモードを設定する設定値。

Enumerator
VOICEVOX_ACCELERATION_MODE_AUTO 

実行環境に合った適切なハードウェアアクセラレーションモードを選択する

VOICEVOX_ACCELERATION_MODE_CPU 

ハードウェアアクセラレーションモードを"CPU"に設定する

VOICEVOX_ACCELERATION_MODE_GPU 

ハードウェアアクセラレーションモードを"GPU"に設定する

◆ VoicevoxResultCode

処理結果を示す結果コード。

Enumerator
VOICEVOX_RESULT_OK 

成功

VOICEVOX_RESULT_NOT_LOADED_OPENJTALK_DICT_ERROR 

open_jtalk辞書ファイルが読み込まれていない

VOICEVOX_RESULT_GET_SUPPORTED_DEVICES_ERROR 

サポートされているデバイス情報取得に失敗した

VOICEVOX_RESULT_GPU_SUPPORT_ERROR 

GPUモードがサポートされていない

VOICEVOX_RESULT_INIT_INFERENCE_RUNTIME_ERROR 

推論ライブラリのロードまたは初期化ができなかった

VOICEVOX_RESULT_STYLE_NOT_FOUND_ERROR 

スタイルIDに対するスタイルが見つからなかった

VOICEVOX_RESULT_MODEL_NOT_FOUND_ERROR 

音声モデルIDに対する音声モデルが見つからなかった

VOICEVOX_RESULT_RUN_MODEL_ERROR 

推論に失敗した

VOICEVOX_RESULT_EXTRACT_FULL_CONTEXT_LABEL_ERROR 

コンテキストラベル出力に失敗した

VOICEVOX_RESULT_INVALID_UTF8_INPUT_ERROR 

無効なutf8文字列が入力された

VOICEVOX_RESULT_PARSE_KANA_ERROR 

AquesTalk風記法のテキストの解析に失敗した

VOICEVOX_RESULT_INVALID_AUDIO_QUERY_ERROR 

無効なAudioQuery

VOICEVOX_RESULT_INVALID_ACCENT_PHRASE_ERROR 

無効なAccentPhrase

VOICEVOX_RESULT_OPEN_ZIP_FILE_ERROR 

ZIPファイルを開くことに失敗した

VOICEVOX_RESULT_READ_ZIP_ENTRY_ERROR 

ZIP内のファイルが読めなかった

VOICEVOX_RESULT_INVALID_MODEL_HEADER_ERROR 

モデルの形式が不正

VOICEVOX_RESULT_MODEL_ALREADY_LOADED_ERROR 

すでに読み込まれている音声モデルを読み込もうとした

VOICEVOX_RESULT_STYLE_ALREADY_LOADED_ERROR 

すでに読み込まれているスタイルを読み込もうとした

VOICEVOX_RESULT_INVALID_MODEL_DATA_ERROR 

無効なモデルデータ

VOICEVOX_RESULT_LOAD_USER_DICT_ERROR 

ユーザー辞書を読み込めなかった

VOICEVOX_RESULT_SAVE_USER_DICT_ERROR 

ユーザー辞書を書き込めなかった

VOICEVOX_RESULT_USER_DICT_WORD_NOT_FOUND_ERROR 

ユーザー辞書に単語が見つからなかった

VOICEVOX_RESULT_USE_USER_DICT_ERROR 

OpenJTalkのユーザー辞書の設定に失敗した

VOICEVOX_RESULT_INVALID_USER_DICT_WORD_ERROR 

ユーザー辞書の単語のバリデーションに失敗した

VOICEVOX_RESULT_INVALID_UUID_ERROR 

UUIDの変換に失敗した

◆ VoicevoxUserDictWordType

ユーザー辞書の単語の種類。

Enumerator
VOICEVOX_USER_DICT_WORD_TYPE_PROPER_NOUN 

固有名詞。

VOICEVOX_USER_DICT_WORD_TYPE_COMMON_NOUN 

一般名詞。

VOICEVOX_USER_DICT_WORD_TYPE_VERB 

動詞。

VOICEVOX_USER_DICT_WORD_TYPE_ADJECTIVE 

形容詞。

VOICEVOX_USER_DICT_WORD_TYPE_SUFFIX 

接尾辞。

Function Documentation

◆ voicevox_error_result_to_message()

const char * voicevox_error_result_to_message ( VoicevoxResultCode  result_code)

結果コードに対応したメッセージ文字列を取得する。

Parameters
[in]result_code結果コード
Returns
結果コードに対応したメッセージ文字列
Examples
const char *EXPECTED = "エラーが発生しませんでした";
assert(strcmp(actual, EXPECTED) == 0);
@ VOICEVOX_RESULT_OK
Definition voicevox_core.h:116
const char * voicevox_error_result_to_message(VoicevoxResultCode result_code)
const char *actual =
voicevox_error_result_to_message(VOICEVOX_RESULT_LOAD_MODEL_ERROR);
const char *EXPECTED = "modelデータ読み込みに失敗しました";
assert(strcmp(actual, EXPECTED) == 0);

◆ voicevox_get_onnxruntime_lib_unversioned_filename()

const char * voicevox_get_onnxruntime_lib_unversioned_filename ( void  )

ONNX Runtimeの動的ライブラリの、バージョン無しのファイル名。

Availability
リリースされているライブラリではiOSを除くプラットフォームで利用可能。詳細はファイルレベルの"Availability"の節を参照。

◆ voicevox_get_onnxruntime_lib_versioned_filename()

const char * voicevox_get_onnxruntime_lib_versioned_filename ( void  )

ONNX Runtimeの動的ライブラリの、バージョン付きのファイル名。

WindowsとAndroidでは voicevox_get_onnxruntime_lib_unversioned_filename と同じ。

Availability
リリースされているライブラリではiOSを除くプラットフォームで利用可能。詳細はファイルレベルの"Availability"の節を参照。

◆ voicevox_get_version()

const char * voicevox_get_version ( void  )

voicevoxのバージョンを取得する。

Returns
SemVerでフォーマットされたバージョン。

◆ voicevox_json_free()

void voicevox_json_free ( char *  json)

JSON文字列を解放する。

Parameters
[in]json解放するJSON文字列
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_make_default_initialize_options()

struct VoicevoxInitializeOptions voicevox_make_default_initialize_options ( void  )

デフォルトの初期化オプションを生成する

Returns
デフォルト値が設定された初期化オプション

◆ voicevox_make_default_load_onnxruntime_options()

struct VoicevoxLoadOnnxruntimeOptions voicevox_make_default_load_onnxruntime_options ( void  )

デフォルトの voicevox_onnxruntime_load_once のオプションを生成する。

Returns
デフォルトの voicevox_onnxruntime_load_once のオプション
Availability
リリースされているライブラリではiOSを除くプラットフォームで利用可能。詳細はファイルレベルの"Availability"の節を参照。

◆ voicevox_make_default_synthesis_options()

struct VoicevoxSynthesisOptions voicevox_make_default_synthesis_options ( void  )

デフォルトの voicevox_synthesizer_synthesis のオプションを生成する

Returns
デフォルト値が設定された voicevox_synthesizer_synthesis のオプション

◆ voicevox_make_default_tts_options()

struct VoicevoxTtsOptions voicevox_make_default_tts_options ( void  )

デフォルトのテキスト音声合成オプションを生成する

Returns
テキスト音声合成オプション

◆ voicevox_onnxruntime_create_supported_devices_json()

VoicevoxResultCode voicevox_onnxruntime_create_supported_devices_json ( const struct VoicevoxOnnxruntime onnxruntime,
char **  output_supported_devices_json 
)

ONNX Runtimeとして利用可能なデバイスの情報を、JSONで取得する。

JSONの解放は voicevox_json_free で行う。

あくまでONNX Runtimeが対応しているデバイスの情報であることに注意。GPUが使える環境ではなかったとしてもcudadmltrueを示しうる。

Parameters
[in]onnxruntime
[out]output_supported_devices_jsonサポートデバイス情報のJSON文字列
Returns
結果コード
Example
char *supported_devices;
VoicevoxResultCode voicevox_onnxruntime_create_supported_devices_json(const struct VoicevoxOnnxruntime *onnxruntime, char **output_supported_devices_json)
VoicevoxResultCode
Definition voicevox_core.h:112
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_onnxruntime_get()

const struct VoicevoxOnnxruntime * voicevox_onnxruntime_get ( void  )

VoicevoxOnnxruntime のインスタンスが既に作られているならそれを得る。

作られていなければNULLを返す。

Returns
VoicevoxOnnxruntime のインスタンス

◆ voicevox_onnxruntime_init_once()

VoicevoxResultCode voicevox_onnxruntime_init_once ( const struct VoicevoxOnnxruntime **  out_onnxruntime)

ONNX Runtimeを初期化する。

一度成功したら以後は同じ参照を返す。

Parameters
[out]out_onnxruntimeVoicevoxOnnxruntime のインスタンス
Returns
結果コード
Availability
リリースされているライブラリではiOSでのみ利用可能。詳細はファイルレベルの"Availability"の節を参照。
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_onnxruntime_load_once()

VoicevoxResultCode voicevox_onnxruntime_load_once ( struct VoicevoxLoadOnnxruntimeOptions  options,
const struct VoicevoxOnnxruntime **  out_onnxruntime 
)

ONNX Runtimeをロードして初期化する。

一度成功したら、以後は引数を無視して同じ参照を返す。

Parameters
[in]optionsオプション
[out]out_onnxruntimeVoicevoxOnnxruntime のインスタンス
Returns
結果コード
Availability
リリースされているライブラリではiOSを除くプラットフォームで利用可能。詳細はファイルレベルの"Availability"の節を参照。
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_open_jtalk_rc_delete()

void voicevox_open_jtalk_rc_delete ( struct OpenJtalkRc open_jtalk)

OpenJtalkRc破棄(destruct)する。

破棄対象への他スレッドでのアクセスが存在する場合、それらがすべて終わるのを待ってから破棄する。

この関数の呼び出し後に破棄し終えた対象にアクセスすると、プロセスを異常終了する。

Parameters
[in]open_jtalk破棄対象
Example

◆ voicevox_open_jtalk_rc_new()

VoicevoxResultCode voicevox_open_jtalk_rc_new ( const char *  open_jtalk_dic_dir,
struct OpenJtalkRc **  out_open_jtalk 
)

OpenJtalkRc構築(construct)する。

解放は voicevox_open_jtalk_rc_delete で行う。

Parameters
[in]open_jtalk_dic_dir辞書ディレクトリを指すUTF-8のパス
[out]out_open_jtalk構築先
Returns
結果コード
Example
OpenJtalkRc *open_jtalk;
voicevox_open_jtalk_rc_new("./open_jtalk_dic_utf_8-1.11", &open_jtalk);
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_open_jtalk_rc_use_user_dict()

VoicevoxResultCode voicevox_open_jtalk_rc_use_user_dict ( const struct OpenJtalkRc open_jtalk,
const struct VoicevoxUserDict user_dict 
)

OpenJtalkの使うユーザー辞書を設定する。

この関数を呼び出した後にユーザー辞書を変更した場合、再度この関数を呼び出す必要がある。

Parameters
[in]open_jtalkOpen JTalkのオブジェクト
[in]user_dictユーザー辞書

◆ voicevox_synthesizer_create_accent_phrases()

VoicevoxResultCode voicevox_synthesizer_create_accent_phrases ( const struct VoicevoxSynthesizer synthesizer,
const char *  text,
VoicevoxStyleId  style_id,
char **  output_accent_phrases_json 
)

日本語テキストから、AccentPhrase (アクセント句)の配列をJSON形式で生成する。

生成したJSON文字列を解放するには voicevox_json_free を使う。

Parameters
[in]synthesizer音声シンセサイザ
[in]textUTF-8の日本語テキスト
[in]style_idスタイルID
[out]output_accent_phrases_json生成先
Returns
結果コード
Example
char *accent_phrases;
voicevox_synthesizer_create_accent_phrases(synthesizer, "こんにちは",
2, // "四国めたん (ノーマル)"
&accent_phrases);
VoicevoxResultCode voicevox_synthesizer_create_accent_phrases(const struct VoicevoxSynthesizer *synthesizer, const char *text, VoicevoxStyleId style_id, char **output_accent_phrases_json)
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_create_accent_phrases_from_kana()

VoicevoxResultCode voicevox_synthesizer_create_accent_phrases_from_kana ( const struct VoicevoxSynthesizer synthesizer,
const char *  kana,
VoicevoxStyleId  style_id,
char **  output_accent_phrases_json 
)

AquesTalk風記法から、AccentPhrase (アクセント句)の配列をJSON形式で生成する。

生成したJSON文字列を解放するには voicevox_json_free を使う。

Parameters
[in]synthesizer音声シンセサイザ
[in]kanaAquesTalk風記法
[in]style_idスタイルID
[out]output_accent_phrases_json生成先
Returns
結果コード
Example
char *accent_phrases;
synthesizer, "コンニチワ'",
2, // "四国めたん (ノーマル)"
&accent_phrases);
VoicevoxResultCode voicevox_synthesizer_create_accent_phrases_from_kana(const struct VoicevoxSynthesizer *synthesizer, const char *kana, VoicevoxStyleId style_id, char **output_accent_phrases_json)
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_create_audio_query()

VoicevoxResultCode voicevox_synthesizer_create_audio_query ( const struct VoicevoxSynthesizer synthesizer,
const char *  text,
VoicevoxStyleId  style_id,
char **  output_audio_query_json 
)

日本語テキストから、AudioQueryをJSONとして生成する。

生成したJSON文字列を解放するには voicevox_json_free を使う。

Parameters
[in]synthesizer音声シンセサイザ
[in]textUTF-8の日本語テキスト
[in]style_idスタイルID
[out]output_audio_query_json生成先
Returns
結果コード
Example
char *audio_query;
voicevox_synthesizer_create_audio_query(synthesizer, "こんにちは",
2, // "四国めたん (ノーマル)"
&audio_query);
VoicevoxResultCode voicevox_synthesizer_create_audio_query(const struct VoicevoxSynthesizer *synthesizer, const char *text, VoicevoxStyleId style_id, char **output_audio_query_json)
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_create_audio_query_from_kana()

VoicevoxResultCode voicevox_synthesizer_create_audio_query_from_kana ( const struct VoicevoxSynthesizer synthesizer,
const char *  kana,
VoicevoxStyleId  style_id,
char **  output_audio_query_json 
)

AquesTalk風記法から、AudioQueryをJSONとして生成する。

生成したJSON文字列を解放するには voicevox_json_free を使う。

Parameters
[in]synthesizer音声シンセサイザ
[in]kanaAquesTalk風記法
[in]style_idスタイルID
[out]output_audio_query_json生成先
Returns
結果コード
Example
char *audio_query;
voicevox_synthesizer_create_audio_query_from_kana(synthesizer, "コンニチワ'",
2, // "四国めたん (ノーマル)"
&audio_query);
VoicevoxResultCode voicevox_synthesizer_create_audio_query_from_kana(const struct VoicevoxSynthesizer *synthesizer, const char *kana, VoicevoxStyleId style_id, char **output_audio_query_json)
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_create_metas_json()

char * voicevox_synthesizer_create_metas_json ( const struct VoicevoxSynthesizer synthesizer)

今読み込んでいる音声モデルのメタ情報を、JSONで取得する。

JSONの解放は voicevox_json_free で行う。

Parameters
[in]synthesizer音声シンセサイザ
Returns
メタ情報のJSON文字列

◆ voicevox_synthesizer_delete()

void voicevox_synthesizer_delete ( struct VoicevoxSynthesizer synthesizer)

VoicevoxSynthesizer破棄(destruct)する。

破棄対象への他スレッドでのアクセスが存在する場合、それらがすべて終わるのを待ってから破棄する。

この関数の呼び出し後に破棄し終えた対象にアクセスすると、プロセスを異常終了する。

Parameters
[in]synthesizer破棄対象

◆ voicevox_synthesizer_get_onnxruntime()

const struct VoicevoxOnnxruntime * voicevox_synthesizer_get_onnxruntime ( const struct VoicevoxSynthesizer synthesizer)

VoicevoxOnnxruntime のインスタンスを得る。

Parameters
[in]synthesizer音声シンセサイザ
Returns
VoicevoxOnnxruntime のインスタンス

◆ voicevox_synthesizer_is_gpu_mode()

bool voicevox_synthesizer_is_gpu_mode ( const struct VoicevoxSynthesizer synthesizer)

ハードウェアアクセラレーションがGPUモードか判定する。

Parameters
[in]synthesizer音声シンセサイザ
Returns
GPUモードかどうか

◆ voicevox_synthesizer_is_loaded_voice_model()

bool voicevox_synthesizer_is_loaded_voice_model ( const struct VoicevoxSynthesizer synthesizer,
VoicevoxVoiceModelId  model_id 
)

指定したIDの音声モデルが読み込まれているか判定する。

Parameters
[in]synthesizer音声シンセサイザ
[in]model_id音声モデルID
Returns
モデルが読み込まれているかどうか
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_load_voice_model()

VoicevoxResultCode voicevox_synthesizer_load_voice_model ( const struct VoicevoxSynthesizer synthesizer,
const struct VoicevoxVoiceModelFile model 
)

音声モデルを読み込む。

Parameters
[in]synthesizer音声シンセサイザ
[in]model音声モデル
Returns
結果コード

◆ voicevox_synthesizer_new()

VoicevoxResultCode voicevox_synthesizer_new ( const struct VoicevoxOnnxruntime onnxruntime,
const struct OpenJtalkRc open_jtalk,
struct VoicevoxInitializeOptions  options,
struct VoicevoxSynthesizer **  out_synthesizer 
)

VoicevoxSynthesizer構築(construct)する。

Parameters
[in]onnxruntime
[in]open_jtalkOpen JTalkのオブジェクト
[in]optionsオプション
[out]out_synthesizer構築先
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_replace_mora_data()

VoicevoxResultCode voicevox_synthesizer_replace_mora_data ( const struct VoicevoxSynthesizer synthesizer,
const char *  accent_phrases_json,
VoicevoxStyleId  style_id,
char **  output_accent_phrases_json 
)

AccentPhraseの配列の音高・音素長を、特定の声で生成しなおす。

生成したJSON文字列を解放するには voicevox_json_free を使う。

Parameters
[in]synthesizer音声シンセサイザ
[in]accent_phrases_jsonAccentPhraseの配列のJSON文字列
[in]style_idスタイルID
[out]output_accent_phrases_json生成先
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_replace_mora_pitch()

VoicevoxResultCode voicevox_synthesizer_replace_mora_pitch ( const struct VoicevoxSynthesizer synthesizer,
const char *  accent_phrases_json,
VoicevoxStyleId  style_id,
char **  output_accent_phrases_json 
)

AccentPhraseの配列の音高を、特定の声で生成しなおす。

生成したJSON文字列を解放するには voicevox_json_free を使う。

Parameters
[in]synthesizer音声シンセサイザ
[in]accent_phrases_jsonAccentPhraseの配列のJSON文字列
[in]style_idスタイルID
[out]output_accent_phrases_json生成先
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_replace_phoneme_length()

VoicevoxResultCode voicevox_synthesizer_replace_phoneme_length ( const struct VoicevoxSynthesizer synthesizer,
const char *  accent_phrases_json,
VoicevoxStyleId  style_id,
char **  output_accent_phrases_json 
)

AccentPhraseの配列の音素長を、特定の声で生成しなおす。

生成したJSON文字列を解放するには voicevox_json_free を使う。

Parameters
[in]synthesizer音声シンセサイザ
[in]accent_phrases_jsonAccentPhraseの配列のJSON文字列
[in]style_idスタイルID
[out]output_accent_phrases_json生成先
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_synthesis()

VoicevoxResultCode voicevox_synthesizer_synthesis ( const struct VoicevoxSynthesizer synthesizer,
const char *  audio_query_json,
VoicevoxStyleId  style_id,
struct VoicevoxSynthesisOptions  options,
uintptr_t *  output_wav_length,
uint8_t **  output_wav 
)

AudioQueryから音声合成を行う。

生成したWAVデータを解放するには voicevox_wav_free を使う。

Parameters
[in]synthesizer音声シンセサイザ
[in]audio_query_jsonAudioQueryのJSON文字列
[in]style_idスタイルID
[in]optionsオプション
[out]output_wav_length出力のバイト長
[out]output_wav出力先
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_tts()

VoicevoxResultCode voicevox_synthesizer_tts ( const struct VoicevoxSynthesizer synthesizer,
const char *  text,
VoicevoxStyleId  style_id,
struct VoicevoxTtsOptions  options,
uintptr_t *  output_wav_length,
uint8_t **  output_wav 
)

日本語テキストから音声合成を行う。

生成したWAVデータを解放するには voicevox_wav_free を使う。

Parameters
[in]synthesizer
[in]textUTF-8の日本語テキスト
[in]style_idスタイルID
[in]optionsオプション
[out]output_wav_length出力のバイト長
[out]output_wav出力先
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_tts_from_kana()

VoicevoxResultCode voicevox_synthesizer_tts_from_kana ( const struct VoicevoxSynthesizer synthesizer,
const char *  kana,
VoicevoxStyleId  style_id,
struct VoicevoxTtsOptions  options,
uintptr_t *  output_wav_length,
uint8_t **  output_wav 
)

AquesTalk風記法から音声合成を行う。

生成したWAVデータを解放するには voicevox_wav_free を使う。

Parameters
[in]synthesizer
[in]kanaAquesTalk風記法
[in]style_idスタイルID
[in]optionsオプション
[out]output_wav_length出力のバイト長
[out]output_wav出力先
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_synthesizer_unload_voice_model()

VoicevoxResultCode voicevox_synthesizer_unload_voice_model ( const struct VoicevoxSynthesizer synthesizer,
VoicevoxVoiceModelId  model_id 
)

音声モデルの読み込みを解除する。

Parameters
[in]synthesizer音声シンセサイザ
[in]model_id音声モデルID
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_user_dict_add_word()

VoicevoxResultCode voicevox_user_dict_add_word ( const struct VoicevoxUserDict user_dict,
const struct VoicevoxUserDictWord word,
uint8_t(*)  output_word_uuid[16] 
)

ユーザー辞書に単語を追加する。

Parameters
[in]ユーザー辞書
[in]word追加する単語
[out]output_word_uuid追加した単語のUUID
Returns
結果コード

Safety

Parameters
user_dictは有効な :VoicevoxUserDict のポインタであること
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_user_dict_delete()

void voicevox_user_dict_delete ( struct VoicevoxUserDict user_dict)

ユーザー辞書を破棄(destruct)する。

破棄対象への他スレッドでのアクセスが存在する場合、それらがすべて終わるのを待ってから破棄する。

この関数の呼び出し後に破棄し終えた対象にアクセスすると、プロセスを異常終了する。

Parameters
[in]user_dict破棄対象

◆ voicevox_user_dict_import()

VoicevoxResultCode voicevox_user_dict_import ( const struct VoicevoxUserDict user_dict,
const struct VoicevoxUserDict other_dict 
)

他のユーザー辞書をインポートする。

Parameters
[in]user_dictユーザー辞書
[in]other_dictインポートするユーザー辞書
Returns
結果コード

◆ voicevox_user_dict_load()

VoicevoxResultCode voicevox_user_dict_load ( const struct VoicevoxUserDict user_dict,
const char *  dict_path 
)

ユーザー辞書にファイルを読み込ませる。

Parameters
[in]user_dictユーザー辞書
[in]dict_path読み込む辞書ファイルのパス
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_user_dict_new()

struct VoicevoxUserDict * voicevox_user_dict_new ( void  )

ユーザー辞書をb>構築(construct)する。

Returns
VoicevoxUserDict

◆ voicevox_user_dict_remove_word()

VoicevoxResultCode voicevox_user_dict_remove_word ( const struct VoicevoxUserDict user_dict,
const uint8_t(*)  word_uuid[16] 
)

ユーザー辞書から単語を削除する。

Parameters
[in]user_dictユーザー辞書
[in]word_uuid削除する単語のUUID
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_user_dict_save()

VoicevoxResultCode voicevox_user_dict_save ( const struct VoicevoxUserDict user_dict,
const char *  path 
)

ユーザー辞書をファイルに保存する。

Parameters
[in]user_dictユーザー辞書
[in]path保存先のファイルパス
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_user_dict_to_json()

VoicevoxResultCode voicevox_user_dict_to_json ( const struct VoicevoxUserDict user_dict,
char **  output_json 
)

ユーザー辞書の単語をJSON形式で出力する。

生成したJSON文字列を解放するには voicevox_json_free を使う。

Parameters
[in]user_dictユーザー辞書
[out]output_json出力先
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_user_dict_update_word()

VoicevoxResultCode voicevox_user_dict_update_word ( const struct VoicevoxUserDict user_dict,
const uint8_t(*)  word_uuid[16],
const struct VoicevoxUserDictWord word 
)

ユーザー辞書の単語を更新する。

Parameters
[in]user_dictユーザー辞書
[in]word_uuid更新する単語のUUID
[in]word新しい単語のデータ
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_user_dict_word_make()

struct VoicevoxUserDictWord voicevox_user_dict_word_make ( const char *  surface,
const char *  pronunciation 
)

VoicevoxUserDictWord を最低限のパラメータで作成する。

Parameters
[in]surface表記
[in]pronunciation読み
Returns
VoicevoxUserDictWord

◆ voicevox_voice_model_file_close()

void voicevox_voice_model_file_close ( struct VoicevoxVoiceModelFile model)

VoicevoxVoiceModelFile を、所有しているファイルディスクリプタを閉じた上で破棄(destruct)する。

破棄対象への他スレッドでのアクセスが存在する場合、それらがすべて終わるのを待ってから破棄する。

この関数の呼び出し後に破棄し終えた対象にアクセスすると、プロセスを異常終了する。

Parameters
[in]model破棄対象

◆ voicevox_voice_model_file_create_metas_json()

char * voicevox_voice_model_file_create_metas_json ( const struct VoicevoxVoiceModelFile model)

VoicevoxVoiceModelFile からメタ情報を取得する。

JSONの解放は voicevox_json_free で行う。

Parameters
[in]model音声モデル
Returns
メタ情報のJSON文字列

◆ voicevox_voice_model_file_id()

void voicevox_voice_model_file_id ( const struct VoicevoxVoiceModelFile model,
uint8_t(*)  output_voice_model_id[16] 
)

VoicevoxVoiceModelFile からIDを取得する。

Parameters
[in]model音声モデル
[out]output_voice_model_id音声モデルID
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_voice_model_file_open()

VoicevoxResultCode voicevox_voice_model_file_open ( const char *  path,
struct VoicevoxVoiceModelFile **  out_model 
)

VVMファイルを開く。

Parameters
[in]pathvvmファイルへのUTF-8のファイルパス
[out]out_model構築先
Returns
結果コード
Safety
⚠️安全性要件

安全性要件は以下の通りである。

◆ voicevox_wav_free()

void voicevox_wav_free ( uint8_t *  wav)

WAVデータを解放する。

Parameters
[in]wav解放するWAVデータ
Safety
⚠️安全性要件

安全性要件は以下の通りである。