voicevox_core.asyncio#

非同期API。

Performance#

内部では Rustのblockingというライブラリ を用いている。そのため $BLOCKING_MAX_THREADS から内部のスレッドプールのサイズを調整可能である。

また未調査ではあるが、 cpu_num_threads は物理コアの数+1を指定するのが適切な可能性がある (VOICEVOX/voicevox_core#902)。

Classes#

Onnxruntime

ONNX Runtime。

OpenJtalk

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

Synthesizer

音声シンセサイザ。

UserDict

ユーザー辞書。

VoiceModelFile

音声モデルファイル。

Module Contents#

class voicevox_core.asyncio.Onnxruntime#

ONNX Runtime。

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

ort1 = await Onnxruntime.load_once()
ort2 = Onnxruntime.get()
assert ort2
assert ort2 is ort1
ort = await voicevox_core.asyncio.Onnxruntime.load_once()
assert voicevox_core.blocking.Onnxruntime.get()
LIB_NAME: str = 'voicevox_onnxruntime'#

ONNX Runtimeのライブラリ名。

LIB_VERSION: str = '1.17.3'#

推奨されるONNX Runtimeのバージョン。

LIB_VERSIONED_FILENAME: str#

LIB_NAMELIB_VERSION からなる動的ライブラリのファイル名。

WindowsとAndroidでは LIB_UNVERSIONED_FILENAME と同じ。

LIB_UNVERSIONED_FILENAME: str#

LIB_NAME からなる動的ライブラリのファイル名。

static get() Onnxruntime | None#

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

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

static load_once(*, filename: str = LIB_VERSIONED_FILENAME) Onnxruntime#
Async:

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

一度成功したら、以後は引数を無視して同じインスタンスを返す。

Parameters:

filename – ONNX Runtimeのファイル名(モジュール名)もしくはファイルパス。 dlopen/LoadLibraryExW の引数に使われる。

__repr__() str#
supported_devices() voicevox_core.SupportedDevices#

このライブラリで利用可能なデバイスの情報を取得する。

class voicevox_core.asyncio.OpenJtalk#

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

static new(open_jtalk_dict_dir: str | os.PathLike[str]) OpenJtalk#
Async:

OpenJTalk を生成する。

Parameters:

open_jtalk_dict_dir – Open JTalkの辞書ディレクトリ。

__repr__() str#
async use_user_dict(user_dict: UserDict) None#

ユーザー辞書を設定する。

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

Parameters:

user_dict – ユーザー辞書。

async analyze(text: str) list[voicevox_core.AccentPhrase]#

日本語のテキストを解析する。

Parameters:

text – 日本語のテキスト。

class voicevox_core.asyncio.Synthesizer(onnxruntime: Onnxruntime, open_jtalk: OpenJtalk, *, acceleration_mode: voicevox_core.AccelerationMode = 'AUTO', cpu_num_threads: int = 0)#

音声シンセサイザ。

Parameters:
  • onnxruntime – ONNX Runtime。

  • open_jtalk – Open JTalk。

  • acceleration_mode – ハードウェアアクセラレーションモード。

  • cpu_num_threads

    CPU利用数を指定。0を指定すると環境に合わせたCPUが利用される。未調査ではあるが、物理コアの数+1とするのが適切な可能性がある (VOICEVOX/voicevox_core#902)。

__repr__() str#
async __aenter__() Synthesizer#
async __aexit__(exc_type, exc_value, traceback) None#
property onnxruntime: Onnxruntime#

ONNX Runtime。

property open_jtalk: OpenJtalk#

Open JTalk。

property is_gpu_mode: bool#

ハードウェアアクセラレーションがGPUモードかどうか。

metas() list[voicevox_core.CharacterMeta]#

メタ情報。

async load_voice_model(model: VoiceModelFile) None#

モデルを読み込む。

Parameters:

style_id – 読み込むモデルのスタイルID。

unload_voice_model(voice_model_id: voicevox_core.VoiceModelId | uuid.UUID) None#

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

Parameters:

voice_model_id – 音声モデルID。

is_loaded_voice_model(voice_model_id: voicevox_core.VoiceModelId | uuid.UUID) bool#

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

Parameters:

voice_model_id – 音声モデルID。

Return type:

モデルが読み込まれているかどうか。

async create_audio_query_from_kana(kana: str, style_id: voicevox_core.StyleId | int) voicevox_core.AudioQuery#

AquesTalk風記法から AudioQuery を生成する。

Parameters:
  • kana – AquesTalk風記法。

  • style_id – スタイルID。

Return type:

スタイルとテキストから生成された AudioQuery

async create_audio_query(text: str, style_id: voicevox_core.StyleId | int) voicevox_core.AudioQuery#

日本語のテキストから AudioQuery を生成する。

create_accent_phrases()AudioQuery.from_accent_phrases() が一体になったショートハンド。詳細は テキスト音声合成の流れ を参照。

Parameters:
  • text – UTF-8の日本語テキスト。

  • style_id – スタイルID。

Return type:

スタイルとテキストから生成された AudioQuery

async create_accent_phrases_from_kana(kana: str, style_id: voicevox_core.StyleId | int) list[voicevox_core.AccentPhrase]#

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

Parameters:
  • kana – AquesTalk風記法。

  • style_id – スタイルID。

Return type:

AccentPhrase の配列。

async create_accent_phrases(text: str, style_id: voicevox_core.StyleId | int) list[voicevox_core.AccentPhrase]#

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

OpenJtalk.analyze()replace_mora_data() が一体になったショートハンド。詳細は テキスト音声合成の流れ を参照。

Parameters:
  • text – UTF-8の日本語テキスト。

  • style_id – スタイルID。

Return type:

AccentPhrase の配列。

async replace_mora_data(accent_phrases: list[voicevox_core.AccentPhrase], style_id: voicevox_core.StyleId | int) list[voicevox_core.AccentPhrase]#

アクセント句の音高・音素長を変更した新しいアクセント句の配列を生成する。

元のアクセント句の音高・音素長は変更されない。

replace_phoneme_length()replace_mora_pitch() が一体になったショートハンド。詳細は テキスト音声合成の流れ を参照。

Parameters:
  • accent_phrases – 変更元のアクセント句。

  • style_id – スタイルID。

Return type:

新しいアクセント句の配列。

async replace_phoneme_length(accent_phrases: list[voicevox_core.AccentPhrase], style_id: voicevox_core.StyleId | int) list[voicevox_core.AccentPhrase]#

アクセント句の音素長を変更した新しいアクセント句の配列を生成する。

元のアクセント句の音素長は変更されない。

Parameters:
  • accent_phrases – 変更元のアクセント句。

  • style_id – スタイルID。

async replace_mora_pitch(accent_phrases: list[voicevox_core.AccentPhrase], style_id: voicevox_core.StyleId | int) list[voicevox_core.AccentPhrase]#

アクセント句の音高を変更した新しいアクセント句の配列を生成する。

元のアクセント句の音高は変更されない。

Parameters:
  • accent_phrases – 変更元のアクセント句。

  • style_id – スタイルID。

async synthesis(audio_query: voicevox_core.AudioQuery, style_id: voicevox_core.StyleId | int, *, enable_interrogative_upspeak: bool = True, cancellable: bool = False) bytes#

AudioQuery から音声合成する。

cancellable を有効化しない限り、非同期タスクとしてキャンセルしても終わるまで停止しない。

Parameters:
  • audio_queryAudioQuery

  • style_id – スタイルID。

  • enable_interrogative_upspeak – 疑問文の調整を有効にするかどうか。

  • cancellable – 音声モデルの実行をキャンセル可能にするかどうか。このオプションを有効にすると、負荷がかかっている状況下でハングする可能性がある。そのためデフォルトでは無効化されている。 VOICEVOX/voicevox_core#968 を参照。

Return type:

WAVデータ。

async tts_from_kana(kana: str, style_id: voicevox_core.StyleId | int, *, enable_interrogative_upspeak: bool = True, cancellable: bool = False) bytes#

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

cancellable を有効化しない限り、非同期タスクとしてキャンセルしても終わるまで停止しない。

Parameters:
  • kana – AquesTalk風記法。

  • style_id – スタイルID。

  • enable_interrogative_upspeak – 疑問文の調整を有効にするかどうか。

  • cancellable

    音声モデルの実行をキャンセル可能にするかどうか。このオプションを有効にすると、負荷がかかっている状況下でハングする可能性がある。そのためデフォルトでは無効化されている。 VOICEVOX/voicevox_core#968 を参照。

async tts(text: str, style_id: voicevox_core.StyleId | int, *, enable_interrogative_upspeak: bool = True, cancellable: bool = False) bytes#

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

create_audio_query()synthesis() が一体になったショートハンド。詳細は テキスト音声合成の流れ を参照。

cancellable を有効化しない限り、非同期タスクとしてキャンセルしても終わるまで停止しない。

Parameters:
  • text – UTF-8の日本語テキスト。

  • style_id – スタイルID。

  • enable_interrogative_upspeak – 疑問文の調整を有効にするかどうか。

  • cancellable

    音声モデルの実行をキャンセル可能にするかどうか。このオプションを有効にすると、負荷がかかっている状況下でハングする可能性がある。そのためデフォルトでは無効化されている。 VOICEVOX/voicevox_core#968 を参照。

Return type:

WAVデータ。

async close() None#
class voicevox_core.asyncio.UserDict#

ユーザー辞書。

to_dict() dict[uuid.UUID, voicevox_core.UserDictWord]#

このオプジェクトを dict に変換する。

__repr__() str#
async load(path: str | os.PathLike[str]) None#

ファイルに保存されたユーザー辞書を読み込む。

Parameters:

path – ユーザー辞書のパス。

async save(path: str | os.PathLike[str]) None#

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

Parameters:

path – ユーザー辞書のパス。

add_word(word: voicevox_core.UserDictWord) uuid.UUID#

単語を追加する。

Parameters:

word – 追加する単語。

Return type:

単語のUUID。

update_word(word_uuid: uuid.UUID, word: voicevox_core.UserDictWord) None#

単語を更新する。

Parameters:
  • word_uuid – 更新する単語のUUID。

  • word – 新しい単語のデータ。

remove_word(word_uuid: uuid.UUID) None#

単語を削除する。

Parameters:

word_uuid – 削除する単語のUUID。

import_dict(other: UserDict) None#

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

Parameters:

other – インポートするユーザー辞書。

class voicevox_core.asyncio.VoiceModelFile#

音声モデルファイル。

static open(path: str | os.PathLike[str]) VoiceModelFile#
Async:

VVMファイルを開く。

Parameters:

path – VVMファイルへのパス。

__repr__() str#
async close() None#

VVMファイルを閉じる。

このメソッドが呼ばれた段階で Synthesizer.load_voice_model からのアクセスが継続中の場合、アクセスが終わるまで待つ。

property id: voicevox_core.VoiceModelId#

ID。

詳細は voicevox_core.VoiceModelId を参照。

close および __aexit__ の後でも利用可能。

property metas: list[voicevox_core.CharacterMeta]#

メタ情報。

この中身を書き換えても、 VoiceModelFile としての動作には影響しない。

close および __aexit__ の後でも利用可能。

async __aenter__() VoiceModelFile#
async __aexit__(exc_type, exc_value, traceback) None#