From 9bbb7a1ebe507245be1fbb01e4beed762da5fcda Mon Sep 17 00:00:00 2001 From: y-chan Date: Fri, 26 Apr 2024 17:12:34 +0900 Subject: [PATCH 1/5] update openapi --- openapi.json | 2 +- src/openapi/.openapi-generator/FILES | 1 + src/openapi/apis/DefaultApi.ts | 225 ++++++++++++------ .../BodySingFrameVolumeSingFrameVolumePost.ts | 88 +++++++ src/openapi/models/index.ts | 1 + 5 files changed, 239 insertions(+), 78 deletions(-) create mode 100644 src/openapi/models/BodySingFrameVolumeSingFrameVolumePost.ts diff --git a/openapi.json b/openapi.json index 2c54510806..12f75ded53 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"VOICEVOX Engine","description":"VOICEVOXの音声合成エンジンです。","version":"latest"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"音声合成用のクエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"type":"string","title":"Text"},"name":"text","in":"query"},{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audio_query_from_preset":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリをプリセットを用いて作成する","description":"音声合成用のクエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_from_preset_audio_query_from_preset_post","parameters":[{"required":true,"schema":{"type":"string","title":"Text"},"name":"text","in":"query"},{"required":true,"schema":{"type":"integer","title":"Preset Id"},"name":"preset_id","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/accent_phrases":{"post":{"tags":["クエリ編集"],"summary":"テキストからアクセント句を得る","description":"テキストからアクセント句を得ます。\nis_kanaが`true`のとき、テキストは次のAquesTalk 風記法で解釈されます。デフォルトは`false`です。\n* 全てのカナはカタカナで記述される\n* アクセント句は`/`または`、`で区切る。`、`で区切った場合に限り無音区間が挿入される。\n* カナの手前に`_`を入れるとそのカナは無声化される\n* アクセント位置を`'`で指定する。全てのアクセント句にはアクセント位置を1つ指定する必要がある。\n* アクセント句末に`?`(全角)を入れることにより疑問文の発音ができる。","operationId":"accent_phrases_accent_phrases_post","parameters":[{"required":true,"schema":{"type":"string","title":"Text"},"name":"text","in":"query"},{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"boolean","title":"Is Kana","default":false},"name":"is_kana","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Response Accent Phrases Accent Phrases Post"}}}},"400":{"description":"読み仮名のパースに失敗","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseKanaBadRequest"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mora_data":{"post":{"tags":["クエリ編集"],"summary":"アクセント句から音高・音素長を得る","operationId":"mora_data_mora_data_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Accent Phrases"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Response Mora Data Mora Data Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mora_length":{"post":{"tags":["クエリ編集"],"summary":"アクセント句から音素長を得る","operationId":"mora_length_mora_length_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Accent Phrases"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Response Mora Length Mora Length Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mora_pitch":{"post":{"tags":["クエリ編集"],"summary":"アクセント句から音高を得る","operationId":"mora_pitch_mora_pitch_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Accent Phrases"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Response Mora Pitch Mora Pitch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"description":"疑問系のテキストが与えられたら語尾を自動調整する","required":false,"schema":{"type":"boolean","title":"Enable Interrogative Upspeak","description":"疑問系のテキストが与えられたら語尾を自動調整する","default":true},"name":"enable_interrogative_upspeak","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cancellable_synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する(キャンセル可能)","operationId":"cancellable_synthesis_cancellable_synthesis_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/multi_synthesis":{"post":{"tags":["音声合成"],"summary":"複数まとめて音声合成する","operationId":"multi_synthesis_multi_synthesis_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AudioQuery"},"type":"array","title":"Queries"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/zip":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/morphable_targets":{"post":{"tags":["音声合成"],"summary":"指定したスタイルに対してエンジン内の話者がモーフィングが可能か判定する","description":"指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。\nモーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。\nプロパティが存在しない場合は、モーフィングが許可されているとみなします。\n返り値の話者はstring型なので注意。","operationId":"morphable_targets_morphable_targets_post","parameters":[{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"type":"integer"},"type":"array","title":"Base Style Ids"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":{"$ref":"#/components/schemas/MorphableTargetInfo"},"type":"object"},"type":"array","title":"Response Morphable Targets Morphable Targets Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis_morphing":{"post":{"tags":["音声合成"],"summary":"2種類のスタイルでモーフィングした音声を合成する","description":"指定された2種類のスタイルで音声を合成、指定した割合でモーフィングした音声を得ます。\nモーフィングの割合は`morph_rate`で指定でき、0.0でベースのスタイル、1.0でターゲットのスタイルに近づきます。","operationId":"_synthesis_morphing_synthesis_morphing_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Base Speaker"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"type":"integer","title":"Target Speaker"},"name":"target_speaker","in":"query"},{"required":true,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Morph Rate"},"name":"morph_rate","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sing_frame_audio_query":{"post":{"tags":["クエリ作成"],"summary":"歌唱音声合成用のクエリを作成する","description":"歌唱音声合成用のクエリの初期値を得ます。ここで得られたクエリはそのまま歌唱音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"sing_frame_audio_query_sing_frame_audio_query_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Score"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrameAudioQuery"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/frame_synthesis":{"post":{"tags":["音声合成"],"summary":"Frame Synthesis","description":"歌唱音声合成を行います。","operationId":"frame_synthesis_frame_synthesis_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrameAudioQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connect_waves":{"post":{"tags":["その他"],"summary":"base64エンコードされた複数のwavデータを一つに結合する","description":"base64エンコードされたwavデータを一纏めにし、wavファイルで返します。","operationId":"connect_waves_connect_waves_post","requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Waves"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/presets":{"get":{"tags":["その他"],"summary":"Get Presets","description":"エンジンが保持しているプリセットの設定を返します\n\nReturns\n-------\npresets: list[Preset]\n プリセットのリスト","operationId":"get_presets_presets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Preset"},"type":"array","title":"Response Get Presets Presets Get"}}}}}}},"/add_preset":{"post":{"tags":["その他"],"summary":"Add Preset","description":"新しいプリセットを追加します\n\nParameters\n-------\npreset: Preset\n 新しいプリセット。\n プリセットIDが既存のものと重複している場合は、新規のプリセットIDが採番されます。\n\nReturns\n-------\nid: int\n 追加したプリセットのプリセットID","operationId":"add_preset_add_preset_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Preset"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"integer","title":"Response Add Preset Add Preset Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/update_preset":{"post":{"tags":["その他"],"summary":"Update Preset","description":"既存のプリセットを更新します\n\nParameters\n-------\npreset: Preset\n 更新するプリセット。\n プリセットIDが更新対象と一致している必要があります。\n\nReturns\n-------\nid: int\n 更新したプリセットのプリセットID","operationId":"update_preset_update_preset_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Preset"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"integer","title":"Response Update Preset Update Preset Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/delete_preset":{"post":{"tags":["その他"],"summary":"Delete Preset","description":"既存のプリセットを削除します\n\nParameters\n-------\nid: int\n 削除するプリセットのプリセットID","operationId":"delete_preset_delete_preset_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Id"},"name":"id","in":"query"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Version Version Get"}}}}}}},"/core_versions":{"get":{"tags":["その他"],"summary":"Core Versions","operationId":"core_versions_core_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response Core Versions Core Versions Get"}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","parameters":[{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Speaker"},"type":"array","title":"Response Speakers Speakers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/speaker_info":{"get":{"tags":["その他"],"summary":"Speaker Info","description":"指定されたspeaker_uuidに関する情報をjson形式で返します。\n画像や音声はbase64エンコードされたものが返されます。","operationId":"speaker_info_speaker_info_get","parameters":[{"required":true,"schema":{"type":"string","title":"Speaker Uuid"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/singers":{"get":{"tags":["その他"],"summary":"Singers","operationId":"singers_singers_get","parameters":[{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Speaker"},"type":"array","title":"Response Singers Singers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/singer_info":{"get":{"tags":["その他"],"summary":"Singer Info","description":"指定されたspeaker_uuidに関する情報をjson形式で返します。\n画像や音声はbase64エンコードされたものが返されます。","operationId":"singer_info_singer_info_get","parameters":[{"required":true,"schema":{"type":"string","title":"Speaker Uuid"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/downloadable_libraries":{"get":{"tags":["音声ライブラリ管理"],"summary":"Downloadable Libraries","description":"ダウンロード可能な音声ライブラリの情報を返します。\n\nReturns\n-------\nret_data: list[DownloadableLibrary]","operationId":"downloadable_libraries_downloadable_libraries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DownloadableLibraryInfo"},"type":"array","title":"Response Downloadable Libraries Downloadable Libraries Get"}}}}}}},"/installed_libraries":{"get":{"tags":["音声ライブラリ管理"],"summary":"Installed Libraries","description":"インストールした音声ライブラリの情報を返します。\n\nReturns\n-------\nret_data: dict[str, InstalledLibrary]","operationId":"installed_libraries_installed_libraries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/InstalledLibraryInfo"},"type":"object","title":"Response Installed Libraries Installed Libraries Get"}}}}}}},"/install_library/{library_uuid}":{"post":{"tags":["音声ライブラリ管理"],"summary":"Install Library","description":"音声ライブラリをインストールします。\n音声ライブラリのZIPファイルをリクエストボディとして送信してください。\n\nParameters\n----------\nlibrary_uuid: str\n 音声ライブラリのID","operationId":"install_library_install_library__library_uuid__post","parameters":[{"required":true,"schema":{"type":"string","title":"Library Uuid"},"name":"library_uuid","in":"path"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uninstall_library/{library_uuid}":{"post":{"tags":["音声ライブラリ管理"],"summary":"Uninstall Library","description":"音声ライブラリをアンインストールします。\n\nParameters\n----------\nlibrary_uuid: str\n 音声ライブラリのID","operationId":"uninstall_library_uninstall_library__library_uuid__post","parameters":[{"required":true,"schema":{"type":"string","title":"Library Uuid"},"name":"library_uuid","in":"path"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/initialize_speaker":{"post":{"tags":["その他"],"summary":"Initialize Speaker","description":"指定されたスタイルを初期化します。\n実行しなくても他のAPIは使用できますが、初回実行時に時間がかかることがあります。","operationId":"initialize_speaker_initialize_speaker_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"description":"既に初期化済みのスタイルの再初期化をスキップするかどうか","required":false,"schema":{"type":"boolean","title":"Skip Reinit","description":"既に初期化済みのスタイルの再初期化をスキップするかどうか","default":false},"name":"skip_reinit","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/is_initialized_speaker":{"get":{"tags":["その他"],"summary":"Is Initialized Speaker","description":"指定されたスタイルが初期化されているかどうかを返します。","operationId":"is_initialized_speaker_is_initialized_speaker_get","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"boolean","title":"Response Is Initialized Speaker Is Initialized Speaker Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/user_dict":{"get":{"tags":["ユーザー辞書"],"summary":"Get User Dict Words","description":"ユーザー辞書に登録されている単語の一覧を返します。\n単語の表層形(surface)は正規化済みの物を返します。\n\nReturns\n-------\ndict[str, UserDictWord]\n 単語のUUIDとその詳細","operationId":"get_user_dict_words_user_dict_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/UserDictWord"},"type":"object","title":"Response Get User Dict Words User Dict Get"}}}}}}},"/user_dict_word":{"post":{"tags":["ユーザー辞書"],"summary":"Add User Dict Word","description":"ユーザー辞書に言葉を追加します。\n\nParameters\n----------\nsurface : str\n 言葉の表層形\npronunciation: str\n 言葉の発音(カタカナ)\naccent_type: int\n アクセント型(音が下がる場所を指す)\nword_type: WordTypes, optional\n PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか\npriority: int, optional\n 単語の優先度(0から10までの整数)\n 数字が大きいほど優先度が高くなる\n 1から9までの値を指定することを推奨","operationId":"add_user_dict_word_user_dict_word_post","parameters":[{"required":true,"schema":{"type":"string","title":"Surface"},"name":"surface","in":"query"},{"required":true,"schema":{"type":"string","title":"Pronunciation"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"type":"integer","title":"Accent Type"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Priority"},"name":"priority","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Add User Dict Word User Dict Word Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/user_dict_word/{word_uuid}":{"put":{"tags":["ユーザー辞書"],"summary":"Rewrite User Dict Word","description":"ユーザー辞書に登録されている言葉を更新します。\n\nParameters\n----------\nsurface : str\n 言葉の表層形\npronunciation: str\n 言葉の発音(カタカナ)\naccent_type: int\n アクセント型(音が下がる場所を指す)\nword_uuid: str\n 更新する言葉のUUID\nword_type: WordTypes, optional\n PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか\npriority: int, optional\n 単語の優先度(0から10までの整数)\n 数字が大きいほど優先度が高くなる\n 1から9までの値を指定することを推奨","operationId":"rewrite_user_dict_word_user_dict_word__word_uuid__put","parameters":[{"required":true,"schema":{"type":"string","title":"Word Uuid"},"name":"word_uuid","in":"path"},{"required":true,"schema":{"type":"string","title":"Surface"},"name":"surface","in":"query"},{"required":true,"schema":{"type":"string","title":"Pronunciation"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"type":"integer","title":"Accent Type"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Priority"},"name":"priority","in":"query"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["ユーザー辞書"],"summary":"Delete User Dict Word","description":"ユーザー辞書に登録されている言葉を削除します。\n\nParameters\n----------\nword_uuid: str\n 削除する言葉のUUID","operationId":"delete_user_dict_word_user_dict_word__word_uuid__delete","parameters":[{"required":true,"schema":{"type":"string","title":"Word Uuid"},"name":"word_uuid","in":"path"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/import_user_dict":{"post":{"tags":["ユーザー辞書"],"summary":"Import User Dict Words","description":"他のユーザー辞書をインポートします。\n\nParameters\n----------\nimport_dict_data: dict[str, UserDictWord]\n インポートするユーザー辞書のデータ\noverride: bool\n 重複したエントリがあった場合、上書きするかどうか","operationId":"import_user_dict_words_import_user_dict_post","parameters":[{"required":true,"schema":{"type":"boolean","title":"Override"},"name":"override","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/UserDictWord"},"type":"object","title":"Import Dict Data"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/supported_devices":{"get":{"tags":["その他"],"summary":"Supported Devices","operationId":"supported_devices_supported_devices_get","parameters":[{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportedDevicesInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/engine_manifest":{"get":{"tags":["その他"],"summary":"Engine Manifest","operationId":"engine_manifest_engine_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngineManifest"}}}}}}},"/validate_kana":{"post":{"tags":["その他"],"summary":"テキストがAquesTalk 風記法に従っているか判定する","description":"テキストがAquesTalk 風記法に従っているかどうかを判定します。\n従っていない場合はエラーが返ります。\n\nParameters\n----------\ntext: str\n 判定する対象の文字列","operationId":"validate_kana_validate_kana_post","parameters":[{"required":true,"schema":{"type":"string","title":"Text"},"name":"text","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"boolean","title":"Response Validate Kana Validate Kana Post"}}}},"400":{"description":"テキストが不正です","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseKanaBadRequest"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/setting":{"get":{"tags":["設定"],"summary":"Setting Get","description":"設定ページを返します。","operationId":"setting_get_setting_get","responses":{"200":{"description":"Successful Response"}}},"post":{"tags":["設定"],"summary":"Setting Post","description":"設定を更新します。","operationId":"setting_post_setting_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setting_post_setting_post"}}},"required":true},"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccentPhrase":{"properties":{"moras":{"items":{"$ref":"#/components/schemas/Mora"},"type":"array","title":"モーラのリスト"},"accent":{"type":"integer","title":"アクセント箇所"},"pause_mora":{"allOf":[{"$ref":"#/components/schemas/Mora"}],"title":"後ろに無音を付けるかどうか"},"is_interrogative":{"type":"boolean","title":"疑問系かどうか","default":false}},"type":"object","required":["moras","accent"],"title":"AccentPhrase","description":"アクセント句ごとの情報"},"AudioQuery":{"properties":{"accent_phrases":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"アクセント句のリスト"},"speedScale":{"type":"number","title":"全体の話速"},"pitchScale":{"type":"number","title":"全体の音高"},"intonationScale":{"type":"number","title":"全体の抑揚"},"volumeScale":{"type":"number","title":"全体の音量"},"prePhonemeLength":{"type":"number","title":"音声の前の無音時間"},"postPhonemeLength":{"type":"number","title":"音声の後の無音時間"},"outputSamplingRate":{"type":"integer","title":"音声データの出力サンプリングレート"},"outputStereo":{"type":"boolean","title":"音声データをステレオ出力するか否か"},"kana":{"type":"string","title":"[読み取り専用]AquesTalk 風記法によるテキスト。音声合成用のクエリとしては無視される"}},"type":"object","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"title":"AudioQuery","description":"音声合成用のクエリ"},"Body_setting_post_setting_post":{"properties":{"cors_policy_mode":{"$ref":"#/components/schemas/CorsPolicyMode"},"allow_origin":{"type":"string","title":"Allow Origin"}},"type":"object","required":["cors_policy_mode"],"title":"Body_setting_post_setting_post"},"CorsPolicyMode":{"type":"string","enum":["all","localapps"],"title":"CorsPolicyMode","description":"CORSの許可モード"},"DownloadableLibraryInfo":{"properties":{"name":{"type":"string","title":"音声ライブラリの名前"},"uuid":{"type":"string","title":"音声ライブラリのUUID"},"version":{"type":"string","title":"音声ライブラリのバージョン"},"download_url":{"type":"string","title":"音声ライブラリのダウンロードURL"},"bytes":{"type":"integer","title":"音声ライブラリのバイト数"},"speakers":{"items":{"$ref":"#/components/schemas/LibrarySpeaker"},"type":"array","title":"音声ライブラリに含まれる話者のリスト"}},"type":"object","required":["name","uuid","version","download_url","bytes","speakers"],"title":"DownloadableLibraryInfo","description":"ダウンロード可能な音声ライブラリの情報"},"EngineManifest":{"properties":{"manifest_version":{"type":"string","title":"マニフェストのバージョン"},"name":{"type":"string","title":"エンジン名"},"brand_name":{"type":"string","title":"ブランド名"},"uuid":{"type":"string","title":"エンジンのUUID"},"url":{"type":"string","title":"エンジンのURL"},"icon":{"type":"string","title":"エンジンのアイコンをBASE64エンコードしたもの"},"default_sampling_rate":{"type":"integer","title":"デフォルトのサンプリング周波数"},"frame_rate":{"type":"number","title":"エンジンのフレームレート"},"terms_of_service":{"type":"string","title":"エンジンの利用規約"},"update_infos":{"items":{"$ref":"#/components/schemas/UpdateInfo"},"type":"array","title":"エンジンのアップデート情報"},"dependency_licenses":{"items":{"$ref":"#/components/schemas/LicenseInfo"},"type":"array","title":"依存関係のライセンス情報"},"supported_vvlib_manifest_version":{"type":"string","title":"エンジンが対応するvvlibのバージョン"},"supported_features":{"allOf":[{"$ref":"#/components/schemas/SupportedFeatures"}],"title":"エンジンが持つ機能"}},"type":"object","required":["manifest_version","name","brand_name","uuid","url","icon","default_sampling_rate","frame_rate","terms_of_service","update_infos","dependency_licenses","supported_features"],"title":"EngineManifest","description":"エンジン自体に関する情報"},"FrameAudioQuery":{"properties":{"f0":{"items":{"type":"number"},"type":"array","title":"フレームごとの基本周波数"},"volume":{"items":{"type":"number"},"type":"array","title":"フレームごとの音量"},"phonemes":{"items":{"$ref":"#/components/schemas/FramePhoneme"},"type":"array","title":"音素のリスト"},"volumeScale":{"type":"number","title":"全体の音量"},"outputSamplingRate":{"type":"integer","title":"音声データの出力サンプリングレート"},"outputStereo":{"type":"boolean","title":"音声データをステレオ出力するか否か"}},"type":"object","required":["f0","volume","phonemes","volumeScale","outputSamplingRate","outputStereo"],"title":"FrameAudioQuery","description":"フレームごとの音声合成用のクエリ"},"FramePhoneme":{"properties":{"phoneme":{"type":"string","title":"音素"},"frame_length":{"type":"integer","title":"音素のフレーム長"}},"type":"object","required":["phoneme","frame_length"],"title":"FramePhoneme","description":"音素の情報"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InstalledLibraryInfo":{"properties":{"name":{"type":"string","title":"音声ライブラリの名前"},"uuid":{"type":"string","title":"音声ライブラリのUUID"},"version":{"type":"string","title":"音声ライブラリのバージョン"},"download_url":{"type":"string","title":"音声ライブラリのダウンロードURL"},"bytes":{"type":"integer","title":"音声ライブラリのバイト数"},"speakers":{"items":{"$ref":"#/components/schemas/LibrarySpeaker"},"type":"array","title":"音声ライブラリに含まれる話者のリスト"},"uninstallable":{"type":"boolean","title":"アンインストール可能かどうか"}},"type":"object","required":["name","uuid","version","download_url","bytes","speakers","uninstallable"],"title":"InstalledLibraryInfo","description":"インストール済み音声ライブラリの情報"},"LibrarySpeaker":{"properties":{"speaker":{"allOf":[{"$ref":"#/components/schemas/Speaker"}],"title":"話者情報"},"speaker_info":{"allOf":[{"$ref":"#/components/schemas/SpeakerInfo"}],"title":"話者の追加情報"}},"type":"object","required":["speaker","speaker_info"],"title":"LibrarySpeaker","description":"音声ライブラリに含まれる話者の情報"},"LicenseInfo":{"properties":{"name":{"type":"string","title":"依存ライブラリ名"},"version":{"type":"string","title":"依存ライブラリのバージョン"},"license":{"type":"string","title":"依存ライブラリのライセンス名"},"text":{"type":"string","title":"依存ライブラリのライセンス本文"}},"type":"object","required":["name","text"],"title":"LicenseInfo","description":"依存ライブラリのライセンス情報"},"Mora":{"properties":{"text":{"type":"string","title":"文字"},"consonant":{"type":"string","title":"子音の音素"},"consonant_length":{"type":"number","title":"子音の音長"},"vowel":{"type":"string","title":"母音の音素"},"vowel_length":{"type":"number","title":"母音の音長"},"pitch":{"type":"number","title":"音高"}},"type":"object","required":["text","vowel","vowel_length","pitch"],"title":"Mora","description":"モーラ(子音+母音)ごとの情報"},"MorphableTargetInfo":{"properties":{"is_morphable":{"type":"boolean","title":"指定した話者に対してモーフィングの可否"}},"type":"object","required":["is_morphable"],"title":"MorphableTargetInfo"},"Note":{"properties":{"key":{"type":"integer","title":"音階"},"frame_length":{"type":"integer","title":"音符のフレーム長"},"lyric":{"type":"string","title":"音符の歌詞"}},"type":"object","required":["frame_length","lyric"],"title":"Note","description":"音符ごとの情報"},"ParseKanaBadRequest":{"properties":{"text":{"type":"string","title":"エラーメッセージ"},"error_name":{"type":"string","title":"エラー名","description":"|name|description|\n|---|---|\n| UNKNOWN_TEXT | 判別できない読み仮名があります: {text} |\n| ACCENT_TOP | 句頭にアクセントは置けません: {text} |\n| ACCENT_TWICE | 1つのアクセント句に二つ以上のアクセントは置けません: {text} |\n| ACCENT_NOTFOUND | アクセントを指定していないアクセント句があります: {text} |\n| EMPTY_PHRASE | {position}番目のアクセント句が空白です |\n| INTERROGATION_MARK_NOT_AT_END | アクセント句末以外に「?」は置けません: {text} |\n| INFINITE_LOOP | 処理時に無限ループになってしまいました...バグ報告をお願いします。 |"},"error_args":{"additionalProperties":{"type":"string"},"type":"object","title":"エラーを起こした箇所"}},"type":"object","required":["text","error_name","error_args"],"title":"ParseKanaBadRequest"},"Preset":{"properties":{"id":{"type":"integer","title":"プリセットID"},"name":{"type":"string","title":"プリセット名"},"speaker_uuid":{"type":"string","title":"話者のUUID"},"style_id":{"type":"integer","title":"スタイルID"},"speedScale":{"type":"number","title":"全体の話速"},"pitchScale":{"type":"number","title":"全体の音高"},"intonationScale":{"type":"number","title":"全体の抑揚"},"volumeScale":{"type":"number","title":"全体の音量"},"prePhonemeLength":{"type":"number","title":"音声の前の無音時間"},"postPhonemeLength":{"type":"number","title":"音声の後の無音時間"}},"type":"object","required":["id","name","speaker_uuid","style_id","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength"],"title":"Preset","description":"プリセット情報"},"Score":{"properties":{"notes":{"items":{"$ref":"#/components/schemas/Note"},"type":"array","title":"音符のリスト"}},"type":"object","required":["notes"],"title":"Score","description":"楽譜情報"},"Speaker":{"properties":{"supported_features":{"allOf":[{"$ref":"#/components/schemas/SpeakerSupportedFeatures"}],"title":"話者の対応機能"},"name":{"type":"string","title":"名前"},"speaker_uuid":{"type":"string","title":"話者のUUID"},"styles":{"items":{"$ref":"#/components/schemas/SpeakerStyle"},"type":"array","title":"スタイルの一覧"},"version":{"type":"string","title":"Version","default":"話者のバージョン"}},"type":"object","required":["name","speaker_uuid","styles"],"title":"Speaker","description":"話者情報"},"SpeakerInfo":{"properties":{"policy":{"type":"string","title":"policy.md"},"portrait":{"type":"string","title":"portrait.pngをbase64エンコードしたもの"},"style_infos":{"items":{"$ref":"#/components/schemas/StyleInfo"},"type":"array","title":"スタイルの追加情報"}},"type":"object","required":["policy","portrait","style_infos"],"title":"SpeakerInfo","description":"話者の追加情報"},"SpeakerStyle":{"properties":{"name":{"type":"string","title":"スタイル名"},"id":{"type":"integer","title":"スタイルID"},"type":{"type":"string","enum":["talk","singing_teacher","frame_decode","sing"],"title":"モデルの種類。talk:音声合成クエリの作成と音声合成が可能。singing_teacher:歌唱音声合成用のクエリの作成が可能。frame_decode:歌唱音声合成が可能。sing:歌唱音声合成用のクエリの作成と歌唱音声合成が可能。","default":"talk"}},"type":"object","required":["name","id"],"title":"SpeakerStyle","description":"話者のスタイル情報"},"SpeakerSupportPermittedSynthesisMorphing":{"type":"string","enum":["ALL","SELF_ONLY","NOTHING"],"title":"SpeakerSupportPermittedSynthesisMorphing","description":"An enumeration."},"SpeakerSupportedFeatures":{"properties":{"permitted_synthesis_morphing":{"allOf":[{"$ref":"#/components/schemas/SpeakerSupportPermittedSynthesisMorphing"}],"title":"モーフィング機能への対応","default":"ALL"}},"type":"object","title":"SpeakerSupportedFeatures","description":"話者の対応機能の情報"},"StyleInfo":{"properties":{"id":{"type":"integer","title":"スタイルID"},"icon":{"type":"string","title":"当該スタイルのアイコンをbase64エンコードしたもの"},"portrait":{"type":"string","title":"当該スタイルのportrait.pngをbase64エンコードしたもの"},"voice_samples":{"items":{"type":"string"},"type":"array","title":"voice_sampleのwavファイルをbase64エンコードしたもの"}},"type":"object","required":["id","icon","voice_samples"],"title":"StyleInfo","description":"スタイルの追加情報"},"SupportedDevicesInfo":{"properties":{"cpu":{"type":"boolean","title":"CPUに対応しているか"},"cuda":{"type":"boolean","title":"CUDA(Nvidia GPU)に対応しているか"},"dml":{"type":"boolean","title":"DirectML(Nvidia GPU/Radeon GPU等)に対応しているか"}},"type":"object","required":["cpu","cuda","dml"],"title":"SupportedDevicesInfo","description":"対応しているデバイスの情報"},"SupportedFeatures":{"properties":{"adjust_mora_pitch":{"type":"boolean","title":"モーラごとの音高の調整"},"adjust_phoneme_length":{"type":"boolean","title":"音素ごとの長さの調整"},"adjust_speed_scale":{"type":"boolean","title":"全体の話速の調整"},"adjust_pitch_scale":{"type":"boolean","title":"全体の音高の調整"},"adjust_intonation_scale":{"type":"boolean","title":"全体の抑揚の調整"},"adjust_volume_scale":{"type":"boolean","title":"全体の音量の調整"},"interrogative_upspeak":{"type":"boolean","title":"疑問文の自動調整"},"synthesis_morphing":{"type":"boolean","title":"2種類のスタイルでモーフィングした音声を合成"},"sing":{"type":"boolean","title":"歌唱音声合成"},"manage_library":{"type":"boolean","title":"音声ライブラリのインストール・アンインストール"}},"type":"object","required":["adjust_mora_pitch","adjust_phoneme_length","adjust_speed_scale","adjust_pitch_scale","adjust_intonation_scale","adjust_volume_scale","interrogative_upspeak","synthesis_morphing"],"title":"SupportedFeatures","description":"エンジンが持つ機能の一覧"},"UpdateInfo":{"properties":{"version":{"type":"string","title":"エンジンのバージョン名"},"descriptions":{"items":{"type":"string"},"type":"array","title":"アップデートの詳細についての説明"},"contributors":{"items":{"type":"string"},"type":"array","title":"貢献者名"}},"type":"object","required":["version","descriptions"],"title":"UpdateInfo","description":"エンジンのアップデート情報"},"UserDictWord":{"properties":{"surface":{"type":"string","title":"表層形"},"priority":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"優先度"},"context_id":{"type":"integer","title":"文脈ID","default":1348},"part_of_speech":{"type":"string","title":"品詞"},"part_of_speech_detail_1":{"type":"string","title":"品詞細分類1"},"part_of_speech_detail_2":{"type":"string","title":"品詞細分類2"},"part_of_speech_detail_3":{"type":"string","title":"品詞細分類3"},"inflectional_type":{"type":"string","title":"活用型"},"inflectional_form":{"type":"string","title":"活用形"},"stem":{"type":"string","title":"原形"},"yomi":{"type":"string","title":"読み"},"pronunciation":{"type":"string","title":"発音"},"accent_type":{"type":"integer","title":"アクセント型"},"mora_count":{"type":"integer","title":"モーラ数"},"accent_associative_rule":{"type":"string","title":"アクセント結合規則"}},"type":"object","required":["surface","priority","part_of_speech","part_of_speech_detail_1","part_of_speech_detail_2","part_of_speech_detail_3","inflectional_type","inflectional_form","stem","yomi","pronunciation","accent_type","accent_associative_rule"],"title":"UserDictWord","description":"辞書のコンパイルに使われる情報"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WordTypes":{"type":"string","enum":["PROPER_NOUN","COMMON_NOUN","VERB","ADJECTIVE","SUFFIX"],"title":"WordTypes","description":"fastapiでword_type引数を検証する時に使用するクラス"},"VvlibManifest":{"title":"VvlibManifest","description":"vvlib(VOICEVOX Library)に関する情報","type":"object","properties":{"manifest_version":{"title":"マニフェストバージョン","type":"string"},"name":{"title":"音声ライブラリ名","type":"string"},"version":{"title":"音声ライブラリバージョン","type":"string"},"uuid":{"title":"音声ライブラリのUUID","type":"string"},"brand_name":{"title":"エンジンのブランド名","type":"string"},"engine_name":{"title":"エンジン名","type":"string"},"engine_uuid":{"title":"エンジンのUUID","type":"string"}},"required":["manifest_version","name","version","uuid","brand_name","engine_name","engine_uuid"]},"BaseLibraryInfo":{"title":"BaseLibraryInfo","description":"音声ライブラリの情報","type":"object","properties":{"name":{"title":"音声ライブラリの名前","type":"string"},"uuid":{"title":"音声ライブラリのUUID","type":"string"},"version":{"title":"音声ライブラリのバージョン","type":"string"},"download_url":{"title":"音声ライブラリのダウンロードURL","type":"string"},"bytes":{"title":"音声ライブラリのバイト数","type":"integer"},"speakers":{"title":"音声ライブラリに含まれる話者のリスト","type":"array","items":{"$ref":"#/components/schemas/LibrarySpeaker"}}},"required":["name","uuid","version","download_url","bytes","speakers"]}}}} \ No newline at end of file +{"openapi":"3.1.0","info":{"title":"VOICEVOX Engine","description":"VOICEVOXの音声合成エンジンです。","version":"latest"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"音声合成用のクエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"type":"string","title":"Text"},"name":"text","in":"query"},{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/audio_query_from_preset":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリをプリセットを用いて作成する","description":"音声合成用のクエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_from_preset_audio_query_from_preset_post","parameters":[{"required":true,"schema":{"type":"string","title":"Text"},"name":"text","in":"query"},{"required":true,"schema":{"type":"integer","title":"Preset Id"},"name":"preset_id","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/accent_phrases":{"post":{"tags":["クエリ編集"],"summary":"テキストからアクセント句を得る","description":"テキストからアクセント句を得ます。\nis_kanaが`true`のとき、テキストは次のAquesTalk 風記法で解釈されます。デフォルトは`false`です。\n* 全てのカナはカタカナで記述される\n* アクセント句は`/`または`、`で区切る。`、`で区切った場合に限り無音区間が挿入される。\n* カナの手前に`_`を入れるとそのカナは無声化される\n* アクセント位置を`'`で指定する。全てのアクセント句にはアクセント位置を1つ指定する必要がある。\n* アクセント句末に`?`(全角)を入れることにより疑問文の発音ができる。","operationId":"accent_phrases_accent_phrases_post","parameters":[{"required":true,"schema":{"type":"string","title":"Text"},"name":"text","in":"query"},{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"boolean","title":"Is Kana","default":false},"name":"is_kana","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Response Accent Phrases Accent Phrases Post"}}}},"400":{"description":"読み仮名のパースに失敗","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseKanaBadRequest"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mora_data":{"post":{"tags":["クエリ編集"],"summary":"アクセント句から音高・音素長を得る","operationId":"mora_data_mora_data_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Accent Phrases"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Response Mora Data Mora Data Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mora_length":{"post":{"tags":["クエリ編集"],"summary":"アクセント句から音素長を得る","operationId":"mora_length_mora_length_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Accent Phrases"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Response Mora Length Mora Length Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mora_pitch":{"post":{"tags":["クエリ編集"],"summary":"アクセント句から音高を得る","operationId":"mora_pitch_mora_pitch_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Accent Phrases"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"Response Mora Pitch Mora Pitch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"description":"疑問系のテキストが与えられたら語尾を自動調整する","required":false,"schema":{"type":"boolean","title":"Enable Interrogative Upspeak","description":"疑問系のテキストが与えられたら語尾を自動調整する","default":true},"name":"enable_interrogative_upspeak","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/cancellable_synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する(キャンセル可能)","operationId":"cancellable_synthesis_cancellable_synthesis_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/multi_synthesis":{"post":{"tags":["音声合成"],"summary":"複数まとめて音声合成する","operationId":"multi_synthesis_multi_synthesis_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AudioQuery"},"type":"array","title":"Queries"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/zip":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sing_frame_audio_query":{"post":{"tags":["クエリ作成"],"summary":"歌唱音声合成用のクエリを作成する","description":"歌唱音声合成用のクエリの初期値を得ます。ここで得られたクエリはそのまま歌唱音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"sing_frame_audio_query_sing_frame_audio_query_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Score"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrameAudioQuery"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sing_frame_volume":{"post":{"tags":["クエリ編集"],"summary":"スコア・歌唱音声合成用のクエリからフレームごとの音量を得る","operationId":"sing_frame_volume_sing_frame_volume_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_sing_frame_volume_sing_frame_volume_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"number"},"type":"array","title":"Response Sing Frame Volume Sing Frame Volume Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/frame_synthesis":{"post":{"tags":["音声合成"],"summary":"Frame Synthesis","description":"歌唱音声合成を行います。","operationId":"frame_synthesis_frame_synthesis_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrameAudioQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connect_waves":{"post":{"tags":["その他"],"summary":"base64エンコードされた複数のwavデータを一つに結合する","description":"base64エンコードされたwavデータを一纏めにし、wavファイルで返します。","operationId":"connect_waves_connect_waves_post","requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Waves"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/validate_kana":{"post":{"tags":["その他"],"summary":"テキストがAquesTalk 風記法に従っているか判定する","description":"テキストがAquesTalk 風記法に従っているかどうかを判定します。\n従っていない場合はエラーが返ります。","operationId":"validate_kana_validate_kana_post","parameters":[{"description":"判定する対象の文字列","required":true,"schema":{"type":"string","title":"Text","description":"判定する対象の文字列"},"name":"text","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"boolean","title":"Response Validate Kana Validate Kana Post"}}}},"400":{"description":"テキストが不正です","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseKanaBadRequest"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/morphable_targets":{"post":{"tags":["音声合成"],"summary":"指定したスタイルに対してエンジン内の話者がモーフィングが可能か判定する","description":"指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。\nモーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。\nプロパティが存在しない場合は、モーフィングが許可されているとみなします。\n返り値のスタイルIDはstring型なので注意。","operationId":"morphable_targets_morphable_targets_post","parameters":[{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"type":"integer"},"type":"array","title":"Base Style Ids"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":{"$ref":"#/components/schemas/MorphableTargetInfo"},"type":"object"},"type":"array","title":"Response Morphable Targets Morphable Targets Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis_morphing":{"post":{"tags":["音声合成"],"summary":"2種類のスタイルでモーフィングした音声を合成する","description":"指定された2種類のスタイルで音声を合成、指定した割合でモーフィングした音声を得ます。\nモーフィングの割合は`morph_rate`で指定でき、0.0でベースのスタイル、1.0でターゲットのスタイルに近づきます。","operationId":"_synthesis_morphing_synthesis_morphing_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Base Speaker"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"type":"integer","title":"Target Speaker"},"name":"target_speaker","in":"query"},{"required":true,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Morph Rate"},"name":"morph_rate","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioQuery"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/presets":{"get":{"tags":["その他"],"summary":"Get Presets","description":"エンジンが保持しているプリセットの設定を返します","operationId":"get_presets_presets_get","responses":{"200":{"description":"プリセットのリスト","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Preset"},"type":"array","title":"Response Get Presets Presets Get"}}}}}}},"/add_preset":{"post":{"tags":["その他"],"summary":"Add Preset","description":"新しいプリセットを追加します","operationId":"add_preset_add_preset_post","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Preset"}],"title":"Preset","description":"新しいプリセット。プリセットIDが既存のものと重複している場合は、新規のプリセットIDが採番されます。"}}},"required":true},"responses":{"200":{"description":"追加したプリセットのプリセットID","content":{"application/json":{"schema":{"type":"integer","title":"Response Add Preset Add Preset Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/update_preset":{"post":{"tags":["その他"],"summary":"Update Preset","description":"既存のプリセットを更新します","operationId":"update_preset_update_preset_post","requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Preset"}],"title":"Preset","description":"更新するプリセット。プリセットIDが更新対象と一致している必要があります。"}}},"required":true},"responses":{"200":{"description":"更新したプリセットのプリセットID","content":{"application/json":{"schema":{"type":"integer","title":"Response Update Preset Update Preset Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/delete_preset":{"post":{"tags":["その他"],"summary":"Delete Preset","description":"既存のプリセットを削除します","operationId":"delete_preset_delete_preset_post","parameters":[{"description":"削除するプリセットのプリセットID","required":true,"schema":{"type":"integer","title":"Id","description":"削除するプリセットのプリセットID"},"name":"id","in":"query"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Version Version Get"}}}}}}},"/core_versions":{"get":{"tags":["その他"],"summary":"Core Versions","operationId":"core_versions_core_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array","title":"Response Core Versions Core Versions Get"}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","parameters":[{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Speaker"},"type":"array","title":"Response Speakers Speakers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/speaker_info":{"get":{"tags":["その他"],"summary":"Speaker Info","description":"指定されたspeaker_uuidに関する情報をjson形式で返します。\n画像や音声はbase64エンコードされたものが返されます。","operationId":"speaker_info_speaker_info_get","parameters":[{"required":true,"schema":{"type":"string","title":"Speaker Uuid"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/singers":{"get":{"tags":["その他"],"summary":"Singers","operationId":"singers_singers_get","parameters":[{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Speaker"},"type":"array","title":"Response Singers Singers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/singer_info":{"get":{"tags":["その他"],"summary":"Singer Info","description":"指定されたspeaker_uuidに関する情報をjson形式で返します。\n画像や音声はbase64エンコードされたものが返されます。","operationId":"singer_info_singer_info_get","parameters":[{"required":true,"schema":{"type":"string","title":"Speaker Uuid"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeakerInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/downloadable_libraries":{"get":{"tags":["音声ライブラリ管理"],"summary":"Downloadable Libraries","description":"ダウンロード可能な音声ライブラリの情報を返します。","operationId":"downloadable_libraries_downloadable_libraries_get","responses":{"200":{"description":"ダウンロード可能な音声ライブラリの情報リスト","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DownloadableLibraryInfo"},"type":"array","title":"Response Downloadable Libraries Downloadable Libraries Get"}}}}}}},"/installed_libraries":{"get":{"tags":["音声ライブラリ管理"],"summary":"Installed Libraries","description":"インストールした音声ライブラリの情報を返します。","operationId":"installed_libraries_installed_libraries_get","responses":{"200":{"description":"インストールした音声ライブラリの情報","content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/InstalledLibraryInfo"},"type":"object","title":"Response Installed Libraries Installed Libraries Get"}}}}}}},"/install_library/{library_uuid}":{"post":{"tags":["音声ライブラリ管理"],"summary":"Install Library","description":"音声ライブラリをインストールします。\n音声ライブラリのZIPファイルをリクエストボディとして送信してください。","operationId":"install_library_install_library__library_uuid__post","parameters":[{"description":"音声ライブラリのID","required":true,"schema":{"type":"string","title":"Library Uuid","description":"音声ライブラリのID"},"name":"library_uuid","in":"path"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/uninstall_library/{library_uuid}":{"post":{"tags":["音声ライブラリ管理"],"summary":"Uninstall Library","description":"音声ライブラリをアンインストールします。","operationId":"uninstall_library_uninstall_library__library_uuid__post","parameters":[{"description":"音声ライブラリのID","required":true,"schema":{"type":"string","title":"Library Uuid","description":"音声ライブラリのID"},"name":"library_uuid","in":"path"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/initialize_speaker":{"post":{"tags":["その他"],"summary":"Initialize Speaker","description":"指定されたスタイルを初期化します。\n実行しなくても他のAPIは使用できますが、初回実行時に時間がかかることがあります。","operationId":"initialize_speaker_initialize_speaker_post","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"description":"既に初期化済みのスタイルの再初期化をスキップするかどうか","required":false,"schema":{"type":"boolean","title":"Skip Reinit","description":"既に初期化済みのスタイルの再初期化をスキップするかどうか","default":false},"name":"skip_reinit","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/is_initialized_speaker":{"get":{"tags":["その他"],"summary":"Is Initialized Speaker","description":"指定されたスタイルが初期化されているかどうかを返します。","operationId":"is_initialized_speaker_is_initialized_speaker_get","parameters":[{"required":true,"schema":{"type":"integer","title":"Speaker"},"name":"speaker","in":"query"},{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"boolean","title":"Response Is Initialized Speaker Is Initialized Speaker Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/user_dict":{"get":{"tags":["ユーザー辞書"],"summary":"Get User Dict Words","description":"ユーザー辞書に登録されている単語の一覧を返します。\n単語の表層形(surface)は正規化済みの物を返します。","operationId":"get_user_dict_words_user_dict_get","responses":{"200":{"description":"単語のUUIDとその詳細","content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/UserDictWord"},"type":"object","title":"Response Get User Dict Words User Dict Get"}}}}}}},"/user_dict_word":{"post":{"tags":["ユーザー辞書"],"summary":"Add User Dict Word","description":"ユーザー辞書に言葉を追加します。","operationId":"add_user_dict_word_user_dict_word_post","parameters":[{"description":"言葉の表層形","required":true,"schema":{"type":"string","title":"Surface","description":"言葉の表層形"},"name":"surface","in":"query"},{"description":"言葉の発音(カタカナ)","required":true,"schema":{"type":"string","title":"Pronunciation","description":"言葉の発音(カタカナ)"},"name":"pronunciation","in":"query"},{"description":"アクセント型(音が下がる場所を指す)","required":true,"schema":{"type":"integer","title":"Accent Type","description":"アクセント型(音が下がる場所を指す)"},"name":"accent_type","in":"query"},{"description":"PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/WordTypes"}],"description":"PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか"},"name":"word_type","in":"query"},{"description":"単語の優先度(0から10までの整数)。数字が大きいほど優先度が高くなる。1から9までの値を指定することを推奨","required":false,"schema":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Priority","description":"単語の優先度(0から10までの整数)。数字が大きいほど優先度が高くなる。1から9までの値を指定することを推奨"},"name":"priority","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Add User Dict Word User Dict Word Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/user_dict_word/{word_uuid}":{"put":{"tags":["ユーザー辞書"],"summary":"Rewrite User Dict Word","description":"ユーザー辞書に登録されている言葉を更新します。","operationId":"rewrite_user_dict_word_user_dict_word__word_uuid__put","parameters":[{"description":"更新する言葉のUUID","required":true,"schema":{"type":"string","title":"Word Uuid","description":"更新する言葉のUUID"},"name":"word_uuid","in":"path"},{"description":"言葉の表層形","required":true,"schema":{"type":"string","title":"Surface","description":"言葉の表層形"},"name":"surface","in":"query"},{"description":"言葉の発音(カタカナ)","required":true,"schema":{"type":"string","title":"Pronunciation","description":"言葉の発音(カタカナ)"},"name":"pronunciation","in":"query"},{"description":"アクセント型(音が下がる場所を指す)","required":true,"schema":{"type":"integer","title":"Accent Type","description":"アクセント型(音が下がる場所を指す)"},"name":"accent_type","in":"query"},{"description":"PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか","required":false,"schema":{"allOf":[{"$ref":"#/components/schemas/WordTypes"}],"description":"PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか"},"name":"word_type","in":"query"},{"description":"単語の優先度(0から10までの整数)。数字が大きいほど優先度が高くなる。1から9までの値を指定することを推奨。","required":false,"schema":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Priority","description":"単語の優先度(0から10までの整数)。数字が大きいほど優先度が高くなる。1から9までの値を指定することを推奨。"},"name":"priority","in":"query"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["ユーザー辞書"],"summary":"Delete User Dict Word","description":"ユーザー辞書に登録されている言葉を削除します。","operationId":"delete_user_dict_word_user_dict_word__word_uuid__delete","parameters":[{"description":"削除する言葉のUUID","required":true,"schema":{"type":"string","title":"Word Uuid","description":"削除する言葉のUUID"},"name":"word_uuid","in":"path"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/import_user_dict":{"post":{"tags":["ユーザー辞書"],"summary":"Import User Dict Words","description":"他のユーザー辞書をインポートします。","operationId":"import_user_dict_words_import_user_dict_post","parameters":[{"description":"重複したエントリがあった場合、上書きするかどうか","required":true,"schema":{"type":"boolean","title":"Override","description":"重複したエントリがあった場合、上書きするかどうか"},"name":"override","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"$ref":"#/components/schemas/UserDictWord"},"type":"object","title":"Import Dict Data","description":"インポートするユーザー辞書のデータ"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/supported_devices":{"get":{"tags":["その他"],"summary":"Supported Devices","operationId":"supported_devices_supported_devices_get","parameters":[{"required":false,"schema":{"type":"string","title":"Core Version"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportedDevicesInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/engine_manifest":{"get":{"tags":["その他"],"summary":"Engine Manifest","operationId":"engine_manifest_engine_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EngineManifest"}}}}}}},"/setting":{"get":{"tags":["設定"],"summary":"Setting Get","description":"設定ページを返します。","operationId":"setting_get_setting_get","responses":{"200":{"description":"Successful Response"}}},"post":{"tags":["設定"],"summary":"Setting Post","description":"設定を更新します。","operationId":"setting_post_setting_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setting_post_setting_post"}}},"required":true},"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccentPhrase":{"properties":{"moras":{"items":{"$ref":"#/components/schemas/Mora"},"type":"array","title":"モーラのリスト"},"accent":{"type":"integer","title":"アクセント箇所"},"pause_mora":{"allOf":[{"$ref":"#/components/schemas/Mora"}],"title":"後ろに無音を付けるかどうか"},"is_interrogative":{"type":"boolean","title":"疑問系かどうか","default":false}},"type":"object","required":["moras","accent"],"title":"AccentPhrase","description":"アクセント句ごとの情報"},"AudioQuery":{"properties":{"accent_phrases":{"items":{"$ref":"#/components/schemas/AccentPhrase"},"type":"array","title":"アクセント句のリスト"},"speedScale":{"type":"number","title":"全体の話速"},"pitchScale":{"type":"number","title":"全体の音高"},"intonationScale":{"type":"number","title":"全体の抑揚"},"volumeScale":{"type":"number","title":"全体の音量"},"prePhonemeLength":{"type":"number","title":"音声の前の無音時間"},"postPhonemeLength":{"type":"number","title":"音声の後の無音時間"},"outputSamplingRate":{"type":"integer","title":"音声データの出力サンプリングレート"},"outputStereo":{"type":"boolean","title":"音声データをステレオ出力するか否か"},"kana":{"type":"string","title":"[読み取り専用]AquesTalk 風記法によるテキスト。音声合成用のクエリとしては無視される"}},"type":"object","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"title":"AudioQuery","description":"音声合成用のクエリ"},"Body_setting_post_setting_post":{"properties":{"cors_policy_mode":{"$ref":"#/components/schemas/CorsPolicyMode"},"allow_origin":{"type":"string","title":"Allow Origin"}},"type":"object","required":["cors_policy_mode"],"title":"Body_setting_post_setting_post"},"Body_sing_frame_volume_sing_frame_volume_post":{"properties":{"score":{"$ref":"#/components/schemas/Score"},"frame_audio_query":{"$ref":"#/components/schemas/FrameAudioQuery"}},"type":"object","required":["score","frame_audio_query"],"title":"Body_sing_frame_volume_sing_frame_volume_post"},"CorsPolicyMode":{"type":"string","enum":["all","localapps"],"title":"CorsPolicyMode","description":"CORSの許可モード"},"DownloadableLibraryInfo":{"properties":{"name":{"type":"string","title":"音声ライブラリの名前"},"uuid":{"type":"string","title":"音声ライブラリのUUID"},"version":{"type":"string","title":"音声ライブラリのバージョン"},"download_url":{"type":"string","title":"音声ライブラリのダウンロードURL"},"bytes":{"type":"integer","title":"音声ライブラリのバイト数"},"speakers":{"items":{"$ref":"#/components/schemas/LibrarySpeaker"},"type":"array","title":"音声ライブラリに含まれる話者のリスト"}},"type":"object","required":["name","uuid","version","download_url","bytes","speakers"],"title":"DownloadableLibraryInfo","description":"ダウンロード可能な音声ライブラリの情報"},"EngineManifest":{"properties":{"manifest_version":{"type":"string","title":"マニフェストのバージョン"},"name":{"type":"string","title":"エンジン名"},"brand_name":{"type":"string","title":"ブランド名"},"uuid":{"type":"string","title":"エンジンのUUID"},"url":{"type":"string","title":"エンジンのURL"},"icon":{"type":"string","title":"エンジンのアイコンをBASE64エンコードしたもの"},"default_sampling_rate":{"type":"integer","title":"デフォルトのサンプリング周波数"},"frame_rate":{"type":"number","title":"エンジンのフレームレート"},"terms_of_service":{"type":"string","title":"エンジンの利用規約"},"update_infos":{"items":{"$ref":"#/components/schemas/UpdateInfo"},"type":"array","title":"エンジンのアップデート情報"},"dependency_licenses":{"items":{"$ref":"#/components/schemas/LicenseInfo"},"type":"array","title":"依存関係のライセンス情報"},"supported_vvlib_manifest_version":{"type":"string","title":"エンジンが対応するvvlibのバージョン"},"supported_features":{"allOf":[{"$ref":"#/components/schemas/SupportedFeatures"}],"title":"エンジンが持つ機能"}},"type":"object","required":["manifest_version","name","brand_name","uuid","url","icon","default_sampling_rate","frame_rate","terms_of_service","update_infos","dependency_licenses","supported_features"],"title":"EngineManifest","description":"エンジン自体に関する情報"},"FrameAudioQuery":{"properties":{"f0":{"items":{"type":"number"},"type":"array","title":"フレームごとの基本周波数"},"volume":{"items":{"type":"number"},"type":"array","title":"フレームごとの音量"},"phonemes":{"items":{"$ref":"#/components/schemas/FramePhoneme"},"type":"array","title":"音素のリスト"},"volumeScale":{"type":"number","title":"全体の音量"},"outputSamplingRate":{"type":"integer","title":"音声データの出力サンプリングレート"},"outputStereo":{"type":"boolean","title":"音声データをステレオ出力するか否か"}},"type":"object","required":["f0","volume","phonemes","volumeScale","outputSamplingRate","outputStereo"],"title":"FrameAudioQuery","description":"フレームごとの音声合成用のクエリ"},"FramePhoneme":{"properties":{"phoneme":{"type":"string","title":"音素"},"frame_length":{"type":"integer","title":"音素のフレーム長"}},"type":"object","required":["phoneme","frame_length"],"title":"FramePhoneme","description":"音素の情報"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InstalledLibraryInfo":{"properties":{"name":{"type":"string","title":"音声ライブラリの名前"},"uuid":{"type":"string","title":"音声ライブラリのUUID"},"version":{"type":"string","title":"音声ライブラリのバージョン"},"download_url":{"type":"string","title":"音声ライブラリのダウンロードURL"},"bytes":{"type":"integer","title":"音声ライブラリのバイト数"},"speakers":{"items":{"$ref":"#/components/schemas/LibrarySpeaker"},"type":"array","title":"音声ライブラリに含まれる話者のリスト"},"uninstallable":{"type":"boolean","title":"アンインストール可能かどうか"}},"type":"object","required":["name","uuid","version","download_url","bytes","speakers","uninstallable"],"title":"InstalledLibraryInfo","description":"インストール済み音声ライブラリの情報"},"LibrarySpeaker":{"properties":{"speaker":{"allOf":[{"$ref":"#/components/schemas/Speaker"}],"title":"話者情報"},"speaker_info":{"allOf":[{"$ref":"#/components/schemas/SpeakerInfo"}],"title":"話者の追加情報"}},"type":"object","required":["speaker","speaker_info"],"title":"LibrarySpeaker","description":"音声ライブラリに含まれる話者の情報"},"LicenseInfo":{"properties":{"name":{"type":"string","title":"依存ライブラリ名"},"version":{"type":"string","title":"依存ライブラリのバージョン"},"license":{"type":"string","title":"依存ライブラリのライセンス名"},"text":{"type":"string","title":"依存ライブラリのライセンス本文"}},"type":"object","required":["name","text"],"title":"LicenseInfo","description":"依存ライブラリのライセンス情報"},"Mora":{"properties":{"text":{"type":"string","title":"文字"},"consonant":{"type":"string","title":"子音の音素"},"consonant_length":{"type":"number","title":"子音の音長"},"vowel":{"type":"string","title":"母音の音素"},"vowel_length":{"type":"number","title":"母音の音長"},"pitch":{"type":"number","title":"音高"}},"type":"object","required":["text","vowel","vowel_length","pitch"],"title":"Mora","description":"モーラ(子音+母音)ごとの情報"},"MorphableTargetInfo":{"properties":{"is_morphable":{"type":"boolean","title":"指定した話者に対してモーフィングの可否"}},"type":"object","required":["is_morphable"],"title":"MorphableTargetInfo"},"Note":{"properties":{"key":{"type":"integer","title":"音階"},"frame_length":{"type":"integer","title":"音符のフレーム長"},"lyric":{"type":"string","title":"音符の歌詞"}},"type":"object","required":["frame_length","lyric"],"title":"Note","description":"音符ごとの情報"},"ParseKanaBadRequest":{"properties":{"text":{"type":"string","title":"エラーメッセージ"},"error_name":{"type":"string","title":"エラー名","description":"|name|description|\n|---|---|\n| UNKNOWN_TEXT | 判別できない読み仮名があります: {text} |\n| ACCENT_TOP | 句頭にアクセントは置けません: {text} |\n| ACCENT_TWICE | 1つのアクセント句に二つ以上のアクセントは置けません: {text} |\n| ACCENT_NOTFOUND | アクセントを指定していないアクセント句があります: {text} |\n| EMPTY_PHRASE | {position}番目のアクセント句が空白です |\n| INTERROGATION_MARK_NOT_AT_END | アクセント句末以外に「?」は置けません: {text} |\n| INFINITE_LOOP | 処理時に無限ループになってしまいました...バグ報告をお願いします。 |"},"error_args":{"additionalProperties":{"type":"string"},"type":"object","title":"エラーを起こした箇所"}},"type":"object","required":["text","error_name","error_args"],"title":"ParseKanaBadRequest"},"Preset":{"properties":{"id":{"type":"integer","title":"プリセットID"},"name":{"type":"string","title":"プリセット名"},"speaker_uuid":{"type":"string","title":"話者のUUID"},"style_id":{"type":"integer","title":"スタイルID"},"speedScale":{"type":"number","title":"全体の話速"},"pitchScale":{"type":"number","title":"全体の音高"},"intonationScale":{"type":"number","title":"全体の抑揚"},"volumeScale":{"type":"number","title":"全体の音量"},"prePhonemeLength":{"type":"number","title":"音声の前の無音時間"},"postPhonemeLength":{"type":"number","title":"音声の後の無音時間"}},"type":"object","required":["id","name","speaker_uuid","style_id","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength"],"title":"Preset","description":"プリセット情報"},"Score":{"properties":{"notes":{"items":{"$ref":"#/components/schemas/Note"},"type":"array","title":"音符のリスト"}},"type":"object","required":["notes"],"title":"Score","description":"楽譜情報"},"Speaker":{"properties":{"supported_features":{"allOf":[{"$ref":"#/components/schemas/SpeakerSupportedFeatures"}],"title":"話者の対応機能"},"name":{"type":"string","title":"名前"},"speaker_uuid":{"type":"string","title":"話者のUUID"},"styles":{"items":{"$ref":"#/components/schemas/SpeakerStyle"},"type":"array","title":"スタイルの一覧"},"version":{"type":"string","title":"Version","default":"話者のバージョン"}},"type":"object","required":["name","speaker_uuid","styles"],"title":"Speaker","description":"話者情報"},"SpeakerInfo":{"properties":{"policy":{"type":"string","title":"policy.md"},"portrait":{"type":"string","title":"portrait.pngをbase64エンコードしたもの"},"style_infos":{"items":{"$ref":"#/components/schemas/StyleInfo"},"type":"array","title":"スタイルの追加情報"}},"type":"object","required":["policy","portrait","style_infos"],"title":"SpeakerInfo","description":"話者の追加情報"},"SpeakerStyle":{"properties":{"name":{"type":"string","title":"スタイル名"},"id":{"type":"integer","title":"スタイルID"},"type":{"type":"string","enum":["talk","singing_teacher","frame_decode","sing"],"title":"スタイルの種類。talk:音声合成クエリの作成と音声合成が可能。singing_teacher:歌唱音声合成用のクエリの作成が可能。frame_decode:歌唱音声合成が可能。sing:歌唱音声合成用のクエリの作成と歌唱音声合成が可能。","default":"talk"}},"type":"object","required":["name","id"],"title":"SpeakerStyle","description":"話者のスタイル情報"},"SpeakerSupportPermittedSynthesisMorphing":{"type":"string","enum":["ALL","SELF_ONLY","NOTHING"],"title":"SpeakerSupportPermittedSynthesisMorphing","description":"An enumeration."},"SpeakerSupportedFeatures":{"properties":{"permitted_synthesis_morphing":{"allOf":[{"$ref":"#/components/schemas/SpeakerSupportPermittedSynthesisMorphing"}],"title":"モーフィング機能への対応","default":"ALL"}},"type":"object","title":"SpeakerSupportedFeatures","description":"話者の対応機能の情報"},"StyleInfo":{"properties":{"id":{"type":"integer","title":"スタイルID"},"icon":{"type":"string","title":"当該スタイルのアイコンをbase64エンコードしたもの"},"portrait":{"type":"string","title":"当該スタイルのportrait.pngをbase64エンコードしたもの"},"voice_samples":{"items":{"type":"string"},"type":"array","title":"voice_sampleのwavファイルをbase64エンコードしたもの"}},"type":"object","required":["id","icon","voice_samples"],"title":"StyleInfo","description":"スタイルの追加情報"},"SupportedDevicesInfo":{"properties":{"cpu":{"type":"boolean","title":"CPUに対応しているか"},"cuda":{"type":"boolean","title":"CUDA(Nvidia GPU)に対応しているか"},"dml":{"type":"boolean","title":"DirectML(Nvidia GPU/Radeon GPU等)に対応しているか"}},"type":"object","required":["cpu","cuda","dml"],"title":"SupportedDevicesInfo","description":"対応しているデバイスの情報"},"SupportedFeatures":{"properties":{"adjust_mora_pitch":{"type":"boolean","title":"モーラごとの音高の調整"},"adjust_phoneme_length":{"type":"boolean","title":"音素ごとの長さの調整"},"adjust_speed_scale":{"type":"boolean","title":"全体の話速の調整"},"adjust_pitch_scale":{"type":"boolean","title":"全体の音高の調整"},"adjust_intonation_scale":{"type":"boolean","title":"全体の抑揚の調整"},"adjust_volume_scale":{"type":"boolean","title":"全体の音量の調整"},"interrogative_upspeak":{"type":"boolean","title":"疑問文の自動調整"},"synthesis_morphing":{"type":"boolean","title":"2種類のスタイルでモーフィングした音声を合成"},"sing":{"type":"boolean","title":"歌唱音声合成"},"manage_library":{"type":"boolean","title":"音声ライブラリのインストール・アンインストール"}},"type":"object","required":["adjust_mora_pitch","adjust_phoneme_length","adjust_speed_scale","adjust_pitch_scale","adjust_intonation_scale","adjust_volume_scale","interrogative_upspeak","synthesis_morphing"],"title":"SupportedFeatures","description":"エンジンが持つ機能の一覧"},"UpdateInfo":{"properties":{"version":{"type":"string","title":"エンジンのバージョン名"},"descriptions":{"items":{"type":"string"},"type":"array","title":"アップデートの詳細についての説明"},"contributors":{"items":{"type":"string"},"type":"array","title":"貢献者名"}},"type":"object","required":["version","descriptions"],"title":"UpdateInfo","description":"エンジンのアップデート情報"},"UserDictWord":{"properties":{"surface":{"type":"string","title":"表層形"},"priority":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"優先度"},"context_id":{"type":"integer","title":"文脈ID","default":1348},"part_of_speech":{"type":"string","title":"品詞"},"part_of_speech_detail_1":{"type":"string","title":"品詞細分類1"},"part_of_speech_detail_2":{"type":"string","title":"品詞細分類2"},"part_of_speech_detail_3":{"type":"string","title":"品詞細分類3"},"inflectional_type":{"type":"string","title":"活用型"},"inflectional_form":{"type":"string","title":"活用形"},"stem":{"type":"string","title":"原形"},"yomi":{"type":"string","title":"読み"},"pronunciation":{"type":"string","title":"発音"},"accent_type":{"type":"integer","title":"アクセント型"},"mora_count":{"type":"integer","title":"モーラ数"},"accent_associative_rule":{"type":"string","title":"アクセント結合規則"}},"type":"object","required":["surface","priority","part_of_speech","part_of_speech_detail_1","part_of_speech_detail_2","part_of_speech_detail_3","inflectional_type","inflectional_form","stem","yomi","pronunciation","accent_type","accent_associative_rule"],"title":"UserDictWord","description":"辞書のコンパイルに使われる情報"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WordTypes":{"type":"string","enum":["PROPER_NOUN","COMMON_NOUN","VERB","ADJECTIVE","SUFFIX"],"title":"WordTypes","description":"fastapiでword_type引数を検証する時に使用するクラス"},"VvlibManifest":{"title":"VvlibManifest","description":"vvlib(VOICEVOX Library)に関する情報","type":"object","properties":{"manifest_version":{"title":"マニフェストバージョン","type":"string"},"name":{"title":"音声ライブラリ名","type":"string"},"version":{"title":"音声ライブラリバージョン","type":"string"},"uuid":{"title":"音声ライブラリのUUID","type":"string"},"brand_name":{"title":"エンジンのブランド名","type":"string"},"engine_name":{"title":"エンジン名","type":"string"},"engine_uuid":{"title":"エンジンのUUID","type":"string"}},"required":["manifest_version","name","version","uuid","brand_name","engine_name","engine_uuid"]},"BaseLibraryInfo":{"title":"BaseLibraryInfo","description":"音声ライブラリの情報","type":"object","properties":{"name":{"title":"音声ライブラリの名前","type":"string"},"uuid":{"title":"音声ライブラリのUUID","type":"string"},"version":{"title":"音声ライブラリのバージョン","type":"string"},"download_url":{"title":"音声ライブラリのダウンロードURL","type":"string"},"bytes":{"title":"音声ライブラリのバイト数","type":"integer"},"speakers":{"title":"音声ライブラリに含まれる話者のリスト","type":"array","items":{"$ref":"#/components/schemas/LibrarySpeaker"}}},"required":["name","uuid","version","download_url","bytes","speakers"]}}}} \ No newline at end of file diff --git a/src/openapi/.openapi-generator/FILES b/src/openapi/.openapi-generator/FILES index 074f138308..92187a58f5 100644 --- a/src/openapi/.openapi-generator/FILES +++ b/src/openapi/.openapi-generator/FILES @@ -4,6 +4,7 @@ index.ts models/AccentPhrase.ts models/AudioQuery.ts models/BaseLibraryInfo.ts +models/BodySingFrameVolumeSingFrameVolumePost.ts models/CorsPolicyMode.ts models/DownloadableLibraryInfo.ts models/EngineManifest.ts diff --git a/src/openapi/apis/DefaultApi.ts b/src/openapi/apis/DefaultApi.ts index a06ab5f5b6..0295755437 100644 --- a/src/openapi/apis/DefaultApi.ts +++ b/src/openapi/apis/DefaultApi.ts @@ -17,6 +17,7 @@ import * as runtime from '../runtime'; import type { AccentPhrase, AudioQuery, + BodySingFrameVolumeSingFrameVolumePost, CorsPolicyMode, DownloadableLibraryInfo, EngineManifest, @@ -38,6 +39,8 @@ import { AccentPhraseToJSON, AudioQueryFromJSON, AudioQueryToJSON, + BodySingFrameVolumeSingFrameVolumePostFromJSON, + BodySingFrameVolumeSingFrameVolumePostToJSON, CorsPolicyModeFromJSON, CorsPolicyModeToJSON, DownloadableLibraryInfoFromJSON, @@ -194,6 +197,12 @@ export interface SingFrameAudioQuerySingFrameAudioQueryPostRequest { coreVersion?: string; } +export interface SingFrameVolumeSingFrameVolumePostRequest { + speaker: number; + bodySingFrameVolumeSingFrameVolumePost: BodySingFrameVolumeSingFrameVolumePost; + coreVersion?: string; +} + export interface SingerInfoSingerInfoGetRequest { speakerUuid: string; coreVersion?: string; @@ -270,7 +279,7 @@ export interface DefaultApiInterface { accentPhrasesAccentPhrasesPost(requestParameters: AccentPhrasesAccentPhrasesPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * 新しいプリセットを追加します Parameters ------- preset: Preset 新しいプリセット。 プリセットIDが既存のものと重複している場合は、新規のプリセットIDが採番されます。 Returns ------- id: int 追加したプリセットのプリセットID + * 新しいプリセットを追加します * @summary Add Preset * @param {Preset} preset * @param {*} [options] Override http request option. @@ -280,19 +289,19 @@ export interface DefaultApiInterface { addPresetAddPresetPostRaw(requestParameters: AddPresetAddPresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * 新しいプリセットを追加します Parameters ------- preset: Preset 新しいプリセット。 プリセットIDが既存のものと重複している場合は、新規のプリセットIDが採番されます。 Returns ------- id: int 追加したプリセットのプリセットID + * 新しいプリセットを追加します * Add Preset */ addPresetAddPresetPost(requestParameters: AddPresetAddPresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * ユーザー辞書に言葉を追加します。 Parameters ---------- surface : str 言葉の表層形 pronunciation: str 言葉の発音(カタカナ) accent_type: int アクセント型(音が下がる場所を指す) word_type: WordTypes, optional PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか priority: int, optional 単語の優先度(0から10までの整数) 数字が大きいほど優先度が高くなる 1から9までの値を指定することを推奨 + * ユーザー辞書に言葉を追加します。 * @summary Add User Dict Word - * @param {string} surface - * @param {string} pronunciation - * @param {number} accentType - * @param {WordTypes} [wordType] - * @param {number} [priority] + * @param {string} surface 言葉の表層形 + * @param {string} pronunciation 言葉の発音(カタカナ) + * @param {number} accentType アクセント型(音が下がる場所を指す) + * @param {WordTypes} [wordType] PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか + * @param {number} [priority] 単語の優先度(0から10までの整数)。数字が大きいほど優先度が高くなる。1から9までの値を指定することを推奨 * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApiInterface @@ -300,7 +309,7 @@ export interface DefaultApiInterface { addUserDictWordUserDictWordPostRaw(requestParameters: AddUserDictWordUserDictWordPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * ユーザー辞書に言葉を追加します。 Parameters ---------- surface : str 言葉の表層形 pronunciation: str 言葉の発音(カタカナ) accent_type: int アクセント型(音が下がる場所を指す) word_type: WordTypes, optional PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか priority: int, optional 単語の優先度(0から10までの整数) 数字が大きいほど優先度が高くなる 1から9までの値を指定することを推奨 + * ユーザー辞書に言葉を追加します。 * Add User Dict Word */ addUserDictWordUserDictWordPost(requestParameters: AddUserDictWordUserDictWordPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; @@ -389,9 +398,9 @@ export interface DefaultApiInterface { coreVersionsCoreVersionsGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * 既存のプリセットを削除します Parameters ------- id: int 削除するプリセットのプリセットID + * 既存のプリセットを削除します * @summary Delete Preset - * @param {number} id + * @param {number} id 削除するプリセットのプリセットID * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApiInterface @@ -399,15 +408,15 @@ export interface DefaultApiInterface { deletePresetDeletePresetPostRaw(requestParameters: DeletePresetDeletePresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * 既存のプリセットを削除します Parameters ------- id: int 削除するプリセットのプリセットID + * 既存のプリセットを削除します * Delete Preset */ deletePresetDeletePresetPost(requestParameters: DeletePresetDeletePresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * ユーザー辞書に登録されている言葉を削除します。 Parameters ---------- word_uuid: str 削除する言葉のUUID + * ユーザー辞書に登録されている言葉を削除します。 * @summary Delete User Dict Word - * @param {string} wordUuid + * @param {string} wordUuid 削除する言葉のUUID * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApiInterface @@ -415,13 +424,13 @@ export interface DefaultApiInterface { deleteUserDictWordUserDictWordWordUuidDeleteRaw(requestParameters: DeleteUserDictWordUserDictWordWordUuidDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * ユーザー辞書に登録されている言葉を削除します。 Parameters ---------- word_uuid: str 削除する言葉のUUID + * ユーザー辞書に登録されている言葉を削除します。 * Delete User Dict Word */ deleteUserDictWordUserDictWordWordUuidDelete(requestParameters: DeleteUserDictWordUserDictWordWordUuidDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * ダウンロード可能な音声ライブラリの情報を返します。 Returns ------- ret_data: list[DownloadableLibrary] + * ダウンロード可能な音声ライブラリの情報を返します。 * @summary Downloadable Libraries * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -430,7 +439,7 @@ export interface DefaultApiInterface { downloadableLibrariesDownloadableLibrariesGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; /** - * ダウンロード可能な音声ライブラリの情報を返します。 Returns ------- ret_data: list[DownloadableLibrary] + * ダウンロード可能な音声ライブラリの情報を返します。 * Downloadable Libraries */ downloadableLibrariesDownloadableLibrariesGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; @@ -468,7 +477,7 @@ export interface DefaultApiInterface { frameSynthesisFrameSynthesisPost(requestParameters: FrameSynthesisFrameSynthesisPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * エンジンが保持しているプリセットの設定を返します Returns ------- presets: list[Preset] プリセットのリスト + * エンジンが保持しているプリセットの設定を返します * @summary Get Presets * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -477,13 +486,13 @@ export interface DefaultApiInterface { getPresetsPresetsGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; /** - * エンジンが保持しているプリセットの設定を返します Returns ------- presets: list[Preset] プリセットのリスト + * エンジンが保持しているプリセットの設定を返します * Get Presets */ getPresetsPresetsGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * ユーザー辞書に登録されている単語の一覧を返します。 単語の表層形(surface)は正規化済みの物を返します。 Returns ------- dict[str, UserDictWord] 単語のUUIDとその詳細 + * ユーザー辞書に登録されている単語の一覧を返します。 単語の表層形(surface)は正規化済みの物を返します。 * @summary Get User Dict Words * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -492,15 +501,15 @@ export interface DefaultApiInterface { getUserDictWordsUserDictGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * ユーザー辞書に登録されている単語の一覧を返します。 単語の表層形(surface)は正規化済みの物を返します。 Returns ------- dict[str, UserDictWord] 単語のUUIDとその詳細 + * ユーザー辞書に登録されている単語の一覧を返します。 単語の表層形(surface)は正規化済みの物を返します。 * Get User Dict Words */ getUserDictWordsUserDictGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: UserDictWord; }>; /** - * 他のユーザー辞書をインポートします。 Parameters ---------- import_dict_data: dict[str, UserDictWord] インポートするユーザー辞書のデータ override: bool 重複したエントリがあった場合、上書きするかどうか + * 他のユーザー辞書をインポートします。 * @summary Import User Dict Words - * @param {boolean} override + * @param {boolean} override 重複したエントリがあった場合、上書きするかどうか * @param {{ [key: string]: UserDictWord; }} requestBody * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -509,7 +518,7 @@ export interface DefaultApiInterface { importUserDictWordsImportUserDictPostRaw(requestParameters: ImportUserDictWordsImportUserDictPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * 他のユーザー辞書をインポートします。 Parameters ---------- import_dict_data: dict[str, UserDictWord] インポートするユーザー辞書のデータ override: bool 重複したエントリがあった場合、上書きするかどうか + * 他のユーザー辞書をインポートします。 * Import User Dict Words */ importUserDictWordsImportUserDictPost(requestParameters: ImportUserDictWordsImportUserDictPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; @@ -533,9 +542,9 @@ export interface DefaultApiInterface { initializeSpeakerInitializeSpeakerPost(requestParameters: InitializeSpeakerInitializeSpeakerPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * 音声ライブラリをインストールします。 音声ライブラリのZIPファイルをリクエストボディとして送信してください。 Parameters ---------- library_uuid: str 音声ライブラリのID + * 音声ライブラリをインストールします。 音声ライブラリのZIPファイルをリクエストボディとして送信してください。 * @summary Install Library - * @param {string} libraryUuid + * @param {string} libraryUuid 音声ライブラリのID * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApiInterface @@ -543,13 +552,13 @@ export interface DefaultApiInterface { installLibraryInstallLibraryLibraryUuidPostRaw(requestParameters: InstallLibraryInstallLibraryLibraryUuidPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * 音声ライブラリをインストールします。 音声ライブラリのZIPファイルをリクエストボディとして送信してください。 Parameters ---------- library_uuid: str 音声ライブラリのID + * 音声ライブラリをインストールします。 音声ライブラリのZIPファイルをリクエストボディとして送信してください。 * Install Library */ installLibraryInstallLibraryLibraryUuidPost(requestParameters: InstallLibraryInstallLibraryLibraryUuidPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * インストールした音声ライブラリの情報を返します。 Returns ------- ret_data: dict[str, InstalledLibrary] + * インストールした音声ライブラリの情報を返します。 * @summary Installed Libraries * @param {*} [options] Override http request option. * @throws {RequiredError} @@ -558,7 +567,7 @@ export interface DefaultApiInterface { installedLibrariesInstalledLibrariesGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * インストールした音声ライブラリの情報を返します。 Returns ------- ret_data: dict[str, InstalledLibrary] + * インストールした音声ライブラリの情報を返します。 * Installed Libraries */ installedLibrariesInstalledLibrariesGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: InstalledLibraryInfo; }>; @@ -632,7 +641,7 @@ export interface DefaultApiInterface { moraPitchMoraPitchPost(requestParameters: MoraPitchMoraPitchPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * 指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 返り値の話者はstring型なので注意。 + * 指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 返り値のスタイルIDはstring型なので注意。 * @summary 指定したスタイルに対してエンジン内の話者がモーフィングが可能か判定する * @param {Array} requestBody * @param {string} [coreVersion] @@ -643,7 +652,7 @@ export interface DefaultApiInterface { morphableTargetsMorphableTargetsPostRaw(requestParameters: MorphableTargetsMorphableTargetsPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; /** - * 指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 返り値の話者はstring型なので注意。 + * 指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 返り値のスタイルIDはstring型なので注意。 * 指定したスタイルに対してエンジン内の話者がモーフィングが可能か判定する */ morphableTargetsMorphableTargetsPost(requestParameters: MorphableTargetsMorphableTargetsPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; @@ -666,14 +675,14 @@ export interface DefaultApiInterface { multiSynthesisMultiSynthesisPost(requestParameters: MultiSynthesisMultiSynthesisPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * ユーザー辞書に登録されている言葉を更新します。 Parameters ---------- surface : str 言葉の表層形 pronunciation: str 言葉の発音(カタカナ) accent_type: int アクセント型(音が下がる場所を指す) word_uuid: str 更新する言葉のUUID word_type: WordTypes, optional PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか priority: int, optional 単語の優先度(0から10までの整数) 数字が大きいほど優先度が高くなる 1から9までの値を指定することを推奨 + * ユーザー辞書に登録されている言葉を更新します。 * @summary Rewrite User Dict Word - * @param {string} wordUuid - * @param {string} surface - * @param {string} pronunciation - * @param {number} accentType - * @param {WordTypes} [wordType] - * @param {number} [priority] + * @param {string} wordUuid 更新する言葉のUUID + * @param {string} surface 言葉の表層形 + * @param {string} pronunciation 言葉の発音(カタカナ) + * @param {number} accentType アクセント型(音が下がる場所を指す) + * @param {WordTypes} [wordType] PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか + * @param {number} [priority] 単語の優先度(0から10までの整数)。数字が大きいほど優先度が高くなる。1から9までの値を指定することを推奨。 * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApiInterface @@ -681,7 +690,7 @@ export interface DefaultApiInterface { rewriteUserDictWordUserDictWordWordUuidPutRaw(requestParameters: RewriteUserDictWordUserDictWordWordUuidPutRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * ユーザー辞書に登録されている言葉を更新します。 Parameters ---------- surface : str 言葉の表層形 pronunciation: str 言葉の発音(カタカナ) accent_type: int アクセント型(音が下がる場所を指す) word_uuid: str 更新する言葉のUUID word_type: WordTypes, optional PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか priority: int, optional 単語の優先度(0から10までの整数) 数字が大きいほど優先度が高くなる 1から9までの値を指定することを推奨 + * ユーザー辞書に登録されている言葉を更新します。 * Rewrite User Dict Word */ rewriteUserDictWordUserDictWordWordUuidPut(requestParameters: RewriteUserDictWordUserDictWordWordUuidPutRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; @@ -736,6 +745,23 @@ export interface DefaultApiInterface { */ singFrameAudioQuerySingFrameAudioQueryPost(requestParameters: SingFrameAudioQuerySingFrameAudioQueryPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; + /** + * + * @summary スコア・歌唱音声合成用のクエリからフレームごとの音量を得る + * @param {number} speaker + * @param {BodySingFrameVolumeSingFrameVolumePost} bodySingFrameVolumeSingFrameVolumePost + * @param {string} [coreVersion] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApiInterface + */ + singFrameVolumeSingFrameVolumePostRaw(requestParameters: SingFrameVolumeSingFrameVolumePostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>>; + + /** + * スコア・歌唱音声合成用のクエリからフレームごとの音量を得る + */ + singFrameVolumeSingFrameVolumePost(requestParameters: SingFrameVolumeSingFrameVolumePostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; + /** * 指定されたspeaker_uuidに関する情報をjson形式で返します。 画像や音声はbase64エンコードされたものが返されます。 * @summary Singer Info @@ -854,9 +880,9 @@ export interface DefaultApiInterface { synthesisSynthesisPost(requestParameters: SynthesisSynthesisPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * 音声ライブラリをアンインストールします。 Parameters ---------- library_uuid: str 音声ライブラリのID + * 音声ライブラリをアンインストールします。 * @summary Uninstall Library - * @param {string} libraryUuid + * @param {string} libraryUuid 音声ライブラリのID * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApiInterface @@ -864,13 +890,13 @@ export interface DefaultApiInterface { uninstallLibraryUninstallLibraryLibraryUuidPostRaw(requestParameters: UninstallLibraryUninstallLibraryLibraryUuidPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * 音声ライブラリをアンインストールします。 Parameters ---------- library_uuid: str 音声ライブラリのID + * 音声ライブラリをアンインストールします。 * Uninstall Library */ uninstallLibraryUninstallLibraryLibraryUuidPost(requestParameters: UninstallLibraryUninstallLibraryLibraryUuidPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * 既存のプリセットを更新します Parameters ------- preset: Preset 更新するプリセット。 プリセットIDが更新対象と一致している必要があります。 Returns ------- id: int 更新したプリセットのプリセットID + * 既存のプリセットを更新します * @summary Update Preset * @param {Preset} preset * @param {*} [options] Override http request option. @@ -880,15 +906,15 @@ export interface DefaultApiInterface { updatePresetUpdatePresetPostRaw(requestParameters: UpdatePresetUpdatePresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * 既存のプリセットを更新します Parameters ------- preset: Preset 更新するプリセット。 プリセットIDが更新対象と一致している必要があります。 Returns ------- id: int 更新したプリセットのプリセットID + * 既存のプリセットを更新します * Update Preset */ updatePresetUpdatePresetPost(requestParameters: UpdatePresetUpdatePresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; /** - * テキストがAquesTalk 風記法に従っているかどうかを判定します。 従っていない場合はエラーが返ります。 Parameters ---------- text: str 判定する対象の文字列 + * テキストがAquesTalk 風記法に従っているかどうかを判定します。 従っていない場合はエラーが返ります。 * @summary テキストがAquesTalk 風記法に従っているか判定する - * @param {string} text + * @param {string} text 判定する対象の文字列 * @param {*} [options] Override http request option. * @throws {RequiredError} * @memberof DefaultApiInterface @@ -896,7 +922,7 @@ export interface DefaultApiInterface { validateKanaValidateKanaPostRaw(requestParameters: ValidateKanaValidateKanaPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>; /** - * テキストがAquesTalk 風記法に従っているかどうかを判定します。 従っていない場合はエラーが返ります。 Parameters ---------- text: str 判定する対象の文字列 + * テキストがAquesTalk 風記法に従っているかどうかを判定します。 従っていない場合はエラーが返ります。 * テキストがAquesTalk 風記法に従っているか判定する */ validateKanaValidateKanaPost(requestParameters: ValidateKanaValidateKanaPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise; @@ -975,7 +1001,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 新しいプリセットを追加します Parameters ------- preset: Preset 新しいプリセット。 プリセットIDが既存のものと重複している場合は、新規のプリセットIDが採番されます。 Returns ------- id: int 追加したプリセットのプリセットID + * 新しいプリセットを追加します * Add Preset */ async addPresetAddPresetPostRaw(requestParameters: AddPresetAddPresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1005,7 +1031,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 新しいプリセットを追加します Parameters ------- preset: Preset 新しいプリセット。 プリセットIDが既存のものと重複している場合は、新規のプリセットIDが採番されます。 Returns ------- id: int 追加したプリセットのプリセットID + * 新しいプリセットを追加します * Add Preset */ async addPresetAddPresetPost(requestParameters: AddPresetAddPresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { @@ -1014,7 +1040,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * ユーザー辞書に言葉を追加します。 Parameters ---------- surface : str 言葉の表層形 pronunciation: str 言葉の発音(カタカナ) accent_type: int アクセント型(音が下がる場所を指す) word_type: WordTypes, optional PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか priority: int, optional 単語の優先度(0から10までの整数) 数字が大きいほど優先度が高くなる 1から9までの値を指定することを推奨 + * ユーザー辞書に言葉を追加します。 * Add User Dict Word */ async addUserDictWordUserDictWordPostRaw(requestParameters: AddUserDictWordUserDictWordPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1069,7 +1095,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * ユーザー辞書に言葉を追加します。 Parameters ---------- surface : str 言葉の表層形 pronunciation: str 言葉の発音(カタカナ) accent_type: int アクセント型(音が下がる場所を指す) word_type: WordTypes, optional PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか priority: int, optional 単語の優先度(0から10までの整数) 数字が大きいほど優先度が高くなる 1から9までの値を指定することを推奨 + * ユーザー辞書に言葉を追加します。 * Add User Dict Word */ async addUserDictWordUserDictWordPost(requestParameters: AddUserDictWordUserDictWordPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { @@ -1280,7 +1306,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 既存のプリセットを削除します Parameters ------- id: int 削除するプリセットのプリセットID + * 既存のプリセットを削除します * Delete Preset */ async deletePresetDeletePresetPostRaw(requestParameters: DeletePresetDeletePresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1307,7 +1333,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 既存のプリセットを削除します Parameters ------- id: int 削除するプリセットのプリセットID + * 既存のプリセットを削除します * Delete Preset */ async deletePresetDeletePresetPost(requestParameters: DeletePresetDeletePresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { @@ -1315,7 +1341,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * ユーザー辞書に登録されている言葉を削除します。 Parameters ---------- word_uuid: str 削除する言葉のUUID + * ユーザー辞書に登録されている言葉を削除します。 * Delete User Dict Word */ async deleteUserDictWordUserDictWordWordUuidDeleteRaw(requestParameters: DeleteUserDictWordUserDictWordWordUuidDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1338,7 +1364,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * ユーザー辞書に登録されている言葉を削除します。 Parameters ---------- word_uuid: str 削除する言葉のUUID + * ユーザー辞書に登録されている言葉を削除します。 * Delete User Dict Word */ async deleteUserDictWordUserDictWordWordUuidDelete(requestParameters: DeleteUserDictWordUserDictWordWordUuidDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { @@ -1346,7 +1372,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * ダウンロード可能な音声ライブラリの情報を返します。 Returns ------- ret_data: list[DownloadableLibrary] + * ダウンロード可能な音声ライブラリの情報を返します。 * Downloadable Libraries */ async downloadableLibrariesDownloadableLibrariesGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { @@ -1365,7 +1391,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * ダウンロード可能な音声ライブラリの情報を返します。 Returns ------- ret_data: list[DownloadableLibrary] + * ダウンロード可能な音声ライブラリの情報を返します。 * Downloadable Libraries */ async downloadableLibrariesDownloadableLibrariesGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1447,7 +1473,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * エンジンが保持しているプリセットの設定を返します Returns ------- presets: list[Preset] プリセットのリスト + * エンジンが保持しているプリセットの設定を返します * Get Presets */ async getPresetsPresetsGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { @@ -1466,7 +1492,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * エンジンが保持しているプリセットの設定を返します Returns ------- presets: list[Preset] プリセットのリスト + * エンジンが保持しているプリセットの設定を返します * Get Presets */ async getPresetsPresetsGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1475,7 +1501,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * ユーザー辞書に登録されている単語の一覧を返します。 単語の表層形(surface)は正規化済みの物を返します。 Returns ------- dict[str, UserDictWord] 単語のUUIDとその詳細 + * ユーザー辞書に登録されている単語の一覧を返します。 単語の表層形(surface)は正規化済みの物を返します。 * Get User Dict Words */ async getUserDictWordsUserDictGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1494,7 +1520,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * ユーザー辞書に登録されている単語の一覧を返します。 単語の表層形(surface)は正規化済みの物を返します。 Returns ------- dict[str, UserDictWord] 単語のUUIDとその詳細 + * ユーザー辞書に登録されている単語の一覧を返します。 単語の表層形(surface)は正規化済みの物を返します。 * Get User Dict Words */ async getUserDictWordsUserDictGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: UserDictWord; }> { @@ -1503,7 +1529,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 他のユーザー辞書をインポートします。 Parameters ---------- import_dict_data: dict[str, UserDictWord] インポートするユーザー辞書のデータ override: bool 重複したエントリがあった場合、上書きするかどうか + * 他のユーザー辞書をインポートします。 * Import User Dict Words */ async importUserDictWordsImportUserDictPostRaw(requestParameters: ImportUserDictWordsImportUserDictPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1537,7 +1563,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 他のユーザー辞書をインポートします。 Parameters ---------- import_dict_data: dict[str, UserDictWord] インポートするユーザー辞書のデータ override: bool 重複したエントリがあった場合、上書きするかどうか + * 他のユーザー辞書をインポートします。 * Import User Dict Words */ async importUserDictWordsImportUserDictPost(requestParameters: ImportUserDictWordsImportUserDictPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { @@ -1588,7 +1614,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 音声ライブラリをインストールします。 音声ライブラリのZIPファイルをリクエストボディとして送信してください。 Parameters ---------- library_uuid: str 音声ライブラリのID + * 音声ライブラリをインストールします。 音声ライブラリのZIPファイルをリクエストボディとして送信してください。 * Install Library */ async installLibraryInstallLibraryLibraryUuidPostRaw(requestParameters: InstallLibraryInstallLibraryLibraryUuidPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1611,7 +1637,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 音声ライブラリをインストールします。 音声ライブラリのZIPファイルをリクエストボディとして送信してください。 Parameters ---------- library_uuid: str 音声ライブラリのID + * 音声ライブラリをインストールします。 音声ライブラリのZIPファイルをリクエストボディとして送信してください。 * Install Library */ async installLibraryInstallLibraryLibraryUuidPost(requestParameters: InstallLibraryInstallLibraryLibraryUuidPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { @@ -1619,7 +1645,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * インストールした音声ライブラリの情報を返します。 Returns ------- ret_data: dict[str, InstalledLibrary] + * インストールした音声ライブラリの情報を返します。 * Installed Libraries */ async installedLibrariesInstalledLibrariesGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1638,7 +1664,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * インストールした音声ライブラリの情報を返します。 Returns ------- ret_data: dict[str, InstalledLibrary] + * インストールした音声ライブラリの情報を返します。 * Installed Libraries */ async installedLibrariesInstalledLibrariesGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: InstalledLibraryInfo; }> { @@ -1826,7 +1852,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 返り値の話者はstring型なので注意。 + * 指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 返り値のスタイルIDはstring型なので注意。 * 指定したスタイルに対してエンジン内の話者がモーフィングが可能か判定する */ async morphableTargetsMorphableTargetsPostRaw(requestParameters: MorphableTargetsMorphableTargetsPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { @@ -1856,7 +1882,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 返り値の話者はstring型なので注意。 + * 指定されたベーススタイルに対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 返り値のスタイルIDはstring型なので注意。 * 指定したスタイルに対してエンジン内の話者がモーフィングが可能か判定する */ async morphableTargetsMorphableTargetsPost(requestParameters: MorphableTargetsMorphableTargetsPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1910,7 +1936,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * ユーザー辞書に登録されている言葉を更新します。 Parameters ---------- surface : str 言葉の表層形 pronunciation: str 言葉の発音(カタカナ) accent_type: int アクセント型(音が下がる場所を指す) word_uuid: str 更新する言葉のUUID word_type: WordTypes, optional PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか priority: int, optional 単語の優先度(0から10までの整数) 数字が大きいほど優先度が高くなる 1から9までの値を指定することを推奨 + * ユーザー辞書に登録されている言葉を更新します。 * Rewrite User Dict Word */ async rewriteUserDictWordUserDictWordWordUuidPutRaw(requestParameters: RewriteUserDictWordUserDictWordWordUuidPutRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -1965,7 +1991,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * ユーザー辞書に登録されている言葉を更新します。 Parameters ---------- surface : str 言葉の表層形 pronunciation: str 言葉の発音(カタカナ) accent_type: int アクセント型(音が下がる場所を指す) word_uuid: str 更新する言葉のUUID word_type: WordTypes, optional PROPER_NOUN(固有名詞)、COMMON_NOUN(普通名詞)、VERB(動詞)、ADJECTIVE(形容詞)、SUFFIX(語尾)のいずれか priority: int, optional 単語の優先度(0から10までの整数) 数字が大きいほど優先度が高くなる 1から9までの値を指定することを推奨 + * ユーザー辞書に登録されている言葉を更新します。 * Rewrite User Dict Word */ async rewriteUserDictWordUserDictWordWordUuidPut(requestParameters: RewriteUserDictWordUserDictWordWordUuidPutRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { @@ -2100,6 +2126,51 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { return await response.value(); } + /** + * スコア・歌唱音声合成用のクエリからフレームごとの音量を得る + */ + async singFrameVolumeSingFrameVolumePostRaw(requestParameters: SingFrameVolumeSingFrameVolumePostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + if (requestParameters.speaker === null || requestParameters.speaker === undefined) { + throw new runtime.RequiredError('speaker','Required parameter requestParameters.speaker was null or undefined when calling singFrameVolumeSingFrameVolumePost.'); + } + + if (requestParameters.bodySingFrameVolumeSingFrameVolumePost === null || requestParameters.bodySingFrameVolumeSingFrameVolumePost === undefined) { + throw new runtime.RequiredError('bodySingFrameVolumeSingFrameVolumePost','Required parameter requestParameters.bodySingFrameVolumeSingFrameVolumePost was null or undefined when calling singFrameVolumeSingFrameVolumePost.'); + } + + const queryParameters: any = {}; + + if (requestParameters.speaker !== undefined) { + queryParameters['speaker'] = requestParameters.speaker; + } + + if (requestParameters.coreVersion !== undefined) { + queryParameters['core_version'] = requestParameters.coreVersion; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + headerParameters['Content-Type'] = 'application/json'; + + const response = await this.request({ + path: `/sing_frame_volume`, + method: 'POST', + headers: headerParameters, + query: queryParameters, + body: BodySingFrameVolumeSingFrameVolumePostToJSON(requestParameters.bodySingFrameVolumeSingFrameVolumePost), + }, initOverrides); + + return new runtime.JSONApiResponse(response); + } + + /** + * スコア・歌唱音声合成用のクエリからフレームごとの音量を得る + */ + async singFrameVolumeSingFrameVolumePost(requestParameters: SingFrameVolumeSingFrameVolumePostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { + const response = await this.singFrameVolumeSingFrameVolumePostRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * 指定されたspeaker_uuidに関する情報をjson形式で返します。 画像や音声はbase64エンコードされたものが返されます。 * Singer Info @@ -2383,7 +2454,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 音声ライブラリをアンインストールします。 Parameters ---------- library_uuid: str 音声ライブラリのID + * 音声ライブラリをアンインストールします。 * Uninstall Library */ async uninstallLibraryUninstallLibraryLibraryUuidPostRaw(requestParameters: UninstallLibraryUninstallLibraryLibraryUuidPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -2406,7 +2477,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 音声ライブラリをアンインストールします。 Parameters ---------- library_uuid: str 音声ライブラリのID + * 音声ライブラリをアンインストールします。 * Uninstall Library */ async uninstallLibraryUninstallLibraryLibraryUuidPost(requestParameters: UninstallLibraryUninstallLibraryLibraryUuidPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { @@ -2414,7 +2485,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 既存のプリセットを更新します Parameters ------- preset: Preset 更新するプリセット。 プリセットIDが更新対象と一致している必要があります。 Returns ------- id: int 更新したプリセットのプリセットID + * 既存のプリセットを更新します * Update Preset */ async updatePresetUpdatePresetPostRaw(requestParameters: UpdatePresetUpdatePresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -2444,7 +2515,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * 既存のプリセットを更新します Parameters ------- preset: Preset 更新するプリセット。 プリセットIDが更新対象と一致している必要があります。 Returns ------- id: int 更新したプリセットのプリセットID + * 既存のプリセットを更新します * Update Preset */ async updatePresetUpdatePresetPost(requestParameters: UpdatePresetUpdatePresetPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { @@ -2453,7 +2524,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * テキストがAquesTalk 風記法に従っているかどうかを判定します。 従っていない場合はエラーが返ります。 Parameters ---------- text: str 判定する対象の文字列 + * テキストがAquesTalk 風記法に従っているかどうかを判定します。 従っていない場合はエラーが返ります。 * テキストがAquesTalk 風記法に従っているか判定する */ async validateKanaValidateKanaPostRaw(requestParameters: ValidateKanaValidateKanaPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { @@ -2484,7 +2555,7 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { } /** - * テキストがAquesTalk 風記法に従っているかどうかを判定します。 従っていない場合はエラーが返ります。 Parameters ---------- text: str 判定する対象の文字列 + * テキストがAquesTalk 風記法に従っているかどうかを判定します。 従っていない場合はエラーが返ります。 * テキストがAquesTalk 風記法に従っているか判定する */ async validateKanaValidateKanaPost(requestParameters: ValidateKanaValidateKanaPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { diff --git a/src/openapi/models/BodySingFrameVolumeSingFrameVolumePost.ts b/src/openapi/models/BodySingFrameVolumeSingFrameVolumePost.ts new file mode 100644 index 0000000000..ff56e3210a --- /dev/null +++ b/src/openapi/models/BodySingFrameVolumeSingFrameVolumePost.ts @@ -0,0 +1,88 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VOICEVOX Engine + * VOICEVOXの音声合成エンジンです。 + * + * The version of the OpenAPI document: latest + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +import { exists, mapValues } from '../runtime'; +import type { FrameAudioQuery } from './FrameAudioQuery'; +import { + FrameAudioQueryFromJSON, + FrameAudioQueryFromJSONTyped, + FrameAudioQueryToJSON, +} from './FrameAudioQuery'; +import type { Score } from './Score'; +import { + ScoreFromJSON, + ScoreFromJSONTyped, + ScoreToJSON, +} from './Score'; + +/** + * + * @export + * @interface BodySingFrameVolumeSingFrameVolumePost + */ +export interface BodySingFrameVolumeSingFrameVolumePost { + /** + * + * @type {Score} + * @memberof BodySingFrameVolumeSingFrameVolumePost + */ + score: Score; + /** + * + * @type {FrameAudioQuery} + * @memberof BodySingFrameVolumeSingFrameVolumePost + */ + frameAudioQuery: FrameAudioQuery; +} + +/** + * Check if a given object implements the BodySingFrameVolumeSingFrameVolumePost interface. + */ +export function instanceOfBodySingFrameVolumeSingFrameVolumePost(value: object): boolean { + let isInstance = true; + isInstance = isInstance && "score" in value; + isInstance = isInstance && "frameAudioQuery" in value; + + return isInstance; +} + +export function BodySingFrameVolumeSingFrameVolumePostFromJSON(json: any): BodySingFrameVolumeSingFrameVolumePost { + return BodySingFrameVolumeSingFrameVolumePostFromJSONTyped(json, false); +} + +export function BodySingFrameVolumeSingFrameVolumePostFromJSONTyped(json: any, ignoreDiscriminator: boolean): BodySingFrameVolumeSingFrameVolumePost { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'score': ScoreFromJSON(json['score']), + 'frameAudioQuery': FrameAudioQueryFromJSON(json['frame_audio_query']), + }; +} + +export function BodySingFrameVolumeSingFrameVolumePostToJSON(value?: BodySingFrameVolumeSingFrameVolumePost | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'score': ScoreToJSON(value.score), + 'frame_audio_query': FrameAudioQueryToJSON(value.frameAudioQuery), + }; +} + diff --git a/src/openapi/models/index.ts b/src/openapi/models/index.ts index 804de0ee19..0af578cdf8 100644 --- a/src/openapi/models/index.ts +++ b/src/openapi/models/index.ts @@ -3,6 +3,7 @@ export * from './AccentPhrase'; export * from './AudioQuery'; export * from './BaseLibraryInfo'; +export * from './BodySingFrameVolumeSingFrameVolumePost'; export * from './CorsPolicyMode'; export * from './DownloadableLibraryInfo'; export * from './EngineManifest'; From 179395fd763193c113e022b6145e3a858b0399d7 Mon Sep 17 00:00:00 2001 From: y-chan Date: Fri, 26 Apr 2024 22:47:13 +0900 Subject: [PATCH 2/5] add volume update process --- src/store/singing.ts | 79 +++++++++++++++++++++++++++++++++++++++++--- src/store/type.ts | 10 ++++++ 2 files changed, 85 insertions(+), 4 deletions(-) diff --git a/src/store/singing.ts b/src/store/singing.ts index c63b167725..386af3bc56 100644 --- a/src/store/singing.ts +++ b/src/store/singing.ts @@ -25,7 +25,7 @@ import { SequencerEditTarget, } from "./type"; import { sanitizeFileName } from "./utility"; -import { EngineId } from "@/type/preload"; +import { EngineId, StyleId } from "@/type/preload"; import { FrameAudioQuery, Note as NoteForRequestToEngine } from "@/openapi"; import { ResultError, getValueOrThrow } from "@/type/result"; import { @@ -872,8 +872,7 @@ export const singingStore = createPartialStore({ return foundPhrases; }; - const fetchQuery = async ( - engineId: EngineId, + const createNotesForRequestToEngine = ( notes: Note[], tempos: Tempo[], tpqn: number, @@ -919,6 +918,29 @@ export const singingStore = createPartialStore({ lyric: "", }); + return notesForRequestToEngine; + }; + + const singingTeacherStyleId = StyleId(6000); // TODO: 設定できるようにする + + const fetchQuery = async ( + engineId: EngineId, + notes: Note[], + tempos: Tempo[], + tpqn: number, + keyRangeAdjustment: number, + frameRate: number, + restDurationSeconds: number, + ) => { + const notesForRequestToEngine = createNotesForRequestToEngine( + notes, + tempos, + tpqn, + keyRangeAdjustment, + frameRate, + restDurationSeconds, + ); + try { if (!getters.IS_ENGINE_READY(engineId)) { throw new Error("Engine not ready."); @@ -930,7 +952,7 @@ export const singingStore = createPartialStore({ "singFrameAudioQuerySingFrameAudioQueryPost", )({ score: { notes: notesForRequestToEngine }, - speaker: 6000, // TODO: 設定できるようにする + speaker: singingTeacherStyleId, }); } catch (error) { const lyrics = notesForRequestToEngine @@ -1320,6 +1342,26 @@ export const singingStore = createPartialStore({ logger.info(`Loaded singing voice from cache.`); } else { + // ピッチ編集を適用したクエリから音量を作る + // 音量値はAPIを叩く毎に変わるので、calc hashしたあとに音量を取得している + const notesForRequestToEngine = createNotesForRequestToEngine( + notes, + tempos, + tpqn, + keyRangeAdjustment, + singingGuide.frameRate, + restDurationSeconds, + ); + + const volumes = await dispatch("FETCH_SING_FRAME_VOLUME", { + notes: notesForRequestToEngine, + frameAudioQuery: singingGuide.query, + styleId: singingTeacherStyleId, + engineId: singerAndFrameRate.singer.engineId, + }); + // TODO: 新しく推論した音量をどう保存するか検討する + singingGuide.query.volume = volumes; + const blob = await synthesize( singerAndFrameRate.singer, singingGuide.query, @@ -2028,6 +2070,35 @@ export const singingStore = createPartialStore({ ), }, + FETCH_SING_FRAME_VOLUME: { + async action( + { dispatch }, + { + notes, + frameAudioQuery, + engineId, + styleId, + }: { + notes: NoteForRequestToEngine[]; + frameAudioQuery: FrameAudioQuery; + engineId: EngineId; + styleId: StyleId; + }, + ) { + const instance = await dispatch("INSTANTIATE_ENGINE_CONNECTOR", { + engineId, + }); + return await instance.invoke("singFrameVolumeSingFrameVolumePost")({ + bodySingFrameVolumeSingFrameVolumePost: { + score: { + notes, + }, + frameAudioQuery, + }, + speaker: styleId, + }); + }, + }, SET_NOW_AUDIO_EXPORTING: { mutation(state, { nowAudioExporting }) { state.nowAudioExporting = nowAudioExporting; diff --git a/src/store/type.ts b/src/store/type.ts index b3a0b94f44..8eed8b4781 100644 --- a/src/store/type.ts +++ b/src/store/type.ts @@ -17,6 +17,7 @@ import { UserDictWord, MorphableTargetInfo, FrameAudioQuery, + Note as NoteForRequestToEngine, } from "@/openapi"; import { CharacterInfo, @@ -1000,6 +1001,15 @@ export type SingingStoreTypes = { action(): void; }; + FETCH_SING_FRAME_VOLUME: { + action(palyoad: { + notes: NoteForRequestToEngine[]; + frameAudioQuery: FrameAudioQuery; + engineId: EngineId; + styleId: StyleId; + }): Promise; + }; + TICK_TO_SECOND: { getter(position: number): number; }; From 81abe9d4cf31a0daf34689c4462ca4fb84a486dc Mon Sep 17 00:00:00 2001 From: y-chan Date: Sat, 27 Apr 2024 00:27:41 +0900 Subject: [PATCH 3/5] fix miss --- src/store/singing.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/store/singing.ts b/src/store/singing.ts index 386af3bc56..cb393db49d 100644 --- a/src/store/singing.ts +++ b/src/store/singing.ts @@ -1345,7 +1345,7 @@ export const singingStore = createPartialStore({ // ピッチ編集を適用したクエリから音量を作る // 音量値はAPIを叩く毎に変わるので、calc hashしたあとに音量を取得している const notesForRequestToEngine = createNotesForRequestToEngine( - notes, + phrase.notes, tempos, tpqn, keyRangeAdjustment, From bef2cc1425c812866ef3678616a2ed19516aeddd Mon Sep 17 00:00:00 2001 From: y-chan Date: Sat, 27 Apr 2024 00:27:48 +0900 Subject: [PATCH 4/5] update comment --- src/store/singing.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/store/singing.ts b/src/store/singing.ts index cb393db49d..852581c3e5 100644 --- a/src/store/singing.ts +++ b/src/store/singing.ts @@ -1359,7 +1359,7 @@ export const singingStore = createPartialStore({ styleId: singingTeacherStyleId, engineId: singerAndFrameRate.singer.engineId, }); - // TODO: 新しく推論した音量をどう保存するか検討する + // TODO: 新しく推論した音量をどうプロジェクトファイルへ保存するか検討する singingGuide.query.volume = volumes; const blob = await synthesize( From 3947b8eab8759aac3539c0e82f0280e8790be961 Mon Sep 17 00:00:00 2001 From: Yuto Ashida Date: Sat, 27 Apr 2024 01:05:24 +0900 Subject: [PATCH 5/5] remove comment --- src/store/singing.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/store/singing.ts b/src/store/singing.ts index 852581c3e5..d170b695fb 100644 --- a/src/store/singing.ts +++ b/src/store/singing.ts @@ -1359,7 +1359,6 @@ export const singingStore = createPartialStore({ styleId: singingTeacherStyleId, engineId: singerAndFrameRate.singer.engineId, }); - // TODO: 新しく推論した音量をどうプロジェクトファイルへ保存するか検討する singingGuide.query.volume = volumes; const blob = await synthesize(