Onnxruntime
ONNX Runtime ローダー。プロセスレベルのシングルトンで、1 プロセスにつき 1 インスタンスのみ存在します。
メソッド
| メソッド | 説明 |
|---|---|
static loadOnce(string $filename = ''): self | ONNX Runtime を読み込んで初期化します。2 回目以降の呼び出しでは引数を無視して既存のインスタンスを返します。 |
static get(): ?self | 既存のインスタンスを返します。まだ初期化されていない場合は null を返します。 |
supportedDevices(): string | 利用可能なデバイス情報を JSON 文字列で返します。 |
static libRecommendedVersionedFilename(): string | 推奨される ONNX Runtime ライブラリのバージョン付きファイル名を返します(例: libvoicevox_onnxruntime.1.23.2.dylib)。 |
static libRecommendedUnversionedFilename(): string | 推奨される ONNX Runtime ライブラリのバージョンなしファイル名を返します。 |
static libMinRequiredMinorVersion(): int | サポートされる ONNX Runtime 1.x の最小マイナーバージョンを返します。 |
static libMaxSupportedMinorVersion(): int | サポートされる ONNX Runtime 1.x の最大マイナーバージョンを返します。 |
libVersionedFilename() と libUnversionedFilename() は非推奨のエイリアスとして残っています。
定数
| 定数 | 説明 |
|---|---|
LIB_MIN_REQUIRED_MINOR_VERSION | サポートされる ONNX Runtime 1.x の最小マイナーバージョン(17) |
LIB_MAX_SUPPORTED_MINOR_VERSION | サポートされる ONNX Runtime 1.x の最大マイナーバージョン(29) |
LIB_RECOMMENDED_NAME | 推奨ライブラリベース名(voicevox_onnxruntime) |
LIB_RECOMMENDED_VERSION | 推奨 ONNX Runtime バージョン(1.23.2) |
LIB_NAME と LIB_VERSION は非推奨のエイリアスとして残っています。
OpenJtalk
OpenJTalk を使ったテキスト解析器。
メソッド
| メソッド | 説明 |
|---|---|
__construct(string $openJtalkDictDir) | OpenJTalk 辞書ディレクトリのパスで初期化します。 |
analyze(string $text): string | 日本語テキストを解析し、アクセント句配列の JSON を返します。 |
useUserDict(UserDict $userDict): void | ユーザー辞書を適用します。辞書が変更された場合は再度呼び出す必要があります。 |
VoiceModelFile
音声モデルファイル(.vvm ファイル)。
メソッド
| メソッド | 説明 |
|---|---|
static open(string $path): self | .vvm ファイルを開きます。 |
id(): string | 音声モデル ID を hex 文字列(16 バイト)で返します。 |
createMetasJson(): string | スピーカーメタデータを JSON 文字列で返します。 |
close(): void | ファイルを閉じてリソースを解放します。 |
Synthesizer
テキスト読み上げのメインクラス。
メソッド
| メソッド | 説明 |
|---|---|
__construct(Onnxruntime $onnxruntime, OpenJtalk $openJtalk, AccelerationMode $accelerationMode = Auto, int $cpuNumThreads = 0) | シンセサイザーを初期化します。 |
onnxruntime(): Onnxruntime | このシンセサイザーが保持する Onnxruntime インスタンスを返します。 |
isGpuMode(): bool | GPU モードが有効かどうかを返します。 |
metas(): string | 読み込まれているスピーカーのメタデータを JSON 文字列で返します。 |
loadVoiceModel(VoiceModelFile $model, OnExistingVoiceModelId $onExisting = Error): void | 音声モデルを読み込みます。同じ ID のモデルがすでに読み込まれている場合の動作を $onExisting で選べます。 |
unloadVoiceModel(string $voiceModelId): void | hex ID で指定した音声モデルをアンロードします。 |
isLoadedVoiceModel(string $voiceModelId): bool | 音声モデルが読み込まれているかどうかを確認します。 |
createAudioQuery(string $text, int $styleId): string | 日本語テキストから AudioQuery JSON を生成します。 |
createAudioQueryFromKana(string $kana, int $styleId): string | AquesTalk スタイルのかな記法から AudioQuery JSON を生成します。 |
createAccentPhrases(string $text, int $styleId): string | 日本語テキストからアクセント句配列 JSON を生成します。 |
createAccentPhrasesFromKana(string $kana, int $styleId): string | かな記法からアクセント句配列 JSON を生成します。 |
replaceMoraData(string $accentPhrasesJson, int $styleId): string | モーラのピッチと音素長を更新した新しいアクセント句を返します。 |
replacePhonemeLength(string $accentPhrasesJson, int $styleId): string | 音素長を更新した新しいアクセント句を返します。 |
replaceMoraPitch(string $accentPhrasesJson, int $styleId): string | モーラのピッチを更新した新しいアクセント句を返します。 |
synthesis(string $audioQueryJson, int $styleId, bool $enableInterrogativeUpspeak = true): string | AudioQuery JSON から音声を合成します。WAV バイナリを返します。 |
createAudioFeature(string $audioQueryJson, int $styleId, bool $enableInterrogativeUpspeak = true): AudioFeature | フレーム単位の render に使う中間表現 AudioFeature を作成します。 |
tts(string $text, int $styleId, bool $enableInterrogativeUpspeak = true): string | 日本語テキストから 1 ステップで音声を合成します。WAV バイナリを返します。 |
ttsFromKana(string $kana, int $styleId, bool $enableInterrogativeUpspeak = true): string | かな記法から音声を合成します。WAV バイナリを返します。 |
createSingFrameAudioQuery(string $scoreJson, int $styleId): string | 楽譜 JSON から歌唱合成クエリ JSON を生成します。 |
frameSynthesis(string $frameAudioQueryJson, int $styleId): string | フレームオーディオクエリから歌唱音声を合成します。WAV バイナリを返します。 |
createSingFrameF0(string $scoreJson, string $frameAudioQueryJson, int $styleId): string | 楽譜と歌唱クエリからフレームごとの F0(基本周波数)を JSON の float 配列で返します。 |
createSingFrameVolume(string $scoreJson, string $frameAudioQueryJson, int $styleId): string | 楽譜と歌唱クエリからフレームごとの音量を JSON の float 配列で返します。 |
AudioFeature と AudioFeatureSlice
AudioFeature はネイティブの中間表現を所有し、AudioFeatureSlice は所有元の AudioFeature を保持します。render は同期的に実行され、16-bit PCM の生データを返します。
| クラス / メソッド | 説明 |
|---|---|
AudioFeature::length(): int | 全体のフレーム数を返します。 |
AudioFeature::isEmpty(): bool | AudioFeature が空かどうかを返します。 |
AudioFeature::whole(): AudioFeatureSlice | 全体を表す slice を返します。 |
AudioFeature::slice(int $startInclusive, int $end, bool $endIsInclusive = false, bool $clamp = false, bool $allowStartExceedsEnd = false): AudioFeatureSlice | フレーム範囲を表す slice を作成します。デフォルトでは終了位置を含みません。 |
AudioFeature::render(): string | 全体を PCM として render します。 |
AudioFeatureSlice::length(): int | slice のフレーム数を返します。 |
AudioFeatureSlice::isEmpty(): bool | slice が空かどうかを返します。 |
AudioFeatureSlice::slice(int $startInclusive, int $end, bool $endIsInclusive = false, bool $clamp = false, bool $allowStartExceedsEnd = false): AudioFeatureSlice | 同じ範囲オプションで部分 slice を作成します。 |
AudioFeatureSlice::render(): string | slice を PCM として render します。 |
VoicevoxCore
VOICEVOX Core のグローバルユーティリティ関数。
メソッド
| メソッド | 説明 |
|---|---|
getVersion(): string | VOICEVOX Core のバージョンを SemVer 文字列で返します。 |
getFrameRate(): float | 1 秒あたりのフレーム数を返します(CORE 0.17.1 では 93.75)。 |
audioQueryFrameLength(string $audioQueryJson, bool $enableInterrogativeUpspeak = true): int | 音声の推定フレーム数を返します。 |
audioQueryCreateFromAccentPhrases(string $accentPhrasesJson): string | アクセント句配列 JSON から AudioQuery JSON を生成します。 |
audioQueryValidate(string $audioQueryJson): void | AudioQuery JSON を検証します。不正な場合は VoicevoxException をスローします。 |
accentPhraseValidate(string $accentPhraseJson): void | AccentPhrase JSON を検証します。不正な場合は VoicevoxException をスローします。 |
moraValidate(string $moraJson): void | Mora JSON を検証します。不正な場合は VoicevoxException をスローします。 |
scoreValidate(string $scoreJson): void | Score JSON を検証します。不正な場合は VoicevoxException をスローします。 |
noteValidate(string $noteJson): void | Note JSON を検証します。不正な場合は VoicevoxException をスローします。 |
frameAudioQueryValidate(string $frameAudioQueryJson): void | FrameAudioQuery JSON を検証します。不正な場合は VoicevoxException をスローします。 |
framePhonemeValidate(string $framePhonemeJson): void | FramePhoneme JSON を検証します。不正な場合は VoicevoxException をスローします。 |
ensureCompatible(string $scoreJson, string $frameAudioQueryJson): void | 楽譜と歌唱音声合成クエリの組み合わせが有効かを確認します。不正な場合は VoicevoxException をスローします。 |
UserDict
カスタム単語の発音を登録するユーザー辞書。
メソッド
| メソッド | 説明 |
|---|---|
__construct() | 空のユーザー辞書を作成します。 |
load(string $path): void | ファイルからユーザー辞書を読み込みます。 |
save(string $path): void | ユーザー辞書をファイルに保存します。 |
addWord(string $surface, string $pronunciation, int $accentType, UserDictWordType $wordType = CommonNoun, int $priority = 5): string | 単語を追加します。単語 UUID を hex 文字列で返します。 |
updateWord(string $wordUuid, string $surface, string $pronunciation, int $accentType, UserDictWordType $wordType = CommonNoun, int $priority = 5): void | UUID で指定した既存の単語を更新します。 |
removeWord(string $wordUuid): void | UUID で指定した単語を削除します。 |
importDict(UserDict $other): void | 別の UserDict から単語をインポートします。 |
toJson(): string | すべての単語を JSON 文字列で返します。 |
$priority は 0 〜 10 の範囲で指定します。範囲外の値を渡すと InvalidArgumentException をスローします。
Enum: AccelerationMode
シンセサイザーのハードウェアアクセラレーションモード。
| Case | 値 | 説明 |
|---|---|---|
Auto | 0 | 利用可能な最適モードを自動選択します。 |
Cpu | 1 | CPU モードを強制します。 |
Gpu | 2 | GPU モードを強制します。 |
Enum: OnExistingVoiceModelId
Synthesizer::loadVoiceModel() で、同じ ID の音声モデルがすでに読み込まれている場合の動作。
| Case | 値 | 説明 |
|---|---|---|
Error | 0 | エラーにします。デフォルトの動作です。 |
Reload | 1 | 既存の音声モデルを再読み込みします。 |
Skip | 2 | 何もしません。 |
Enum: UserDictWordType
ユーザー辞書エントリの品詞。
| Case | 値 | 説明 |
|---|---|---|
ProperNoun | 0 | 固有名詞 |
CommonNoun | 1 | 一般名詞 |
Verb | 2 | 動詞 |
Adjective | 3 | 形容詞 |
Suffix | 4 | 接尾辞 |