From 0a39ad838b0d69bdc518087f360bf9f8b4f4602d Mon Sep 17 00:00:00 2001 From: segu_g Date: Thu, 19 Jan 2023 19:04:08 +0900 Subject: [PATCH 01/22] add morphablePairInfo state --- src/store/audio.ts | 39 +++++++++++++++++++++++++++++++++++++++ src/store/type.ts | 13 +++++++++++++ src/type/preload.ts | 8 ++++++++ src/views/EditorHome.vue | 2 ++ 4 files changed, 62 insertions(+) diff --git a/src/store/audio.ts b/src/store/audio.ts index 63c74b39da..bc939fa31d 100644 --- a/src/store/audio.ts +++ b/src/store/audio.ts @@ -196,6 +196,7 @@ const audioElements: Record = {}; export const audioStoreState: AudioStoreState = { characterInfos: {}, + morphablePairInfo: {}, audioItems: {}, audioKeys: [], audioStates: {}, @@ -321,6 +322,44 @@ export const audioStore = createPartialStore({ }, }, + LOAD_MORPHABLE_PAIR: { + async action({ state, commit }, { engineId }) { + if ( + !state.engineManifests[engineId].supportedFeatures?.synthesisMorphing + ) { + commit("SET_MORPHABLE_PAIR", { engineId, morphablePairInfo: {} }); + return; + } + const characterInfos = state.characterInfos[engineId]; + const styles = characterInfos.flatMap( + (characterInfo) => characterInfo.metas.styles + ); + const styleIds = styles.map((style) => style.styleId); + const morphablePairInfo = Object.fromEntries( + await Promise.all( + styleIds.map(async (baseStyleId) => [ + baseStyleId, + Object.fromEntries( + await Promise.all( + styleIds.map(async (targetStyleId) => [ + targetStyleId, + true, // TODO: エンジンからのAPIに置き換える + ]) + ) + ), + ]) + ) + ); + commit("SET_MORPHABLE_PAIR", { engineId, morphablePairInfo }); + }, + }, + + SET_MORPHABLE_PAIR: { + mutation(state, { engineId, morphablePairInfo }) { + state.morphablePairInfo[engineId] = morphablePairInfo; + }, + }, + CHARACTER_INFO: { getter: (state) => (engineId, styleId) => { return getCharacterInfo(state, engineId, styleId); diff --git a/src/store/type.ts b/src/store/type.ts index 698700fec3..ca05abd751 100644 --- a/src/store/type.ts +++ b/src/store/type.ts @@ -37,6 +37,7 @@ import { ConfirmedTips, EngineDirValidationResult, EditorFontType, + MorphablePairInfo, } from "@/type/preload"; import { IEngineConnectorFactory } from "@/infrastructures/EngineConnector"; import { QVueGlobals } from "quasar"; @@ -107,6 +108,7 @@ export type QuasarDialog = QVueGlobals["dialog"]; export type AudioStoreState = { characterInfos: Record; + morphablePairInfo: Record; audioKeyInitializingSpeaker?: string; audioItems: Record; audioKeys: string[]; @@ -141,6 +143,17 @@ export type AudioStoreTypes = { mutation: { engineId: string; characterInfos: CharacterInfo[] }; }; + LOAD_MORPHABLE_PAIR: { + action(payload: { engineId: string }): void; + }; + + SET_MORPHABLE_PAIR: { + mutation: { + engineId: string; + morphablePairInfo: MorphablePairInfo; + }; + }; + CHARACTER_INFO: { getter(engineId: string, styleId: number): CharacterInfo | undefined; }; diff --git a/src/type/preload.ts b/src/type/preload.ts index 48194c4500..cdef82e6e7 100644 --- a/src/type/preload.ts +++ b/src/type/preload.ts @@ -309,6 +309,14 @@ export type PresetConfig = { keys: string[]; }; +export type MorphablePairInfo = { + [baseStyleId: number]: + | undefined + | { + [targetStyleId: number]: undefined | boolean; + }; +}; + export const hotkeyActionSchema = z.enum([ "音声書き出し", "一つだけ書き出し", diff --git a/src/views/EditorHome.vue b/src/views/EditorHome.vue index 94cb47df54..e9427fc759 100644 --- a/src/views/EditorHome.vue +++ b/src/views/EditorHome.vue @@ -539,6 +539,8 @@ export default defineComponent({ await store.dispatch("FETCH_AND_SET_ENGINE_MANIFEST", { engineId }); await store.dispatch("LOAD_CHARACTER", { engineId }); + + await store.dispatch("LOAD_MORPHABLE_PAIR", { engineId }); }) ); await store.dispatch("LOAD_USER_CHARACTER_ORDER"); From 54b9f7003a695513935a3bf0b096d9e501afc672 Mon Sep 17 00:00:00 2001 From: segu_g Date: Thu, 19 Jan 2023 19:30:23 +0900 Subject: [PATCH 02/22] update openapi.json --- openapi.json | 2 +- src/openapi/.openapi-generator/FILES | 2 + src/openapi/apis/DefaultApi.ts | 74 ++++++++++++++++++- src/openapi/models/AccentPhrase.ts | 2 +- src/openapi/models/AudioQuery.ts | 2 +- src/openapi/models/DownloadableLibrary.ts | 2 +- src/openapi/models/EngineManifest.ts | 2 +- src/openapi/models/HTTPValidationError.ts | 2 +- src/openapi/models/LicenseInfo.ts | 2 +- src/openapi/models/Mora.ts | 2 +- src/openapi/models/ParseKanaBadRequest.ts | 2 +- src/openapi/models/Preset.ts | 2 +- src/openapi/models/Speaker.ts | 14 +++- src/openapi/models/SpeakerInfo.ts | 2 +- src/openapi/models/SpeakerStyle.ts | 2 +- ...SpeakerSupportPermitedSynthesisMorphing.ts | 37 ++++++++++ .../models/SpeakerSupportedFeatures.ts | 63 ++++++++++++++++ src/openapi/models/StyleInfo.ts | 2 +- src/openapi/models/SupportedDevicesInfo.ts | 2 +- src/openapi/models/SupportedFeatures.ts | 2 +- src/openapi/models/UpdateInfo.ts | 2 +- src/openapi/models/UserDictWord.ts | 2 +- src/openapi/models/ValidationError.ts | 2 +- src/openapi/models/WordTypes.ts | 2 +- src/openapi/models/index.ts | 2 + src/openapi/runtime.ts | 2 +- 26 files changed, 210 insertions(+), 22 deletions(-) create mode 100644 src/openapi/models/SpeakerSupportPermitedSynthesisMorphing.ts create mode 100644 src/openapi/models/SpeakerSupportedFeatures.ts diff --git a/openapi.json b/openapi.json index 876eff2151..2dc5e34967 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1 @@ -{"openapi":"3.0.2","info":{"title":"VOICEVOX Engine","description":"VOICEVOXの音声合成エンジンです。","version":"0.14.0-preview.8"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"クエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Preset Id","type":"integer"},"name":"preset_id","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Is Kana","type":"boolean","default":false},"name":"is_kana","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Accent Phrases Accent Phrases Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Data Mora Data Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Length Mora Length Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Pitch Mora Pitch Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"疑問系のテキストが与えられたら語尾を自動調整する","required":false,"schema":{"title":"Enable Interrogative Upspeak","type":"boolean","description":"疑問系のテキストが与えられたら語尾を自動調整する","default":true},"name":"enable_interrogative_upspeak","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Queries","type":"array","items":{"$ref":"#/components/schemas/AudioQuery"}}}},"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"}}}}}}},"/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":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":true,"schema":{"title":"Morph Rate","maximum":1.0,"minimum":0.0,"type":"number"},"name":"morph_rate","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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"}}}}}}},"/connect_waves":{"post":{"tags":["その他"],"summary":"base64エンコードされた複数のwavデータを一つに結合する","description":"base64エンコードされたwavデータを一纏めにし、wavファイルで返します。","operationId":"connect_waves_connect_waves_post","requestBody":{"content":{"application/json":{"schema":{"title":"Waves","type":"array","items":{"type":"string"}}}},"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":{"title":"Response Get Presets Presets Get","type":"array","items":{"$ref":"#/components/schemas/Preset"}}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/core_versions":{"get":{"tags":["その他"],"summary":"Core Versions","operationId":"core_versions_core_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Core Versions Core Versions Get","type":"array","items":{"type":"string"}}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","parameters":[{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Speakers Speakers Get","type":"array","items":{"$ref":"#/components/schemas/Speaker"}}}}},"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エンコードされたものが返されます。\n\nReturns\n-------\nret_data: SpeakerInfo","operationId":"speaker_info_speaker_info_get","parameters":[{"required":true,"schema":{"title":"Speaker Uuid","type":"string"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Response Downloadable Libraries Downloadable Libraries Get","type":"array","items":{"$ref":"#/components/schemas/DownloadableLibrary"}}}}}}}},"/initialize_speaker":{"post":{"tags":["その他"],"summary":"Initialize Speaker","description":"指定されたspeaker_idの話者を初期化します。\n実行しなくても他のAPIは使用できますが、初回実行時に時間がかかることがあります。","operationId":"initialize_speaker_initialize_speaker_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"既に初期化済みの話者の再初期化をスキップするかどうか","required":false,"schema":{"title":"Skip Reinit","type":"boolean","description":"既に初期化済みの話者の再初期化をスキップするかどうか","default":false},"name":"skip_reinit","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":"指定されたspeaker_idの話者が初期化されているかどうかを返します。","operationId":"is_initialized_speaker_is_initialized_speaker_get","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Initialized Speaker Is Initialized Speaker Get","type":"boolean"}}}},"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":{"title":"Response Get User Dict Words User Dict Get","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}}}}}},"/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":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"name":"priority","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Add User Dict Word User Dict Word Post","type":"string"}}}},"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":{"title":"Word Uuid","type":"string"},"name":"word_uuid","in":"path"},{"required":true,"schema":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"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":{"title":"Word Uuid","type":"string"},"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":{"title":"Override","type":"boolean"},"name":"override","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Import Dict Data","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}},"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":{"title":"Core Version","type":"string"},"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","operationId":"setting_get_setting_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["設定"],"summary":"Setting Post","operationId":"setting_post_setting_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setting_post_setting_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccentPhrase":{"title":"AccentPhrase","required":["moras","accent"],"type":"object","properties":{"moras":{"title":"モーラのリスト","type":"array","items":{"$ref":"#/components/schemas/Mora"}},"accent":{"title":"アクセント箇所","type":"integer"},"pause_mora":{"title":"後ろに無音を付けるかどうか","allOf":[{"$ref":"#/components/schemas/Mora"}]},"is_interrogative":{"title":"疑問系かどうか","type":"boolean","default":false}},"description":"アクセント句ごとの情報"},"AudioQuery":{"title":"AudioQuery","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"type":"object","properties":{"accent_phrases":{"title":"アクセント句のリスト","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"},"outputSamplingRate":{"title":"音声データの出力サンプリングレート","type":"integer"},"outputStereo":{"title":"音声データをステレオ出力するか否か","type":"boolean"},"kana":{"title":"[読み取り専用]AquesTalkライクな読み仮名。音声合成クエリとしては無視される","type":"string"}},"description":"音声合成用のクエリ"},"Body_setting_post_setting_post":{"title":"Body_setting_post_setting_post","type":"object","properties":{"cors_policy_mode":{"title":"Cors Policy Mode","type":"string"},"allow_origin":{"title":"Allow Origin","type":"string"}}},"DownloadableLibrary":{"title":"DownloadableLibrary","required":["download_url","bytes","speaker","speaker_info"],"type":"object","properties":{"download_url":{"title":"音声ライブラリのダウンロードURL","type":"string"},"bytes":{"title":"音声ライブラリのバイト数","type":"integer"},"speaker":{"title":"話者情報","allOf":[{"$ref":"#/components/schemas/Speaker"}]},"speaker_info":{"title":"話者の追加情報","allOf":[{"$ref":"#/components/schemas/SpeakerInfo"}]}},"description":"ダウンロード可能な音声ライブラリの情報(最新情報をwebで取得することを考慮して、ローカルの情報はない)"},"EngineManifest":{"title":"EngineManifest","required":["manifest_version","name","brand_name","uuid","url","icon","default_sampling_rate","terms_of_service","update_infos","dependency_licenses","supported_features"],"type":"object","properties":{"manifest_version":{"title":"マニフェストのバージョン","type":"string"},"name":{"title":"エンジン名","type":"string"},"brand_name":{"title":"ブランド名","type":"string"},"uuid":{"title":"エンジンのUUID","type":"string"},"url":{"title":"エンジンのURL","type":"string"},"icon":{"title":"エンジンのアイコンをBASE64エンコードしたもの","type":"string"},"default_sampling_rate":{"title":"デフォルトのサンプリング周波数","type":"integer"},"terms_of_service":{"title":"エンジンの利用規約","type":"string"},"update_infos":{"title":"エンジンのアップデート情報","type":"array","items":{"$ref":"#/components/schemas/UpdateInfo"}},"dependency_licenses":{"title":"依存関係のライセンス情報","type":"array","items":{"$ref":"#/components/schemas/LicenseInfo"}},"downloadable_libraries_path":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのローカルjsonパス","type":"string"},"downloadable_libraries_url":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのAPIのURL","type":"string"},"supported_features":{"title":"エンジンが持つ機能","allOf":[{"$ref":"#/components/schemas/SupportedFeatures"}]}},"description":"エンジン自体に関する情報"},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"LicenseInfo":{"title":"LicenseInfo","required":["name","text"],"type":"object","properties":{"name":{"title":"依存ライブラリ名","type":"string"},"version":{"title":"依存ライブラリのバージョン","type":"string"},"license":{"title":"依存ライブラリのライセンス名","type":"string"},"text":{"title":"依存ライブラリのライセンス本文","type":"string"}},"description":"依存ライブラリのライセンス情報"},"Mora":{"title":"Mora","required":["text","vowel","vowel_length","pitch"],"type":"object","properties":{"text":{"title":"文字","type":"string"},"consonant":{"title":"子音の音素","type":"string"},"consonant_length":{"title":"子音の音長","type":"number"},"vowel":{"title":"母音の音素","type":"string"},"vowel_length":{"title":"母音の音長","type":"number"},"pitch":{"title":"音高","type":"number"}},"description":"モーラ(子音+母音)ごとの情報"},"ParseKanaBadRequest":{"title":"ParseKanaBadRequest","required":["text","error_name","error_args"],"type":"object","properties":{"text":{"title":"エラーメッセージ","type":"string"},"error_name":{"title":"エラー名","type":"string","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":{"title":"エラーを起こした箇所","type":"object","additionalProperties":{"type":"string"}}}},"Preset":{"title":"Preset","required":["id","name","speaker_uuid","style_id","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength"],"type":"object","properties":{"id":{"title":"プリセットID","type":"integer"},"name":{"title":"プリセット名","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"style_id":{"title":"スタイルID","type":"integer"},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"}},"description":"プリセット情報"},"Speaker":{"title":"Speaker","required":["name","speaker_uuid","styles"],"type":"object","properties":{"name":{"title":"名前","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"styles":{"title":"スピーカースタイルの一覧","type":"array","items":{"$ref":"#/components/schemas/SpeakerStyle"}},"version":{"title":"Version","type":"string","default":"スピーカーのバージョン"}},"description":"スピーカー情報"},"SpeakerInfo":{"title":"SpeakerInfo","required":["policy","portrait","style_infos"],"type":"object","properties":{"policy":{"title":"policy.md","type":"string"},"portrait":{"title":"portrait.pngをbase64エンコードしたもの","type":"string"},"style_infos":{"title":"スタイルの追加情報","type":"array","items":{"$ref":"#/components/schemas/StyleInfo"}}},"description":"話者の追加情報"},"SpeakerStyle":{"title":"SpeakerStyle","required":["name","id"],"type":"object","properties":{"name":{"title":"スタイル名","type":"string"},"id":{"title":"スタイルID","type":"integer"}},"description":"スピーカーのスタイル情報"},"StyleInfo":{"title":"StyleInfo","required":["id","icon","voice_samples"],"type":"object","properties":{"id":{"title":"スタイルID","type":"integer"},"icon":{"title":"当該スタイルのアイコンをbase64エンコードしたもの","type":"string"},"portrait":{"title":"当該スタイルのportrait.pngをbase64エンコードしたもの","type":"string"},"voice_samples":{"title":"voice_sampleのwavファイルをbase64エンコードしたもの","type":"array","items":{"type":"string"}}},"description":"スタイルの追加情報"},"SupportedDevicesInfo":{"title":"SupportedDevicesInfo","required":["cpu","cuda","dml"],"type":"object","properties":{"cpu":{"title":"CPUに対応しているか","type":"boolean"},"cuda":{"title":"CUDA(Nvidia GPU)に対応しているか","type":"boolean"},"dml":{"title":"DirectML(Nvidia GPU/Radeon GPU等)に対応しているか","type":"boolean"}},"description":"対応しているデバイスの情報"},"SupportedFeatures":{"title":"SupportedFeatures","required":["adjust_mora_pitch","adjust_phoneme_length","adjust_speed_scale","adjust_pitch_scale","adjust_intonation_scale","adjust_volume_scale","interrogative_upspeak","synthesis_morphing"],"type":"object","properties":{"adjust_mora_pitch":{"title":"モーラごとの音高の調整","type":"boolean"},"adjust_phoneme_length":{"title":"音素ごとの長さの調整","type":"boolean"},"adjust_speed_scale":{"title":"全体の話速の調整","type":"boolean"},"adjust_pitch_scale":{"title":"全体の音高の調整","type":"boolean"},"adjust_intonation_scale":{"title":"全体の抑揚の調整","type":"boolean"},"adjust_volume_scale":{"title":"全体の音量の調整","type":"boolean"},"interrogative_upspeak":{"title":"疑問文の自動調整","type":"boolean"},"synthesis_morphing":{"title":"2人の話者でモーフィングした音声を合成","type":"boolean"}},"description":"エンジンが持つ機能の一覧"},"UpdateInfo":{"title":"UpdateInfo","required":["version","descriptions"],"type":"object","properties":{"version":{"title":"エンジンのバージョン名","type":"string"},"descriptions":{"title":"アップデートの詳細についての説明","type":"array","items":{"type":"string"}},"contributors":{"title":"貢献者名","type":"array","items":{"type":"string"}}},"description":"エンジンのアップデート情報"},"UserDictWord":{"title":"UserDictWord","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"],"type":"object","properties":{"surface":{"title":"表層形","type":"string"},"priority":{"title":"優先度","maximum":10.0,"minimum":0.0,"type":"integer"},"context_id":{"title":"文脈ID","type":"integer","default":1348},"part_of_speech":{"title":"品詞","type":"string"},"part_of_speech_detail_1":{"title":"品詞細分類1","type":"string"},"part_of_speech_detail_2":{"title":"品詞細分類2","type":"string"},"part_of_speech_detail_3":{"title":"品詞細分類3","type":"string"},"inflectional_type":{"title":"活用型","type":"string"},"inflectional_form":{"title":"活用形","type":"string"},"stem":{"title":"原形","type":"string"},"yomi":{"title":"読み","type":"string"},"pronunciation":{"title":"発音","type":"string"},"accent_type":{"title":"アクセント型","type":"integer"},"mora_count":{"title":"モーラ数","type":"integer"},"accent_associative_rule":{"title":"アクセント結合規則","type":"string"}},"description":"辞書のコンパイルに使われる情報"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}},"WordTypes":{"title":"WordTypes","enum":["PROPER_NOUN","COMMON_NOUN","VERB","ADJECTIVE","SUFFIX"],"type":"string","description":"\n fastapiでword_type引数を検証する時に使用するクラス\n "}}}} \ No newline at end of file +{"openapi":"3.0.2","info":{"title":"VOICEVOX Engine","description":"VOICEVOXの音声合成エンジンです。","version":"0.14.0-preview.10"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"クエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Preset Id","type":"integer"},"name":"preset_id","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Is Kana","type":"boolean","default":false},"name":"is_kana","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Accent Phrases Accent Phrases Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Data Mora Data Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Length Mora Length Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Pitch Mora Pitch Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"疑問系のテキストが与えられたら語尾を自動調整する","required":false,"schema":{"title":"Enable Interrogative Upspeak","type":"boolean","description":"疑問系のテキストが与えられたら語尾を自動調整する","default":true},"name":"enable_interrogative_upspeak","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Queries","type":"array","items":{"$ref":"#/components/schemas/AudioQuery"}}}},"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"}}}}}}},"/is_morphable":{"get":{"tags":["音声合成"],"summary":"2人の話者でモーフィングが可能かどうか返す","description":"指定された2人の話者でモーフィング機能を利用可能か返します。\nモーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。\nプロパティが存在しない場合は、モーフィングが許可されているとみなします。","operationId":"is_morphable_is_morphable_get","parameters":[{"required":true,"schema":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Morphable Is Morphable Get","type":"boolean"}}}},"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":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":true,"schema":{"title":"Morph Rate","maximum":1.0,"minimum":0.0,"type":"number"},"name":"morph_rate","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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"}}}}}}},"/connect_waves":{"post":{"tags":["その他"],"summary":"base64エンコードされた複数のwavデータを一つに結合する","description":"base64エンコードされたwavデータを一纏めにし、wavファイルで返します。","operationId":"connect_waves_connect_waves_post","requestBody":{"content":{"application/json":{"schema":{"title":"Waves","type":"array","items":{"type":"string"}}}},"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":{"title":"Response Get Presets Presets Get","type":"array","items":{"$ref":"#/components/schemas/Preset"}}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/core_versions":{"get":{"tags":["その他"],"summary":"Core Versions","operationId":"core_versions_core_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Core Versions Core Versions Get","type":"array","items":{"type":"string"}}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","parameters":[{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Speakers Speakers Get","type":"array","items":{"$ref":"#/components/schemas/Speaker"}}}}},"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エンコードされたものが返されます。\n\nReturns\n-------\nret_data: SpeakerInfo","operationId":"speaker_info_speaker_info_get","parameters":[{"required":true,"schema":{"title":"Speaker Uuid","type":"string"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Response Downloadable Libraries Downloadable Libraries Get","type":"array","items":{"$ref":"#/components/schemas/DownloadableLibrary"}}}}}}}},"/initialize_speaker":{"post":{"tags":["その他"],"summary":"Initialize Speaker","description":"指定されたspeaker_idの話者を初期化します。\n実行しなくても他のAPIは使用できますが、初回実行時に時間がかかることがあります。","operationId":"initialize_speaker_initialize_speaker_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"既に初期化済みの話者の再初期化をスキップするかどうか","required":false,"schema":{"title":"Skip Reinit","type":"boolean","description":"既に初期化済みの話者の再初期化をスキップするかどうか","default":false},"name":"skip_reinit","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":"指定されたspeaker_idの話者が初期化されているかどうかを返します。","operationId":"is_initialized_speaker_is_initialized_speaker_get","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Initialized Speaker Is Initialized Speaker Get","type":"boolean"}}}},"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":{"title":"Response Get User Dict Words User Dict Get","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}}}}}},"/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":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"name":"priority","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Add User Dict Word User Dict Word Post","type":"string"}}}},"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":{"title":"Word Uuid","type":"string"},"name":"word_uuid","in":"path"},{"required":true,"schema":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"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":{"title":"Word Uuid","type":"string"},"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":{"title":"Override","type":"boolean"},"name":"override","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Import Dict Data","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}},"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":{"title":"Core Version","type":"string"},"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","operationId":"setting_get_setting_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["設定"],"summary":"Setting Post","operationId":"setting_post_setting_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setting_post_setting_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccentPhrase":{"title":"AccentPhrase","required":["moras","accent"],"type":"object","properties":{"moras":{"title":"モーラのリスト","type":"array","items":{"$ref":"#/components/schemas/Mora"}},"accent":{"title":"アクセント箇所","type":"integer"},"pause_mora":{"title":"後ろに無音を付けるかどうか","allOf":[{"$ref":"#/components/schemas/Mora"}]},"is_interrogative":{"title":"疑問系かどうか","type":"boolean","default":false}},"description":"アクセント句ごとの情報"},"AudioQuery":{"title":"AudioQuery","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"type":"object","properties":{"accent_phrases":{"title":"アクセント句のリスト","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"},"outputSamplingRate":{"title":"音声データの出力サンプリングレート","type":"integer"},"outputStereo":{"title":"音声データをステレオ出力するか否か","type":"boolean"},"kana":{"title":"[読み取り専用]AquesTalkライクな読み仮名。音声合成クエリとしては無視される","type":"string"}},"description":"音声合成用のクエリ"},"Body_setting_post_setting_post":{"title":"Body_setting_post_setting_post","type":"object","properties":{"cors_policy_mode":{"title":"Cors Policy Mode","type":"string"},"allow_origin":{"title":"Allow Origin","type":"string"}}},"DownloadableLibrary":{"title":"DownloadableLibrary","required":["download_url","bytes","speaker","speaker_info"],"type":"object","properties":{"download_url":{"title":"音声ライブラリのダウンロードURL","type":"string"},"bytes":{"title":"音声ライブラリのバイト数","type":"integer"},"speaker":{"title":"話者情報","allOf":[{"$ref":"#/components/schemas/Speaker"}]},"speaker_info":{"title":"話者の追加情報","allOf":[{"$ref":"#/components/schemas/SpeakerInfo"}]}},"description":"ダウンロード可能な音声ライブラリの情報(最新情報をwebで取得することを考慮して、ローカルの情報はない)"},"EngineManifest":{"title":"EngineManifest","required":["manifest_version","name","brand_name","uuid","url","icon","default_sampling_rate","terms_of_service","update_infos","dependency_licenses","supported_features"],"type":"object","properties":{"manifest_version":{"title":"マニフェストのバージョン","type":"string"},"name":{"title":"エンジン名","type":"string"},"brand_name":{"title":"ブランド名","type":"string"},"uuid":{"title":"エンジンのUUID","type":"string"},"url":{"title":"エンジンのURL","type":"string"},"icon":{"title":"エンジンのアイコンをBASE64エンコードしたもの","type":"string"},"default_sampling_rate":{"title":"デフォルトのサンプリング周波数","type":"integer"},"terms_of_service":{"title":"エンジンの利用規約","type":"string"},"update_infos":{"title":"エンジンのアップデート情報","type":"array","items":{"$ref":"#/components/schemas/UpdateInfo"}},"dependency_licenses":{"title":"依存関係のライセンス情報","type":"array","items":{"$ref":"#/components/schemas/LicenseInfo"}},"downloadable_libraries_path":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのローカルjsonパス","type":"string"},"downloadable_libraries_url":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのAPIのURL","type":"string"},"supported_features":{"title":"エンジンが持つ機能","allOf":[{"$ref":"#/components/schemas/SupportedFeatures"}]}},"description":"エンジン自体に関する情報"},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"LicenseInfo":{"title":"LicenseInfo","required":["name","text"],"type":"object","properties":{"name":{"title":"依存ライブラリ名","type":"string"},"version":{"title":"依存ライブラリのバージョン","type":"string"},"license":{"title":"依存ライブラリのライセンス名","type":"string"},"text":{"title":"依存ライブラリのライセンス本文","type":"string"}},"description":"依存ライブラリのライセンス情報"},"Mora":{"title":"Mora","required":["text","vowel","vowel_length","pitch"],"type":"object","properties":{"text":{"title":"文字","type":"string"},"consonant":{"title":"子音の音素","type":"string"},"consonant_length":{"title":"子音の音長","type":"number"},"vowel":{"title":"母音の音素","type":"string"},"vowel_length":{"title":"母音の音長","type":"number"},"pitch":{"title":"音高","type":"number"}},"description":"モーラ(子音+母音)ごとの情報"},"ParseKanaBadRequest":{"title":"ParseKanaBadRequest","required":["text","error_name","error_args"],"type":"object","properties":{"text":{"title":"エラーメッセージ","type":"string"},"error_name":{"title":"エラー名","type":"string","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":{"title":"エラーを起こした箇所","type":"object","additionalProperties":{"type":"string"}}}},"Preset":{"title":"Preset","required":["id","name","speaker_uuid","style_id","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength"],"type":"object","properties":{"id":{"title":"プリセットID","type":"integer"},"name":{"title":"プリセット名","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"style_id":{"title":"スタイルID","type":"integer"},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"}},"description":"プリセット情報"},"Speaker":{"title":"Speaker","required":["name","speaker_uuid","styles"],"type":"object","properties":{"name":{"title":"名前","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"supported_features":{"title":"スピーカーの対応機能","allOf":[{"$ref":"#/components/schemas/SpeakerSupportedFeatures"}]},"styles":{"title":"スピーカースタイルの一覧","type":"array","items":{"$ref":"#/components/schemas/SpeakerStyle"}},"version":{"title":"Version","type":"string","default":"スピーカーのバージョン"}},"description":"スピーカー情報"},"SpeakerInfo":{"title":"SpeakerInfo","required":["policy","portrait","style_infos"],"type":"object","properties":{"policy":{"title":"policy.md","type":"string"},"portrait":{"title":"portrait.pngをbase64エンコードしたもの","type":"string"},"style_infos":{"title":"スタイルの追加情報","type":"array","items":{"$ref":"#/components/schemas/StyleInfo"}}},"description":"話者の追加情報"},"SpeakerStyle":{"title":"SpeakerStyle","required":["name","id"],"type":"object","properties":{"name":{"title":"スタイル名","type":"string"},"id":{"title":"スタイルID","type":"integer"}},"description":"スピーカーのスタイル情報"},"SpeakerSupportPermitedSynthesisMorphing":{"title":"SpeakerSupportPermitedSynthesisMorphing","enum":["ALL","SELF_ONLY","NOTHING"],"type":"string","description":"An enumeration."},"SpeakerSupportedFeatures":{"title":"SpeakerSupportedFeatures","type":"object","properties":{"permited_synthesis_morphing":{"title":"モーフィング機能への対応","allOf":[{"$ref":"#/components/schemas/SpeakerSupportPermitedSynthesisMorphing"}],"default":"ALL"}},"description":"話者の対応機能の情報"},"StyleInfo":{"title":"StyleInfo","required":["id","icon","voice_samples"],"type":"object","properties":{"id":{"title":"スタイルID","type":"integer"},"icon":{"title":"当該スタイルのアイコンをbase64エンコードしたもの","type":"string"},"portrait":{"title":"当該スタイルのportrait.pngをbase64エンコードしたもの","type":"string"},"voice_samples":{"title":"voice_sampleのwavファイルをbase64エンコードしたもの","type":"array","items":{"type":"string"}}},"description":"スタイルの追加情報"},"SupportedDevicesInfo":{"title":"SupportedDevicesInfo","required":["cpu","cuda","dml"],"type":"object","properties":{"cpu":{"title":"CPUに対応しているか","type":"boolean"},"cuda":{"title":"CUDA(Nvidia GPU)に対応しているか","type":"boolean"},"dml":{"title":"DirectML(Nvidia GPU/Radeon GPU等)に対応しているか","type":"boolean"}},"description":"対応しているデバイスの情報"},"SupportedFeatures":{"title":"SupportedFeatures","required":["adjust_mora_pitch","adjust_phoneme_length","adjust_speed_scale","adjust_pitch_scale","adjust_intonation_scale","adjust_volume_scale","interrogative_upspeak","synthesis_morphing"],"type":"object","properties":{"adjust_mora_pitch":{"title":"モーラごとの音高の調整","type":"boolean"},"adjust_phoneme_length":{"title":"音素ごとの長さの調整","type":"boolean"},"adjust_speed_scale":{"title":"全体の話速の調整","type":"boolean"},"adjust_pitch_scale":{"title":"全体の音高の調整","type":"boolean"},"adjust_intonation_scale":{"title":"全体の抑揚の調整","type":"boolean"},"adjust_volume_scale":{"title":"全体の音量の調整","type":"boolean"},"interrogative_upspeak":{"title":"疑問文の自動調整","type":"boolean"},"synthesis_morphing":{"title":"2人の話者でモーフィングした音声を合成","type":"boolean"}},"description":"エンジンが持つ機能の一覧"},"UpdateInfo":{"title":"UpdateInfo","required":["version","descriptions"],"type":"object","properties":{"version":{"title":"エンジンのバージョン名","type":"string"},"descriptions":{"title":"アップデートの詳細についての説明","type":"array","items":{"type":"string"}},"contributors":{"title":"貢献者名","type":"array","items":{"type":"string"}}},"description":"エンジンのアップデート情報"},"UserDictWord":{"title":"UserDictWord","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"],"type":"object","properties":{"surface":{"title":"表層形","type":"string"},"priority":{"title":"優先度","maximum":10.0,"minimum":0.0,"type":"integer"},"context_id":{"title":"文脈ID","type":"integer","default":1348},"part_of_speech":{"title":"品詞","type":"string"},"part_of_speech_detail_1":{"title":"品詞細分類1","type":"string"},"part_of_speech_detail_2":{"title":"品詞細分類2","type":"string"},"part_of_speech_detail_3":{"title":"品詞細分類3","type":"string"},"inflectional_type":{"title":"活用型","type":"string"},"inflectional_form":{"title":"活用形","type":"string"},"stem":{"title":"原形","type":"string"},"yomi":{"title":"読み","type":"string"},"pronunciation":{"title":"発音","type":"string"},"accent_type":{"title":"アクセント型","type":"integer"},"mora_count":{"title":"モーラ数","type":"integer"},"accent_associative_rule":{"title":"アクセント結合規則","type":"string"}},"description":"辞書のコンパイルに使われる情報"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}},"WordTypes":{"title":"WordTypes","enum":["PROPER_NOUN","COMMON_NOUN","VERB","ADJECTIVE","SUFFIX"],"type":"string","description":"\n fastapiでword_type引数を検証する時に使用するクラス\n "}}}} \ No newline at end of file diff --git a/src/openapi/.openapi-generator/FILES b/src/openapi/.openapi-generator/FILES index f2a6ed74f6..689c8cda06 100644 --- a/src/openapi/.openapi-generator/FILES +++ b/src/openapi/.openapi-generator/FILES @@ -13,6 +13,8 @@ models/Preset.ts models/Speaker.ts models/SpeakerInfo.ts models/SpeakerStyle.ts +models/SpeakerSupportPermitedSynthesisMorphing.ts +models/SpeakerSupportedFeatures.ts models/StyleInfo.ts models/SupportedDevicesInfo.ts models/SupportedFeatures.ts diff --git a/src/openapi/apis/DefaultApi.ts b/src/openapi/apis/DefaultApi.ts index 1e2688cf60..ead5543c2f 100644 --- a/src/openapi/apis/DefaultApi.ts +++ b/src/openapi/apis/DefaultApi.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -110,6 +110,12 @@ export interface IsInitializedSpeakerIsInitializedSpeakerGetRequest { coreVersion?: string; } +export interface IsMorphableIsMorphableGetRequest { + baseSpeaker: number; + targetSpeaker: number; + coreVersion?: string; +} + export interface MoraDataMoraDataPostRequest { speaker: number; accentPhrase: Array; @@ -432,6 +438,24 @@ export interface DefaultApiInterface { */ isInitializedSpeakerIsInitializedSpeakerGet(requestParameters: IsInitializedSpeakerIsInitializedSpeakerGetRequest, initOverrides?: RequestInit): Promise; + /** + * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * @summary 2人の話者でモーフィングが可能かどうか返す + * @param {number} baseSpeaker + * @param {number} targetSpeaker + * @param {string} [coreVersion] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApiInterface + */ + isMorphableIsMorphableGetRaw(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise>; + + /** + * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * 2人の話者でモーフィングが可能かどうか返す + */ + isMorphableIsMorphableGet(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise; + /** * * @summary アクセント句から音高・音素長を得る @@ -1237,6 +1261,54 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { return await response.value(); } + /** + * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * 2人の話者でモーフィングが可能かどうか返す + */ + async isMorphableIsMorphableGetRaw(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise> { + if (requestParameters.baseSpeaker === null || requestParameters.baseSpeaker === undefined) { + throw new runtime.RequiredError('baseSpeaker','Required parameter requestParameters.baseSpeaker was null or undefined when calling isMorphableIsMorphableGet.'); + } + + if (requestParameters.targetSpeaker === null || requestParameters.targetSpeaker === undefined) { + throw new runtime.RequiredError('targetSpeaker','Required parameter requestParameters.targetSpeaker was null or undefined when calling isMorphableIsMorphableGet.'); + } + + const queryParameters: any = {}; + + if (requestParameters.baseSpeaker !== undefined) { + queryParameters['base_speaker'] = requestParameters.baseSpeaker; + } + + if (requestParameters.targetSpeaker !== undefined) { + queryParameters['target_speaker'] = requestParameters.targetSpeaker; + } + + if (requestParameters.coreVersion !== undefined) { + queryParameters['core_version'] = requestParameters.coreVersion; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/is_morphable`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.TextApiResponse(response) as any; + } + + /** + * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * 2人の話者でモーフィングが可能かどうか返す + */ + async isMorphableIsMorphableGet(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise { + const response = await this.isMorphableIsMorphableGetRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * アクセント句から音高・音素長を得る */ diff --git a/src/openapi/models/AccentPhrase.ts b/src/openapi/models/AccentPhrase.ts index 7eedcd913d..12a7096d84 100644 --- a/src/openapi/models/AccentPhrase.ts +++ b/src/openapi/models/AccentPhrase.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/AudioQuery.ts b/src/openapi/models/AudioQuery.ts index 01c2bdedcb..50c08fe29c 100644 --- a/src/openapi/models/AudioQuery.ts +++ b/src/openapi/models/AudioQuery.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/DownloadableLibrary.ts b/src/openapi/models/DownloadableLibrary.ts index 1596c67ea3..3ea5cc4282 100644 --- a/src/openapi/models/DownloadableLibrary.ts +++ b/src/openapi/models/DownloadableLibrary.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/EngineManifest.ts b/src/openapi/models/EngineManifest.ts index 6284725f39..6726287147 100644 --- a/src/openapi/models/EngineManifest.ts +++ b/src/openapi/models/EngineManifest.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/HTTPValidationError.ts b/src/openapi/models/HTTPValidationError.ts index 9753e3ac64..4227b682ad 100644 --- a/src/openapi/models/HTTPValidationError.ts +++ b/src/openapi/models/HTTPValidationError.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/LicenseInfo.ts b/src/openapi/models/LicenseInfo.ts index 67eb067e8e..27296f4085 100644 --- a/src/openapi/models/LicenseInfo.ts +++ b/src/openapi/models/LicenseInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Mora.ts b/src/openapi/models/Mora.ts index 50bb037ab5..64b561b142 100644 --- a/src/openapi/models/Mora.ts +++ b/src/openapi/models/Mora.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/ParseKanaBadRequest.ts b/src/openapi/models/ParseKanaBadRequest.ts index 85a3ac2109..a72a23bfeb 100644 --- a/src/openapi/models/ParseKanaBadRequest.ts +++ b/src/openapi/models/ParseKanaBadRequest.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Preset.ts b/src/openapi/models/Preset.ts index 45a82791b5..a3d5a0c98c 100644 --- a/src/openapi/models/Preset.ts +++ b/src/openapi/models/Preset.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Speaker.ts b/src/openapi/models/Speaker.ts index c0f6371e5f..e1e283d84f 100644 --- a/src/openapi/models/Speaker.ts +++ b/src/openapi/models/Speaker.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -18,6 +18,10 @@ import { SpeakerStyleFromJSON, SpeakerStyleFromJSONTyped, SpeakerStyleToJSON, + SpeakerSupportedFeatures, + SpeakerSupportedFeaturesFromJSON, + SpeakerSupportedFeaturesFromJSONTyped, + SpeakerSupportedFeaturesToJSON, } from './'; /** @@ -38,6 +42,12 @@ export interface Speaker { * @memberof Speaker */ speakerUuid: string; + /** + * + * @type {SpeakerSupportedFeatures} + * @memberof Speaker + */ + supportedFeatures?: SpeakerSupportedFeatures | null; /** * * @type {Array} @@ -64,6 +74,7 @@ export function SpeakerFromJSONTyped(json: any, ignoreDiscriminator: boolean): S 'name': json['name'], 'speakerUuid': json['speaker_uuid'], + 'supportedFeatures': !exists(json, 'supported_features') ? undefined : SpeakerSupportedFeaturesFromJSON(json['supported_features']), 'styles': ((json['styles'] as Array).map(SpeakerStyleFromJSON)), 'version': !exists(json, 'version') ? undefined : json['version'], }; @@ -80,6 +91,7 @@ export function SpeakerToJSON(value?: Speaker | null): any { 'name': value.name, 'speaker_uuid': value.speakerUuid, + 'supported_features': SpeakerSupportedFeaturesToJSON(value.supportedFeatures), 'styles': ((value.styles as Array).map(SpeakerStyleToJSON)), 'version': value.version, }; diff --git a/src/openapi/models/SpeakerInfo.ts b/src/openapi/models/SpeakerInfo.ts index b876dbe388..e33840ce91 100644 --- a/src/openapi/models/SpeakerInfo.ts +++ b/src/openapi/models/SpeakerInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SpeakerStyle.ts b/src/openapi/models/SpeakerStyle.ts index f275bcb5cf..a13d9ad1e9 100644 --- a/src/openapi/models/SpeakerStyle.ts +++ b/src/openapi/models/SpeakerStyle.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SpeakerSupportPermitedSynthesisMorphing.ts b/src/openapi/models/SpeakerSupportPermitedSynthesisMorphing.ts new file mode 100644 index 0000000000..29ccf9c994 --- /dev/null +++ b/src/openapi/models/SpeakerSupportPermitedSynthesisMorphing.ts @@ -0,0 +1,37 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VOICEVOX Engine + * VOICEVOXの音声合成エンジンです。 + * + * The version of the OpenAPI document: 0.14.0-preview.10 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** + * An enumeration. + * @export + * @enum {string} + */ +export enum SpeakerSupportPermitedSynthesisMorphing { + All = 'ALL', + SelfOnly = 'SELF_ONLY', + Nothing = 'NOTHING' +} + +export function SpeakerSupportPermitedSynthesisMorphingFromJSON(json: any): SpeakerSupportPermitedSynthesisMorphing { + return SpeakerSupportPermitedSynthesisMorphingFromJSONTyped(json, false); +} + +export function SpeakerSupportPermitedSynthesisMorphingFromJSONTyped(json: any, ignoreDiscriminator: boolean): SpeakerSupportPermitedSynthesisMorphing { + return json as SpeakerSupportPermitedSynthesisMorphing; +} + +export function SpeakerSupportPermitedSynthesisMorphingToJSON(value?: SpeakerSupportPermitedSynthesisMorphing | null): any { + return value as any; +} + diff --git a/src/openapi/models/SpeakerSupportedFeatures.ts b/src/openapi/models/SpeakerSupportedFeatures.ts new file mode 100644 index 0000000000..9f709a8d81 --- /dev/null +++ b/src/openapi/models/SpeakerSupportedFeatures.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VOICEVOX Engine + * VOICEVOXの音声合成エンジンです。 + * + * The version of the OpenAPI document: 0.14.0-preview.10 + * + * + * 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 { + SpeakerSupportPermitedSynthesisMorphing, + SpeakerSupportPermitedSynthesisMorphingFromJSON, + SpeakerSupportPermitedSynthesisMorphingFromJSONTyped, + SpeakerSupportPermitedSynthesisMorphingToJSON, +} from './'; + +/** + * 話者の対応機能の情報 + * @export + * @interface SpeakerSupportedFeatures + */ +export interface SpeakerSupportedFeatures { + /** + * + * @type {SpeakerSupportPermitedSynthesisMorphing} + * @memberof SpeakerSupportedFeatures + */ + permitedSynthesisMorphing?: SpeakerSupportPermitedSynthesisMorphing | null; +} + +export function SpeakerSupportedFeaturesFromJSON(json: any): SpeakerSupportedFeatures { + return SpeakerSupportedFeaturesFromJSONTyped(json, false); +} + +export function SpeakerSupportedFeaturesFromJSONTyped(json: any, ignoreDiscriminator: boolean): SpeakerSupportedFeatures { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'permitedSynthesisMorphing': !exists(json, 'permited_synthesis_morphing') ? undefined : SpeakerSupportPermitedSynthesisMorphingFromJSON(json['permited_synthesis_morphing']), + }; +} + +export function SpeakerSupportedFeaturesToJSON(value?: SpeakerSupportedFeatures | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'permited_synthesis_morphing': SpeakerSupportPermitedSynthesisMorphingToJSON(value.permitedSynthesisMorphing), + }; +} + diff --git a/src/openapi/models/StyleInfo.ts b/src/openapi/models/StyleInfo.ts index fe68c1c355..57c7aa5301 100644 --- a/src/openapi/models/StyleInfo.ts +++ b/src/openapi/models/StyleInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SupportedDevicesInfo.ts b/src/openapi/models/SupportedDevicesInfo.ts index 2cc7b0aad0..abff8b9fa2 100644 --- a/src/openapi/models/SupportedDevicesInfo.ts +++ b/src/openapi/models/SupportedDevicesInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SupportedFeatures.ts b/src/openapi/models/SupportedFeatures.ts index 34998efba3..0402fca9fb 100644 --- a/src/openapi/models/SupportedFeatures.ts +++ b/src/openapi/models/SupportedFeatures.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/UpdateInfo.ts b/src/openapi/models/UpdateInfo.ts index 10ccbfb484..f693c7de52 100644 --- a/src/openapi/models/UpdateInfo.ts +++ b/src/openapi/models/UpdateInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/UserDictWord.ts b/src/openapi/models/UserDictWord.ts index ac723d3eca..a999f178ed 100644 --- a/src/openapi/models/UserDictWord.ts +++ b/src/openapi/models/UserDictWord.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/ValidationError.ts b/src/openapi/models/ValidationError.ts index 9b971bc813..f1ffa28bc6 100644 --- a/src/openapi/models/ValidationError.ts +++ b/src/openapi/models/ValidationError.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/WordTypes.ts b/src/openapi/models/WordTypes.ts index 89e97a7400..4cbce1e62a 100644 --- a/src/openapi/models/WordTypes.ts +++ b/src/openapi/models/WordTypes.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/index.ts b/src/openapi/models/index.ts index 3da96f9e1f..1fb3d41484 100644 --- a/src/openapi/models/index.ts +++ b/src/openapi/models/index.ts @@ -12,6 +12,8 @@ export * from './Preset'; export * from './Speaker'; export * from './SpeakerInfo'; export * from './SpeakerStyle'; +export * from './SpeakerSupportPermitedSynthesisMorphing'; +export * from './SpeakerSupportedFeatures'; export * from './StyleInfo'; export * from './SupportedDevicesInfo'; export * from './SupportedFeatures'; diff --git a/src/openapi/runtime.ts b/src/openapi/runtime.ts index acc5b242c9..44f516c1b9 100644 --- a/src/openapi/runtime.ts +++ b/src/openapi/runtime.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). From ccd7ce047ca934313b85064f6bed3d527ae5fca3 Mon Sep 17 00:00:00 2001 From: segu_g Date: Thu, 19 Jan 2023 19:48:47 +0900 Subject: [PATCH 03/22] Revert "update openapi.json" This reverts commit 54b9f7003a695513935a3bf0b096d9e501afc672. --- openapi.json | 2 +- src/openapi/.openapi-generator/FILES | 2 - src/openapi/apis/DefaultApi.ts | 74 +------------------ src/openapi/models/AccentPhrase.ts | 2 +- src/openapi/models/AudioQuery.ts | 2 +- src/openapi/models/DownloadableLibrary.ts | 2 +- src/openapi/models/EngineManifest.ts | 2 +- src/openapi/models/HTTPValidationError.ts | 2 +- src/openapi/models/LicenseInfo.ts | 2 +- src/openapi/models/Mora.ts | 2 +- src/openapi/models/ParseKanaBadRequest.ts | 2 +- src/openapi/models/Preset.ts | 2 +- src/openapi/models/Speaker.ts | 14 +--- src/openapi/models/SpeakerInfo.ts | 2 +- src/openapi/models/SpeakerStyle.ts | 2 +- ...SpeakerSupportPermitedSynthesisMorphing.ts | 37 ---------- .../models/SpeakerSupportedFeatures.ts | 63 ---------------- src/openapi/models/StyleInfo.ts | 2 +- src/openapi/models/SupportedDevicesInfo.ts | 2 +- src/openapi/models/SupportedFeatures.ts | 2 +- src/openapi/models/UpdateInfo.ts | 2 +- src/openapi/models/UserDictWord.ts | 2 +- src/openapi/models/ValidationError.ts | 2 +- src/openapi/models/WordTypes.ts | 2 +- src/openapi/models/index.ts | 2 - src/openapi/runtime.ts | 2 +- 26 files changed, 22 insertions(+), 210 deletions(-) delete mode 100644 src/openapi/models/SpeakerSupportPermitedSynthesisMorphing.ts delete mode 100644 src/openapi/models/SpeakerSupportedFeatures.ts diff --git a/openapi.json b/openapi.json index 2dc5e34967..876eff2151 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1 @@ -{"openapi":"3.0.2","info":{"title":"VOICEVOX Engine","description":"VOICEVOXの音声合成エンジンです。","version":"0.14.0-preview.10"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"クエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Preset Id","type":"integer"},"name":"preset_id","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Is Kana","type":"boolean","default":false},"name":"is_kana","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Accent Phrases Accent Phrases Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Data Mora Data Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Length Mora Length Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Pitch Mora Pitch Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"疑問系のテキストが与えられたら語尾を自動調整する","required":false,"schema":{"title":"Enable Interrogative Upspeak","type":"boolean","description":"疑問系のテキストが与えられたら語尾を自動調整する","default":true},"name":"enable_interrogative_upspeak","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Queries","type":"array","items":{"$ref":"#/components/schemas/AudioQuery"}}}},"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"}}}}}}},"/is_morphable":{"get":{"tags":["音声合成"],"summary":"2人の話者でモーフィングが可能かどうか返す","description":"指定された2人の話者でモーフィング機能を利用可能か返します。\nモーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。\nプロパティが存在しない場合は、モーフィングが許可されているとみなします。","operationId":"is_morphable_is_morphable_get","parameters":[{"required":true,"schema":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Morphable Is Morphable Get","type":"boolean"}}}},"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":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":true,"schema":{"title":"Morph Rate","maximum":1.0,"minimum":0.0,"type":"number"},"name":"morph_rate","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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"}}}}}}},"/connect_waves":{"post":{"tags":["その他"],"summary":"base64エンコードされた複数のwavデータを一つに結合する","description":"base64エンコードされたwavデータを一纏めにし、wavファイルで返します。","operationId":"connect_waves_connect_waves_post","requestBody":{"content":{"application/json":{"schema":{"title":"Waves","type":"array","items":{"type":"string"}}}},"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":{"title":"Response Get Presets Presets Get","type":"array","items":{"$ref":"#/components/schemas/Preset"}}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/core_versions":{"get":{"tags":["その他"],"summary":"Core Versions","operationId":"core_versions_core_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Core Versions Core Versions Get","type":"array","items":{"type":"string"}}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","parameters":[{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Speakers Speakers Get","type":"array","items":{"$ref":"#/components/schemas/Speaker"}}}}},"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エンコードされたものが返されます。\n\nReturns\n-------\nret_data: SpeakerInfo","operationId":"speaker_info_speaker_info_get","parameters":[{"required":true,"schema":{"title":"Speaker Uuid","type":"string"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Response Downloadable Libraries Downloadable Libraries Get","type":"array","items":{"$ref":"#/components/schemas/DownloadableLibrary"}}}}}}}},"/initialize_speaker":{"post":{"tags":["その他"],"summary":"Initialize Speaker","description":"指定されたspeaker_idの話者を初期化します。\n実行しなくても他のAPIは使用できますが、初回実行時に時間がかかることがあります。","operationId":"initialize_speaker_initialize_speaker_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"既に初期化済みの話者の再初期化をスキップするかどうか","required":false,"schema":{"title":"Skip Reinit","type":"boolean","description":"既に初期化済みの話者の再初期化をスキップするかどうか","default":false},"name":"skip_reinit","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":"指定されたspeaker_idの話者が初期化されているかどうかを返します。","operationId":"is_initialized_speaker_is_initialized_speaker_get","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Initialized Speaker Is Initialized Speaker Get","type":"boolean"}}}},"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":{"title":"Response Get User Dict Words User Dict Get","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}}}}}},"/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":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"name":"priority","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Add User Dict Word User Dict Word Post","type":"string"}}}},"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":{"title":"Word Uuid","type":"string"},"name":"word_uuid","in":"path"},{"required":true,"schema":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"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":{"title":"Word Uuid","type":"string"},"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":{"title":"Override","type":"boolean"},"name":"override","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Import Dict Data","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}},"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":{"title":"Core Version","type":"string"},"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","operationId":"setting_get_setting_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["設定"],"summary":"Setting Post","operationId":"setting_post_setting_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setting_post_setting_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccentPhrase":{"title":"AccentPhrase","required":["moras","accent"],"type":"object","properties":{"moras":{"title":"モーラのリスト","type":"array","items":{"$ref":"#/components/schemas/Mora"}},"accent":{"title":"アクセント箇所","type":"integer"},"pause_mora":{"title":"後ろに無音を付けるかどうか","allOf":[{"$ref":"#/components/schemas/Mora"}]},"is_interrogative":{"title":"疑問系かどうか","type":"boolean","default":false}},"description":"アクセント句ごとの情報"},"AudioQuery":{"title":"AudioQuery","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"type":"object","properties":{"accent_phrases":{"title":"アクセント句のリスト","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"},"outputSamplingRate":{"title":"音声データの出力サンプリングレート","type":"integer"},"outputStereo":{"title":"音声データをステレオ出力するか否か","type":"boolean"},"kana":{"title":"[読み取り専用]AquesTalkライクな読み仮名。音声合成クエリとしては無視される","type":"string"}},"description":"音声合成用のクエリ"},"Body_setting_post_setting_post":{"title":"Body_setting_post_setting_post","type":"object","properties":{"cors_policy_mode":{"title":"Cors Policy Mode","type":"string"},"allow_origin":{"title":"Allow Origin","type":"string"}}},"DownloadableLibrary":{"title":"DownloadableLibrary","required":["download_url","bytes","speaker","speaker_info"],"type":"object","properties":{"download_url":{"title":"音声ライブラリのダウンロードURL","type":"string"},"bytes":{"title":"音声ライブラリのバイト数","type":"integer"},"speaker":{"title":"話者情報","allOf":[{"$ref":"#/components/schemas/Speaker"}]},"speaker_info":{"title":"話者の追加情報","allOf":[{"$ref":"#/components/schemas/SpeakerInfo"}]}},"description":"ダウンロード可能な音声ライブラリの情報(最新情報をwebで取得することを考慮して、ローカルの情報はない)"},"EngineManifest":{"title":"EngineManifest","required":["manifest_version","name","brand_name","uuid","url","icon","default_sampling_rate","terms_of_service","update_infos","dependency_licenses","supported_features"],"type":"object","properties":{"manifest_version":{"title":"マニフェストのバージョン","type":"string"},"name":{"title":"エンジン名","type":"string"},"brand_name":{"title":"ブランド名","type":"string"},"uuid":{"title":"エンジンのUUID","type":"string"},"url":{"title":"エンジンのURL","type":"string"},"icon":{"title":"エンジンのアイコンをBASE64エンコードしたもの","type":"string"},"default_sampling_rate":{"title":"デフォルトのサンプリング周波数","type":"integer"},"terms_of_service":{"title":"エンジンの利用規約","type":"string"},"update_infos":{"title":"エンジンのアップデート情報","type":"array","items":{"$ref":"#/components/schemas/UpdateInfo"}},"dependency_licenses":{"title":"依存関係のライセンス情報","type":"array","items":{"$ref":"#/components/schemas/LicenseInfo"}},"downloadable_libraries_path":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのローカルjsonパス","type":"string"},"downloadable_libraries_url":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのAPIのURL","type":"string"},"supported_features":{"title":"エンジンが持つ機能","allOf":[{"$ref":"#/components/schemas/SupportedFeatures"}]}},"description":"エンジン自体に関する情報"},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"LicenseInfo":{"title":"LicenseInfo","required":["name","text"],"type":"object","properties":{"name":{"title":"依存ライブラリ名","type":"string"},"version":{"title":"依存ライブラリのバージョン","type":"string"},"license":{"title":"依存ライブラリのライセンス名","type":"string"},"text":{"title":"依存ライブラリのライセンス本文","type":"string"}},"description":"依存ライブラリのライセンス情報"},"Mora":{"title":"Mora","required":["text","vowel","vowel_length","pitch"],"type":"object","properties":{"text":{"title":"文字","type":"string"},"consonant":{"title":"子音の音素","type":"string"},"consonant_length":{"title":"子音の音長","type":"number"},"vowel":{"title":"母音の音素","type":"string"},"vowel_length":{"title":"母音の音長","type":"number"},"pitch":{"title":"音高","type":"number"}},"description":"モーラ(子音+母音)ごとの情報"},"ParseKanaBadRequest":{"title":"ParseKanaBadRequest","required":["text","error_name","error_args"],"type":"object","properties":{"text":{"title":"エラーメッセージ","type":"string"},"error_name":{"title":"エラー名","type":"string","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":{"title":"エラーを起こした箇所","type":"object","additionalProperties":{"type":"string"}}}},"Preset":{"title":"Preset","required":["id","name","speaker_uuid","style_id","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength"],"type":"object","properties":{"id":{"title":"プリセットID","type":"integer"},"name":{"title":"プリセット名","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"style_id":{"title":"スタイルID","type":"integer"},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"}},"description":"プリセット情報"},"Speaker":{"title":"Speaker","required":["name","speaker_uuid","styles"],"type":"object","properties":{"name":{"title":"名前","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"supported_features":{"title":"スピーカーの対応機能","allOf":[{"$ref":"#/components/schemas/SpeakerSupportedFeatures"}]},"styles":{"title":"スピーカースタイルの一覧","type":"array","items":{"$ref":"#/components/schemas/SpeakerStyle"}},"version":{"title":"Version","type":"string","default":"スピーカーのバージョン"}},"description":"スピーカー情報"},"SpeakerInfo":{"title":"SpeakerInfo","required":["policy","portrait","style_infos"],"type":"object","properties":{"policy":{"title":"policy.md","type":"string"},"portrait":{"title":"portrait.pngをbase64エンコードしたもの","type":"string"},"style_infos":{"title":"スタイルの追加情報","type":"array","items":{"$ref":"#/components/schemas/StyleInfo"}}},"description":"話者の追加情報"},"SpeakerStyle":{"title":"SpeakerStyle","required":["name","id"],"type":"object","properties":{"name":{"title":"スタイル名","type":"string"},"id":{"title":"スタイルID","type":"integer"}},"description":"スピーカーのスタイル情報"},"SpeakerSupportPermitedSynthesisMorphing":{"title":"SpeakerSupportPermitedSynthesisMorphing","enum":["ALL","SELF_ONLY","NOTHING"],"type":"string","description":"An enumeration."},"SpeakerSupportedFeatures":{"title":"SpeakerSupportedFeatures","type":"object","properties":{"permited_synthesis_morphing":{"title":"モーフィング機能への対応","allOf":[{"$ref":"#/components/schemas/SpeakerSupportPermitedSynthesisMorphing"}],"default":"ALL"}},"description":"話者の対応機能の情報"},"StyleInfo":{"title":"StyleInfo","required":["id","icon","voice_samples"],"type":"object","properties":{"id":{"title":"スタイルID","type":"integer"},"icon":{"title":"当該スタイルのアイコンをbase64エンコードしたもの","type":"string"},"portrait":{"title":"当該スタイルのportrait.pngをbase64エンコードしたもの","type":"string"},"voice_samples":{"title":"voice_sampleのwavファイルをbase64エンコードしたもの","type":"array","items":{"type":"string"}}},"description":"スタイルの追加情報"},"SupportedDevicesInfo":{"title":"SupportedDevicesInfo","required":["cpu","cuda","dml"],"type":"object","properties":{"cpu":{"title":"CPUに対応しているか","type":"boolean"},"cuda":{"title":"CUDA(Nvidia GPU)に対応しているか","type":"boolean"},"dml":{"title":"DirectML(Nvidia GPU/Radeon GPU等)に対応しているか","type":"boolean"}},"description":"対応しているデバイスの情報"},"SupportedFeatures":{"title":"SupportedFeatures","required":["adjust_mora_pitch","adjust_phoneme_length","adjust_speed_scale","adjust_pitch_scale","adjust_intonation_scale","adjust_volume_scale","interrogative_upspeak","synthesis_morphing"],"type":"object","properties":{"adjust_mora_pitch":{"title":"モーラごとの音高の調整","type":"boolean"},"adjust_phoneme_length":{"title":"音素ごとの長さの調整","type":"boolean"},"adjust_speed_scale":{"title":"全体の話速の調整","type":"boolean"},"adjust_pitch_scale":{"title":"全体の音高の調整","type":"boolean"},"adjust_intonation_scale":{"title":"全体の抑揚の調整","type":"boolean"},"adjust_volume_scale":{"title":"全体の音量の調整","type":"boolean"},"interrogative_upspeak":{"title":"疑問文の自動調整","type":"boolean"},"synthesis_morphing":{"title":"2人の話者でモーフィングした音声を合成","type":"boolean"}},"description":"エンジンが持つ機能の一覧"},"UpdateInfo":{"title":"UpdateInfo","required":["version","descriptions"],"type":"object","properties":{"version":{"title":"エンジンのバージョン名","type":"string"},"descriptions":{"title":"アップデートの詳細についての説明","type":"array","items":{"type":"string"}},"contributors":{"title":"貢献者名","type":"array","items":{"type":"string"}}},"description":"エンジンのアップデート情報"},"UserDictWord":{"title":"UserDictWord","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"],"type":"object","properties":{"surface":{"title":"表層形","type":"string"},"priority":{"title":"優先度","maximum":10.0,"minimum":0.0,"type":"integer"},"context_id":{"title":"文脈ID","type":"integer","default":1348},"part_of_speech":{"title":"品詞","type":"string"},"part_of_speech_detail_1":{"title":"品詞細分類1","type":"string"},"part_of_speech_detail_2":{"title":"品詞細分類2","type":"string"},"part_of_speech_detail_3":{"title":"品詞細分類3","type":"string"},"inflectional_type":{"title":"活用型","type":"string"},"inflectional_form":{"title":"活用形","type":"string"},"stem":{"title":"原形","type":"string"},"yomi":{"title":"読み","type":"string"},"pronunciation":{"title":"発音","type":"string"},"accent_type":{"title":"アクセント型","type":"integer"},"mora_count":{"title":"モーラ数","type":"integer"},"accent_associative_rule":{"title":"アクセント結合規則","type":"string"}},"description":"辞書のコンパイルに使われる情報"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}},"WordTypes":{"title":"WordTypes","enum":["PROPER_NOUN","COMMON_NOUN","VERB","ADJECTIVE","SUFFIX"],"type":"string","description":"\n fastapiでword_type引数を検証する時に使用するクラス\n "}}}} \ No newline at end of file +{"openapi":"3.0.2","info":{"title":"VOICEVOX Engine","description":"VOICEVOXの音声合成エンジンです。","version":"0.14.0-preview.8"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"クエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Preset Id","type":"integer"},"name":"preset_id","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Is Kana","type":"boolean","default":false},"name":"is_kana","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Accent Phrases Accent Phrases Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Data Mora Data Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Length Mora Length Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Pitch Mora Pitch Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"疑問系のテキストが与えられたら語尾を自動調整する","required":false,"schema":{"title":"Enable Interrogative Upspeak","type":"boolean","description":"疑問系のテキストが与えられたら語尾を自動調整する","default":true},"name":"enable_interrogative_upspeak","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Queries","type":"array","items":{"$ref":"#/components/schemas/AudioQuery"}}}},"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"}}}}}}},"/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":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":true,"schema":{"title":"Morph Rate","maximum":1.0,"minimum":0.0,"type":"number"},"name":"morph_rate","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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"}}}}}}},"/connect_waves":{"post":{"tags":["その他"],"summary":"base64エンコードされた複数のwavデータを一つに結合する","description":"base64エンコードされたwavデータを一纏めにし、wavファイルで返します。","operationId":"connect_waves_connect_waves_post","requestBody":{"content":{"application/json":{"schema":{"title":"Waves","type":"array","items":{"type":"string"}}}},"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":{"title":"Response Get Presets Presets Get","type":"array","items":{"$ref":"#/components/schemas/Preset"}}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/core_versions":{"get":{"tags":["その他"],"summary":"Core Versions","operationId":"core_versions_core_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Core Versions Core Versions Get","type":"array","items":{"type":"string"}}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","parameters":[{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Speakers Speakers Get","type":"array","items":{"$ref":"#/components/schemas/Speaker"}}}}},"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エンコードされたものが返されます。\n\nReturns\n-------\nret_data: SpeakerInfo","operationId":"speaker_info_speaker_info_get","parameters":[{"required":true,"schema":{"title":"Speaker Uuid","type":"string"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Response Downloadable Libraries Downloadable Libraries Get","type":"array","items":{"$ref":"#/components/schemas/DownloadableLibrary"}}}}}}}},"/initialize_speaker":{"post":{"tags":["その他"],"summary":"Initialize Speaker","description":"指定されたspeaker_idの話者を初期化します。\n実行しなくても他のAPIは使用できますが、初回実行時に時間がかかることがあります。","operationId":"initialize_speaker_initialize_speaker_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"既に初期化済みの話者の再初期化をスキップするかどうか","required":false,"schema":{"title":"Skip Reinit","type":"boolean","description":"既に初期化済みの話者の再初期化をスキップするかどうか","default":false},"name":"skip_reinit","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":"指定されたspeaker_idの話者が初期化されているかどうかを返します。","operationId":"is_initialized_speaker_is_initialized_speaker_get","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Initialized Speaker Is Initialized Speaker Get","type":"boolean"}}}},"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":{"title":"Response Get User Dict Words User Dict Get","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}}}}}},"/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":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"name":"priority","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Add User Dict Word User Dict Word Post","type":"string"}}}},"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":{"title":"Word Uuid","type":"string"},"name":"word_uuid","in":"path"},{"required":true,"schema":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"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":{"title":"Word Uuid","type":"string"},"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":{"title":"Override","type":"boolean"},"name":"override","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Import Dict Data","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}},"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":{"title":"Core Version","type":"string"},"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","operationId":"setting_get_setting_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["設定"],"summary":"Setting Post","operationId":"setting_post_setting_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setting_post_setting_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccentPhrase":{"title":"AccentPhrase","required":["moras","accent"],"type":"object","properties":{"moras":{"title":"モーラのリスト","type":"array","items":{"$ref":"#/components/schemas/Mora"}},"accent":{"title":"アクセント箇所","type":"integer"},"pause_mora":{"title":"後ろに無音を付けるかどうか","allOf":[{"$ref":"#/components/schemas/Mora"}]},"is_interrogative":{"title":"疑問系かどうか","type":"boolean","default":false}},"description":"アクセント句ごとの情報"},"AudioQuery":{"title":"AudioQuery","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"type":"object","properties":{"accent_phrases":{"title":"アクセント句のリスト","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"},"outputSamplingRate":{"title":"音声データの出力サンプリングレート","type":"integer"},"outputStereo":{"title":"音声データをステレオ出力するか否か","type":"boolean"},"kana":{"title":"[読み取り専用]AquesTalkライクな読み仮名。音声合成クエリとしては無視される","type":"string"}},"description":"音声合成用のクエリ"},"Body_setting_post_setting_post":{"title":"Body_setting_post_setting_post","type":"object","properties":{"cors_policy_mode":{"title":"Cors Policy Mode","type":"string"},"allow_origin":{"title":"Allow Origin","type":"string"}}},"DownloadableLibrary":{"title":"DownloadableLibrary","required":["download_url","bytes","speaker","speaker_info"],"type":"object","properties":{"download_url":{"title":"音声ライブラリのダウンロードURL","type":"string"},"bytes":{"title":"音声ライブラリのバイト数","type":"integer"},"speaker":{"title":"話者情報","allOf":[{"$ref":"#/components/schemas/Speaker"}]},"speaker_info":{"title":"話者の追加情報","allOf":[{"$ref":"#/components/schemas/SpeakerInfo"}]}},"description":"ダウンロード可能な音声ライブラリの情報(最新情報をwebで取得することを考慮して、ローカルの情報はない)"},"EngineManifest":{"title":"EngineManifest","required":["manifest_version","name","brand_name","uuid","url","icon","default_sampling_rate","terms_of_service","update_infos","dependency_licenses","supported_features"],"type":"object","properties":{"manifest_version":{"title":"マニフェストのバージョン","type":"string"},"name":{"title":"エンジン名","type":"string"},"brand_name":{"title":"ブランド名","type":"string"},"uuid":{"title":"エンジンのUUID","type":"string"},"url":{"title":"エンジンのURL","type":"string"},"icon":{"title":"エンジンのアイコンをBASE64エンコードしたもの","type":"string"},"default_sampling_rate":{"title":"デフォルトのサンプリング周波数","type":"integer"},"terms_of_service":{"title":"エンジンの利用規約","type":"string"},"update_infos":{"title":"エンジンのアップデート情報","type":"array","items":{"$ref":"#/components/schemas/UpdateInfo"}},"dependency_licenses":{"title":"依存関係のライセンス情報","type":"array","items":{"$ref":"#/components/schemas/LicenseInfo"}},"downloadable_libraries_path":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのローカルjsonパス","type":"string"},"downloadable_libraries_url":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのAPIのURL","type":"string"},"supported_features":{"title":"エンジンが持つ機能","allOf":[{"$ref":"#/components/schemas/SupportedFeatures"}]}},"description":"エンジン自体に関する情報"},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"LicenseInfo":{"title":"LicenseInfo","required":["name","text"],"type":"object","properties":{"name":{"title":"依存ライブラリ名","type":"string"},"version":{"title":"依存ライブラリのバージョン","type":"string"},"license":{"title":"依存ライブラリのライセンス名","type":"string"},"text":{"title":"依存ライブラリのライセンス本文","type":"string"}},"description":"依存ライブラリのライセンス情報"},"Mora":{"title":"Mora","required":["text","vowel","vowel_length","pitch"],"type":"object","properties":{"text":{"title":"文字","type":"string"},"consonant":{"title":"子音の音素","type":"string"},"consonant_length":{"title":"子音の音長","type":"number"},"vowel":{"title":"母音の音素","type":"string"},"vowel_length":{"title":"母音の音長","type":"number"},"pitch":{"title":"音高","type":"number"}},"description":"モーラ(子音+母音)ごとの情報"},"ParseKanaBadRequest":{"title":"ParseKanaBadRequest","required":["text","error_name","error_args"],"type":"object","properties":{"text":{"title":"エラーメッセージ","type":"string"},"error_name":{"title":"エラー名","type":"string","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":{"title":"エラーを起こした箇所","type":"object","additionalProperties":{"type":"string"}}}},"Preset":{"title":"Preset","required":["id","name","speaker_uuid","style_id","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength"],"type":"object","properties":{"id":{"title":"プリセットID","type":"integer"},"name":{"title":"プリセット名","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"style_id":{"title":"スタイルID","type":"integer"},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"}},"description":"プリセット情報"},"Speaker":{"title":"Speaker","required":["name","speaker_uuid","styles"],"type":"object","properties":{"name":{"title":"名前","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"styles":{"title":"スピーカースタイルの一覧","type":"array","items":{"$ref":"#/components/schemas/SpeakerStyle"}},"version":{"title":"Version","type":"string","default":"スピーカーのバージョン"}},"description":"スピーカー情報"},"SpeakerInfo":{"title":"SpeakerInfo","required":["policy","portrait","style_infos"],"type":"object","properties":{"policy":{"title":"policy.md","type":"string"},"portrait":{"title":"portrait.pngをbase64エンコードしたもの","type":"string"},"style_infos":{"title":"スタイルの追加情報","type":"array","items":{"$ref":"#/components/schemas/StyleInfo"}}},"description":"話者の追加情報"},"SpeakerStyle":{"title":"SpeakerStyle","required":["name","id"],"type":"object","properties":{"name":{"title":"スタイル名","type":"string"},"id":{"title":"スタイルID","type":"integer"}},"description":"スピーカーのスタイル情報"},"StyleInfo":{"title":"StyleInfo","required":["id","icon","voice_samples"],"type":"object","properties":{"id":{"title":"スタイルID","type":"integer"},"icon":{"title":"当該スタイルのアイコンをbase64エンコードしたもの","type":"string"},"portrait":{"title":"当該スタイルのportrait.pngをbase64エンコードしたもの","type":"string"},"voice_samples":{"title":"voice_sampleのwavファイルをbase64エンコードしたもの","type":"array","items":{"type":"string"}}},"description":"スタイルの追加情報"},"SupportedDevicesInfo":{"title":"SupportedDevicesInfo","required":["cpu","cuda","dml"],"type":"object","properties":{"cpu":{"title":"CPUに対応しているか","type":"boolean"},"cuda":{"title":"CUDA(Nvidia GPU)に対応しているか","type":"boolean"},"dml":{"title":"DirectML(Nvidia GPU/Radeon GPU等)に対応しているか","type":"boolean"}},"description":"対応しているデバイスの情報"},"SupportedFeatures":{"title":"SupportedFeatures","required":["adjust_mora_pitch","adjust_phoneme_length","adjust_speed_scale","adjust_pitch_scale","adjust_intonation_scale","adjust_volume_scale","interrogative_upspeak","synthesis_morphing"],"type":"object","properties":{"adjust_mora_pitch":{"title":"モーラごとの音高の調整","type":"boolean"},"adjust_phoneme_length":{"title":"音素ごとの長さの調整","type":"boolean"},"adjust_speed_scale":{"title":"全体の話速の調整","type":"boolean"},"adjust_pitch_scale":{"title":"全体の音高の調整","type":"boolean"},"adjust_intonation_scale":{"title":"全体の抑揚の調整","type":"boolean"},"adjust_volume_scale":{"title":"全体の音量の調整","type":"boolean"},"interrogative_upspeak":{"title":"疑問文の自動調整","type":"boolean"},"synthesis_morphing":{"title":"2人の話者でモーフィングした音声を合成","type":"boolean"}},"description":"エンジンが持つ機能の一覧"},"UpdateInfo":{"title":"UpdateInfo","required":["version","descriptions"],"type":"object","properties":{"version":{"title":"エンジンのバージョン名","type":"string"},"descriptions":{"title":"アップデートの詳細についての説明","type":"array","items":{"type":"string"}},"contributors":{"title":"貢献者名","type":"array","items":{"type":"string"}}},"description":"エンジンのアップデート情報"},"UserDictWord":{"title":"UserDictWord","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"],"type":"object","properties":{"surface":{"title":"表層形","type":"string"},"priority":{"title":"優先度","maximum":10.0,"minimum":0.0,"type":"integer"},"context_id":{"title":"文脈ID","type":"integer","default":1348},"part_of_speech":{"title":"品詞","type":"string"},"part_of_speech_detail_1":{"title":"品詞細分類1","type":"string"},"part_of_speech_detail_2":{"title":"品詞細分類2","type":"string"},"part_of_speech_detail_3":{"title":"品詞細分類3","type":"string"},"inflectional_type":{"title":"活用型","type":"string"},"inflectional_form":{"title":"活用形","type":"string"},"stem":{"title":"原形","type":"string"},"yomi":{"title":"読み","type":"string"},"pronunciation":{"title":"発音","type":"string"},"accent_type":{"title":"アクセント型","type":"integer"},"mora_count":{"title":"モーラ数","type":"integer"},"accent_associative_rule":{"title":"アクセント結合規則","type":"string"}},"description":"辞書のコンパイルに使われる情報"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}},"WordTypes":{"title":"WordTypes","enum":["PROPER_NOUN","COMMON_NOUN","VERB","ADJECTIVE","SUFFIX"],"type":"string","description":"\n fastapiでword_type引数を検証する時に使用するクラス\n "}}}} \ No newline at end of file diff --git a/src/openapi/.openapi-generator/FILES b/src/openapi/.openapi-generator/FILES index 689c8cda06..f2a6ed74f6 100644 --- a/src/openapi/.openapi-generator/FILES +++ b/src/openapi/.openapi-generator/FILES @@ -13,8 +13,6 @@ models/Preset.ts models/Speaker.ts models/SpeakerInfo.ts models/SpeakerStyle.ts -models/SpeakerSupportPermitedSynthesisMorphing.ts -models/SpeakerSupportedFeatures.ts models/StyleInfo.ts models/SupportedDevicesInfo.ts models/SupportedFeatures.ts diff --git a/src/openapi/apis/DefaultApi.ts b/src/openapi/apis/DefaultApi.ts index ead5543c2f..1e2688cf60 100644 --- a/src/openapi/apis/DefaultApi.ts +++ b/src/openapi/apis/DefaultApi.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -110,12 +110,6 @@ export interface IsInitializedSpeakerIsInitializedSpeakerGetRequest { coreVersion?: string; } -export interface IsMorphableIsMorphableGetRequest { - baseSpeaker: number; - targetSpeaker: number; - coreVersion?: string; -} - export interface MoraDataMoraDataPostRequest { speaker: number; accentPhrase: Array; @@ -438,24 +432,6 @@ export interface DefaultApiInterface { */ isInitializedSpeakerIsInitializedSpeakerGet(requestParameters: IsInitializedSpeakerIsInitializedSpeakerGetRequest, initOverrides?: RequestInit): Promise; - /** - * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 - * @summary 2人の話者でモーフィングが可能かどうか返す - * @param {number} baseSpeaker - * @param {number} targetSpeaker - * @param {string} [coreVersion] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApiInterface - */ - isMorphableIsMorphableGetRaw(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise>; - - /** - * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 - * 2人の話者でモーフィングが可能かどうか返す - */ - isMorphableIsMorphableGet(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise; - /** * * @summary アクセント句から音高・音素長を得る @@ -1261,54 +1237,6 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { return await response.value(); } - /** - * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 - * 2人の話者でモーフィングが可能かどうか返す - */ - async isMorphableIsMorphableGetRaw(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.baseSpeaker === null || requestParameters.baseSpeaker === undefined) { - throw new runtime.RequiredError('baseSpeaker','Required parameter requestParameters.baseSpeaker was null or undefined when calling isMorphableIsMorphableGet.'); - } - - if (requestParameters.targetSpeaker === null || requestParameters.targetSpeaker === undefined) { - throw new runtime.RequiredError('targetSpeaker','Required parameter requestParameters.targetSpeaker was null or undefined when calling isMorphableIsMorphableGet.'); - } - - const queryParameters: any = {}; - - if (requestParameters.baseSpeaker !== undefined) { - queryParameters['base_speaker'] = requestParameters.baseSpeaker; - } - - if (requestParameters.targetSpeaker !== undefined) { - queryParameters['target_speaker'] = requestParameters.targetSpeaker; - } - - if (requestParameters.coreVersion !== undefined) { - queryParameters['core_version'] = requestParameters.coreVersion; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/is_morphable`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.TextApiResponse(response) as any; - } - - /** - * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 - * 2人の話者でモーフィングが可能かどうか返す - */ - async isMorphableIsMorphableGet(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise { - const response = await this.isMorphableIsMorphableGetRaw(requestParameters, initOverrides); - return await response.value(); - } - /** * アクセント句から音高・音素長を得る */ diff --git a/src/openapi/models/AccentPhrase.ts b/src/openapi/models/AccentPhrase.ts index 12a7096d84..7eedcd913d 100644 --- a/src/openapi/models/AccentPhrase.ts +++ b/src/openapi/models/AccentPhrase.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/AudioQuery.ts b/src/openapi/models/AudioQuery.ts index 50c08fe29c..01c2bdedcb 100644 --- a/src/openapi/models/AudioQuery.ts +++ b/src/openapi/models/AudioQuery.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/DownloadableLibrary.ts b/src/openapi/models/DownloadableLibrary.ts index 3ea5cc4282..1596c67ea3 100644 --- a/src/openapi/models/DownloadableLibrary.ts +++ b/src/openapi/models/DownloadableLibrary.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/EngineManifest.ts b/src/openapi/models/EngineManifest.ts index 6726287147..6284725f39 100644 --- a/src/openapi/models/EngineManifest.ts +++ b/src/openapi/models/EngineManifest.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/HTTPValidationError.ts b/src/openapi/models/HTTPValidationError.ts index 4227b682ad..9753e3ac64 100644 --- a/src/openapi/models/HTTPValidationError.ts +++ b/src/openapi/models/HTTPValidationError.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/LicenseInfo.ts b/src/openapi/models/LicenseInfo.ts index 27296f4085..67eb067e8e 100644 --- a/src/openapi/models/LicenseInfo.ts +++ b/src/openapi/models/LicenseInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Mora.ts b/src/openapi/models/Mora.ts index 64b561b142..50bb037ab5 100644 --- a/src/openapi/models/Mora.ts +++ b/src/openapi/models/Mora.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/ParseKanaBadRequest.ts b/src/openapi/models/ParseKanaBadRequest.ts index a72a23bfeb..85a3ac2109 100644 --- a/src/openapi/models/ParseKanaBadRequest.ts +++ b/src/openapi/models/ParseKanaBadRequest.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Preset.ts b/src/openapi/models/Preset.ts index a3d5a0c98c..45a82791b5 100644 --- a/src/openapi/models/Preset.ts +++ b/src/openapi/models/Preset.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Speaker.ts b/src/openapi/models/Speaker.ts index e1e283d84f..c0f6371e5f 100644 --- a/src/openapi/models/Speaker.ts +++ b/src/openapi/models/Speaker.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -18,10 +18,6 @@ import { SpeakerStyleFromJSON, SpeakerStyleFromJSONTyped, SpeakerStyleToJSON, - SpeakerSupportedFeatures, - SpeakerSupportedFeaturesFromJSON, - SpeakerSupportedFeaturesFromJSONTyped, - SpeakerSupportedFeaturesToJSON, } from './'; /** @@ -42,12 +38,6 @@ export interface Speaker { * @memberof Speaker */ speakerUuid: string; - /** - * - * @type {SpeakerSupportedFeatures} - * @memberof Speaker - */ - supportedFeatures?: SpeakerSupportedFeatures | null; /** * * @type {Array} @@ -74,7 +64,6 @@ export function SpeakerFromJSONTyped(json: any, ignoreDiscriminator: boolean): S 'name': json['name'], 'speakerUuid': json['speaker_uuid'], - 'supportedFeatures': !exists(json, 'supported_features') ? undefined : SpeakerSupportedFeaturesFromJSON(json['supported_features']), 'styles': ((json['styles'] as Array).map(SpeakerStyleFromJSON)), 'version': !exists(json, 'version') ? undefined : json['version'], }; @@ -91,7 +80,6 @@ export function SpeakerToJSON(value?: Speaker | null): any { 'name': value.name, 'speaker_uuid': value.speakerUuid, - 'supported_features': SpeakerSupportedFeaturesToJSON(value.supportedFeatures), 'styles': ((value.styles as Array).map(SpeakerStyleToJSON)), 'version': value.version, }; diff --git a/src/openapi/models/SpeakerInfo.ts b/src/openapi/models/SpeakerInfo.ts index e33840ce91..b876dbe388 100644 --- a/src/openapi/models/SpeakerInfo.ts +++ b/src/openapi/models/SpeakerInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SpeakerStyle.ts b/src/openapi/models/SpeakerStyle.ts index a13d9ad1e9..f275bcb5cf 100644 --- a/src/openapi/models/SpeakerStyle.ts +++ b/src/openapi/models/SpeakerStyle.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SpeakerSupportPermitedSynthesisMorphing.ts b/src/openapi/models/SpeakerSupportPermitedSynthesisMorphing.ts deleted file mode 100644 index 29ccf9c994..0000000000 --- a/src/openapi/models/SpeakerSupportPermitedSynthesisMorphing.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * VOICEVOX Engine - * VOICEVOXの音声合成エンジンです。 - * - * The version of the OpenAPI document: 0.14.0-preview.10 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -/** - * An enumeration. - * @export - * @enum {string} - */ -export enum SpeakerSupportPermitedSynthesisMorphing { - All = 'ALL', - SelfOnly = 'SELF_ONLY', - Nothing = 'NOTHING' -} - -export function SpeakerSupportPermitedSynthesisMorphingFromJSON(json: any): SpeakerSupportPermitedSynthesisMorphing { - return SpeakerSupportPermitedSynthesisMorphingFromJSONTyped(json, false); -} - -export function SpeakerSupportPermitedSynthesisMorphingFromJSONTyped(json: any, ignoreDiscriminator: boolean): SpeakerSupportPermitedSynthesisMorphing { - return json as SpeakerSupportPermitedSynthesisMorphing; -} - -export function SpeakerSupportPermitedSynthesisMorphingToJSON(value?: SpeakerSupportPermitedSynthesisMorphing | null): any { - return value as any; -} - diff --git a/src/openapi/models/SpeakerSupportedFeatures.ts b/src/openapi/models/SpeakerSupportedFeatures.ts deleted file mode 100644 index 9f709a8d81..0000000000 --- a/src/openapi/models/SpeakerSupportedFeatures.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * VOICEVOX Engine - * VOICEVOXの音声合成エンジンです。 - * - * The version of the OpenAPI document: 0.14.0-preview.10 - * - * - * 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 { - SpeakerSupportPermitedSynthesisMorphing, - SpeakerSupportPermitedSynthesisMorphingFromJSON, - SpeakerSupportPermitedSynthesisMorphingFromJSONTyped, - SpeakerSupportPermitedSynthesisMorphingToJSON, -} from './'; - -/** - * 話者の対応機能の情報 - * @export - * @interface SpeakerSupportedFeatures - */ -export interface SpeakerSupportedFeatures { - /** - * - * @type {SpeakerSupportPermitedSynthesisMorphing} - * @memberof SpeakerSupportedFeatures - */ - permitedSynthesisMorphing?: SpeakerSupportPermitedSynthesisMorphing | null; -} - -export function SpeakerSupportedFeaturesFromJSON(json: any): SpeakerSupportedFeatures { - return SpeakerSupportedFeaturesFromJSONTyped(json, false); -} - -export function SpeakerSupportedFeaturesFromJSONTyped(json: any, ignoreDiscriminator: boolean): SpeakerSupportedFeatures { - if ((json === undefined) || (json === null)) { - return json; - } - return { - - 'permitedSynthesisMorphing': !exists(json, 'permited_synthesis_morphing') ? undefined : SpeakerSupportPermitedSynthesisMorphingFromJSON(json['permited_synthesis_morphing']), - }; -} - -export function SpeakerSupportedFeaturesToJSON(value?: SpeakerSupportedFeatures | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - - 'permited_synthesis_morphing': SpeakerSupportPermitedSynthesisMorphingToJSON(value.permitedSynthesisMorphing), - }; -} - diff --git a/src/openapi/models/StyleInfo.ts b/src/openapi/models/StyleInfo.ts index 57c7aa5301..fe68c1c355 100644 --- a/src/openapi/models/StyleInfo.ts +++ b/src/openapi/models/StyleInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SupportedDevicesInfo.ts b/src/openapi/models/SupportedDevicesInfo.ts index abff8b9fa2..2cc7b0aad0 100644 --- a/src/openapi/models/SupportedDevicesInfo.ts +++ b/src/openapi/models/SupportedDevicesInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SupportedFeatures.ts b/src/openapi/models/SupportedFeatures.ts index 0402fca9fb..34998efba3 100644 --- a/src/openapi/models/SupportedFeatures.ts +++ b/src/openapi/models/SupportedFeatures.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/UpdateInfo.ts b/src/openapi/models/UpdateInfo.ts index f693c7de52..10ccbfb484 100644 --- a/src/openapi/models/UpdateInfo.ts +++ b/src/openapi/models/UpdateInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/UserDictWord.ts b/src/openapi/models/UserDictWord.ts index a999f178ed..ac723d3eca 100644 --- a/src/openapi/models/UserDictWord.ts +++ b/src/openapi/models/UserDictWord.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/ValidationError.ts b/src/openapi/models/ValidationError.ts index f1ffa28bc6..9b971bc813 100644 --- a/src/openapi/models/ValidationError.ts +++ b/src/openapi/models/ValidationError.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/WordTypes.ts b/src/openapi/models/WordTypes.ts index 4cbce1e62a..89e97a7400 100644 --- a/src/openapi/models/WordTypes.ts +++ b/src/openapi/models/WordTypes.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/index.ts b/src/openapi/models/index.ts index 1fb3d41484..3da96f9e1f 100644 --- a/src/openapi/models/index.ts +++ b/src/openapi/models/index.ts @@ -12,8 +12,6 @@ export * from './Preset'; export * from './Speaker'; export * from './SpeakerInfo'; export * from './SpeakerStyle'; -export * from './SpeakerSupportPermitedSynthesisMorphing'; -export * from './SpeakerSupportedFeatures'; export * from './StyleInfo'; export * from './SupportedDevicesInfo'; export * from './SupportedFeatures'; diff --git a/src/openapi/runtime.ts b/src/openapi/runtime.ts index 44f516c1b9..acc5b242c9 100644 --- a/src/openapi/runtime.ts +++ b/src/openapi/runtime.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.8 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). From fe4ce2db6403fef300efcac33125588bb4957e9a Mon Sep 17 00:00:00 2001 From: segu_g Date: Thu, 19 Jan 2023 19:55:19 +0900 Subject: [PATCH 04/22] update openapi.json (0.14.0-preview.10 dummy) --- openapi.json | 2 +- src/openapi/.openapi-generator/FILES | 2 + src/openapi/apis/DefaultApi.ts | 74 ++++++++++++++++++- src/openapi/models/AccentPhrase.ts | 2 +- src/openapi/models/AudioQuery.ts | 2 +- src/openapi/models/DownloadableLibrary.ts | 2 +- src/openapi/models/EngineManifest.ts | 2 +- src/openapi/models/HTTPValidationError.ts | 2 +- src/openapi/models/LicenseInfo.ts | 2 +- src/openapi/models/Mora.ts | 2 +- src/openapi/models/ParseKanaBadRequest.ts | 2 +- src/openapi/models/Preset.ts | 2 +- src/openapi/models/Speaker.ts | 14 +++- src/openapi/models/SpeakerInfo.ts | 2 +- src/openapi/models/SpeakerStyle.ts | 2 +- ...peakerSupportPermittedSynthesisMorphing.ts | 37 ++++++++++ .../models/SpeakerSupportedFeatures.ts | 63 ++++++++++++++++ src/openapi/models/StyleInfo.ts | 2 +- src/openapi/models/SupportedDevicesInfo.ts | 2 +- src/openapi/models/SupportedFeatures.ts | 2 +- src/openapi/models/UpdateInfo.ts | 2 +- src/openapi/models/UserDictWord.ts | 2 +- src/openapi/models/ValidationError.ts | 2 +- src/openapi/models/WordTypes.ts | 2 +- src/openapi/models/index.ts | 2 + src/openapi/runtime.ts | 2 +- 26 files changed, 210 insertions(+), 22 deletions(-) create mode 100644 src/openapi/models/SpeakerSupportPermittedSynthesisMorphing.ts create mode 100644 src/openapi/models/SpeakerSupportedFeatures.ts diff --git a/openapi.json b/openapi.json index 876eff2151..0705a53e10 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1 @@ -{"openapi":"3.0.2","info":{"title":"VOICEVOX Engine","description":"VOICEVOXの音声合成エンジンです。","version":"0.14.0-preview.8"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"クエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Preset Id","type":"integer"},"name":"preset_id","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Is Kana","type":"boolean","default":false},"name":"is_kana","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Accent Phrases Accent Phrases Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Data Mora Data Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Length Mora Length Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Pitch Mora Pitch Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"疑問系のテキストが与えられたら語尾を自動調整する","required":false,"schema":{"title":"Enable Interrogative Upspeak","type":"boolean","description":"疑問系のテキストが与えられたら語尾を自動調整する","default":true},"name":"enable_interrogative_upspeak","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Queries","type":"array","items":{"$ref":"#/components/schemas/AudioQuery"}}}},"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"}}}}}}},"/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":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":true,"schema":{"title":"Morph Rate","maximum":1.0,"minimum":0.0,"type":"number"},"name":"morph_rate","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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"}}}}}}},"/connect_waves":{"post":{"tags":["その他"],"summary":"base64エンコードされた複数のwavデータを一つに結合する","description":"base64エンコードされたwavデータを一纏めにし、wavファイルで返します。","operationId":"connect_waves_connect_waves_post","requestBody":{"content":{"application/json":{"schema":{"title":"Waves","type":"array","items":{"type":"string"}}}},"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":{"title":"Response Get Presets Presets Get","type":"array","items":{"$ref":"#/components/schemas/Preset"}}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/core_versions":{"get":{"tags":["その他"],"summary":"Core Versions","operationId":"core_versions_core_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Core Versions Core Versions Get","type":"array","items":{"type":"string"}}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","parameters":[{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Speakers Speakers Get","type":"array","items":{"$ref":"#/components/schemas/Speaker"}}}}},"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エンコードされたものが返されます。\n\nReturns\n-------\nret_data: SpeakerInfo","operationId":"speaker_info_speaker_info_get","parameters":[{"required":true,"schema":{"title":"Speaker Uuid","type":"string"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Response Downloadable Libraries Downloadable Libraries Get","type":"array","items":{"$ref":"#/components/schemas/DownloadableLibrary"}}}}}}}},"/initialize_speaker":{"post":{"tags":["その他"],"summary":"Initialize Speaker","description":"指定されたspeaker_idの話者を初期化します。\n実行しなくても他のAPIは使用できますが、初回実行時に時間がかかることがあります。","operationId":"initialize_speaker_initialize_speaker_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"既に初期化済みの話者の再初期化をスキップするかどうか","required":false,"schema":{"title":"Skip Reinit","type":"boolean","description":"既に初期化済みの話者の再初期化をスキップするかどうか","default":false},"name":"skip_reinit","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":"指定されたspeaker_idの話者が初期化されているかどうかを返します。","operationId":"is_initialized_speaker_is_initialized_speaker_get","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Initialized Speaker Is Initialized Speaker Get","type":"boolean"}}}},"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":{"title":"Response Get User Dict Words User Dict Get","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}}}}}},"/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":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"name":"priority","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Add User Dict Word User Dict Word Post","type":"string"}}}},"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":{"title":"Word Uuid","type":"string"},"name":"word_uuid","in":"path"},{"required":true,"schema":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"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":{"title":"Word Uuid","type":"string"},"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":{"title":"Override","type":"boolean"},"name":"override","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Import Dict Data","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}},"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":{"title":"Core Version","type":"string"},"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","operationId":"setting_get_setting_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["設定"],"summary":"Setting Post","operationId":"setting_post_setting_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setting_post_setting_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccentPhrase":{"title":"AccentPhrase","required":["moras","accent"],"type":"object","properties":{"moras":{"title":"モーラのリスト","type":"array","items":{"$ref":"#/components/schemas/Mora"}},"accent":{"title":"アクセント箇所","type":"integer"},"pause_mora":{"title":"後ろに無音を付けるかどうか","allOf":[{"$ref":"#/components/schemas/Mora"}]},"is_interrogative":{"title":"疑問系かどうか","type":"boolean","default":false}},"description":"アクセント句ごとの情報"},"AudioQuery":{"title":"AudioQuery","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"type":"object","properties":{"accent_phrases":{"title":"アクセント句のリスト","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"},"outputSamplingRate":{"title":"音声データの出力サンプリングレート","type":"integer"},"outputStereo":{"title":"音声データをステレオ出力するか否か","type":"boolean"},"kana":{"title":"[読み取り専用]AquesTalkライクな読み仮名。音声合成クエリとしては無視される","type":"string"}},"description":"音声合成用のクエリ"},"Body_setting_post_setting_post":{"title":"Body_setting_post_setting_post","type":"object","properties":{"cors_policy_mode":{"title":"Cors Policy Mode","type":"string"},"allow_origin":{"title":"Allow Origin","type":"string"}}},"DownloadableLibrary":{"title":"DownloadableLibrary","required":["download_url","bytes","speaker","speaker_info"],"type":"object","properties":{"download_url":{"title":"音声ライブラリのダウンロードURL","type":"string"},"bytes":{"title":"音声ライブラリのバイト数","type":"integer"},"speaker":{"title":"話者情報","allOf":[{"$ref":"#/components/schemas/Speaker"}]},"speaker_info":{"title":"話者の追加情報","allOf":[{"$ref":"#/components/schemas/SpeakerInfo"}]}},"description":"ダウンロード可能な音声ライブラリの情報(最新情報をwebで取得することを考慮して、ローカルの情報はない)"},"EngineManifest":{"title":"EngineManifest","required":["manifest_version","name","brand_name","uuid","url","icon","default_sampling_rate","terms_of_service","update_infos","dependency_licenses","supported_features"],"type":"object","properties":{"manifest_version":{"title":"マニフェストのバージョン","type":"string"},"name":{"title":"エンジン名","type":"string"},"brand_name":{"title":"ブランド名","type":"string"},"uuid":{"title":"エンジンのUUID","type":"string"},"url":{"title":"エンジンのURL","type":"string"},"icon":{"title":"エンジンのアイコンをBASE64エンコードしたもの","type":"string"},"default_sampling_rate":{"title":"デフォルトのサンプリング周波数","type":"integer"},"terms_of_service":{"title":"エンジンの利用規約","type":"string"},"update_infos":{"title":"エンジンのアップデート情報","type":"array","items":{"$ref":"#/components/schemas/UpdateInfo"}},"dependency_licenses":{"title":"依存関係のライセンス情報","type":"array","items":{"$ref":"#/components/schemas/LicenseInfo"}},"downloadable_libraries_path":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのローカルjsonパス","type":"string"},"downloadable_libraries_url":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのAPIのURL","type":"string"},"supported_features":{"title":"エンジンが持つ機能","allOf":[{"$ref":"#/components/schemas/SupportedFeatures"}]}},"description":"エンジン自体に関する情報"},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"LicenseInfo":{"title":"LicenseInfo","required":["name","text"],"type":"object","properties":{"name":{"title":"依存ライブラリ名","type":"string"},"version":{"title":"依存ライブラリのバージョン","type":"string"},"license":{"title":"依存ライブラリのライセンス名","type":"string"},"text":{"title":"依存ライブラリのライセンス本文","type":"string"}},"description":"依存ライブラリのライセンス情報"},"Mora":{"title":"Mora","required":["text","vowel","vowel_length","pitch"],"type":"object","properties":{"text":{"title":"文字","type":"string"},"consonant":{"title":"子音の音素","type":"string"},"consonant_length":{"title":"子音の音長","type":"number"},"vowel":{"title":"母音の音素","type":"string"},"vowel_length":{"title":"母音の音長","type":"number"},"pitch":{"title":"音高","type":"number"}},"description":"モーラ(子音+母音)ごとの情報"},"ParseKanaBadRequest":{"title":"ParseKanaBadRequest","required":["text","error_name","error_args"],"type":"object","properties":{"text":{"title":"エラーメッセージ","type":"string"},"error_name":{"title":"エラー名","type":"string","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":{"title":"エラーを起こした箇所","type":"object","additionalProperties":{"type":"string"}}}},"Preset":{"title":"Preset","required":["id","name","speaker_uuid","style_id","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength"],"type":"object","properties":{"id":{"title":"プリセットID","type":"integer"},"name":{"title":"プリセット名","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"style_id":{"title":"スタイルID","type":"integer"},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"}},"description":"プリセット情報"},"Speaker":{"title":"Speaker","required":["name","speaker_uuid","styles"],"type":"object","properties":{"name":{"title":"名前","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"styles":{"title":"スピーカースタイルの一覧","type":"array","items":{"$ref":"#/components/schemas/SpeakerStyle"}},"version":{"title":"Version","type":"string","default":"スピーカーのバージョン"}},"description":"スピーカー情報"},"SpeakerInfo":{"title":"SpeakerInfo","required":["policy","portrait","style_infos"],"type":"object","properties":{"policy":{"title":"policy.md","type":"string"},"portrait":{"title":"portrait.pngをbase64エンコードしたもの","type":"string"},"style_infos":{"title":"スタイルの追加情報","type":"array","items":{"$ref":"#/components/schemas/StyleInfo"}}},"description":"話者の追加情報"},"SpeakerStyle":{"title":"SpeakerStyle","required":["name","id"],"type":"object","properties":{"name":{"title":"スタイル名","type":"string"},"id":{"title":"スタイルID","type":"integer"}},"description":"スピーカーのスタイル情報"},"StyleInfo":{"title":"StyleInfo","required":["id","icon","voice_samples"],"type":"object","properties":{"id":{"title":"スタイルID","type":"integer"},"icon":{"title":"当該スタイルのアイコンをbase64エンコードしたもの","type":"string"},"portrait":{"title":"当該スタイルのportrait.pngをbase64エンコードしたもの","type":"string"},"voice_samples":{"title":"voice_sampleのwavファイルをbase64エンコードしたもの","type":"array","items":{"type":"string"}}},"description":"スタイルの追加情報"},"SupportedDevicesInfo":{"title":"SupportedDevicesInfo","required":["cpu","cuda","dml"],"type":"object","properties":{"cpu":{"title":"CPUに対応しているか","type":"boolean"},"cuda":{"title":"CUDA(Nvidia GPU)に対応しているか","type":"boolean"},"dml":{"title":"DirectML(Nvidia GPU/Radeon GPU等)に対応しているか","type":"boolean"}},"description":"対応しているデバイスの情報"},"SupportedFeatures":{"title":"SupportedFeatures","required":["adjust_mora_pitch","adjust_phoneme_length","adjust_speed_scale","adjust_pitch_scale","adjust_intonation_scale","adjust_volume_scale","interrogative_upspeak","synthesis_morphing"],"type":"object","properties":{"adjust_mora_pitch":{"title":"モーラごとの音高の調整","type":"boolean"},"adjust_phoneme_length":{"title":"音素ごとの長さの調整","type":"boolean"},"adjust_speed_scale":{"title":"全体の話速の調整","type":"boolean"},"adjust_pitch_scale":{"title":"全体の音高の調整","type":"boolean"},"adjust_intonation_scale":{"title":"全体の抑揚の調整","type":"boolean"},"adjust_volume_scale":{"title":"全体の音量の調整","type":"boolean"},"interrogative_upspeak":{"title":"疑問文の自動調整","type":"boolean"},"synthesis_morphing":{"title":"2人の話者でモーフィングした音声を合成","type":"boolean"}},"description":"エンジンが持つ機能の一覧"},"UpdateInfo":{"title":"UpdateInfo","required":["version","descriptions"],"type":"object","properties":{"version":{"title":"エンジンのバージョン名","type":"string"},"descriptions":{"title":"アップデートの詳細についての説明","type":"array","items":{"type":"string"}},"contributors":{"title":"貢献者名","type":"array","items":{"type":"string"}}},"description":"エンジンのアップデート情報"},"UserDictWord":{"title":"UserDictWord","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"],"type":"object","properties":{"surface":{"title":"表層形","type":"string"},"priority":{"title":"優先度","maximum":10.0,"minimum":0.0,"type":"integer"},"context_id":{"title":"文脈ID","type":"integer","default":1348},"part_of_speech":{"title":"品詞","type":"string"},"part_of_speech_detail_1":{"title":"品詞細分類1","type":"string"},"part_of_speech_detail_2":{"title":"品詞細分類2","type":"string"},"part_of_speech_detail_3":{"title":"品詞細分類3","type":"string"},"inflectional_type":{"title":"活用型","type":"string"},"inflectional_form":{"title":"活用形","type":"string"},"stem":{"title":"原形","type":"string"},"yomi":{"title":"読み","type":"string"},"pronunciation":{"title":"発音","type":"string"},"accent_type":{"title":"アクセント型","type":"integer"},"mora_count":{"title":"モーラ数","type":"integer"},"accent_associative_rule":{"title":"アクセント結合規則","type":"string"}},"description":"辞書のコンパイルに使われる情報"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}},"WordTypes":{"title":"WordTypes","enum":["PROPER_NOUN","COMMON_NOUN","VERB","ADJECTIVE","SUFFIX"],"type":"string","description":"\n fastapiでword_type引数を検証する時に使用するクラス\n "}}}} \ No newline at end of file +{"openapi":"3.0.2","info":{"title":"VOICEVOX Engine","description":"VOICEVOXの音声合成エンジンです。","version":"0.14.0-preview.10"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"クエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Preset Id","type":"integer"},"name":"preset_id","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Is Kana","type":"boolean","default":false},"name":"is_kana","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Accent Phrases Accent Phrases Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Data Mora Data Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Length Mora Length Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Pitch Mora Pitch Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"疑問系のテキストが与えられたら語尾を自動調整する","required":false,"schema":{"title":"Enable Interrogative Upspeak","type":"boolean","description":"疑問系のテキストが与えられたら語尾を自動調整する","default":true},"name":"enable_interrogative_upspeak","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Queries","type":"array","items":{"$ref":"#/components/schemas/AudioQuery"}}}},"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"}}}}}}},"/is_morphable":{"get":{"tags":["音声合成"],"summary":"2人の話者でモーフィングが可能かどうか返す","description":"指定された2人の話者でモーフィング機能を利用可能か返します。\nモーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。\nプロパティが存在しない場合は、モーフィングが許可されているとみなします。","operationId":"is_morphable_is_morphable_get","parameters":[{"required":true,"schema":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Morphable Is Morphable Get","type":"boolean"}}}},"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":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":true,"schema":{"title":"Morph Rate","maximum":1.0,"minimum":0.0,"type":"number"},"name":"morph_rate","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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"}}}}}}},"/connect_waves":{"post":{"tags":["その他"],"summary":"base64エンコードされた複数のwavデータを一つに結合する","description":"base64エンコードされたwavデータを一纏めにし、wavファイルで返します。","operationId":"connect_waves_connect_waves_post","requestBody":{"content":{"application/json":{"schema":{"title":"Waves","type":"array","items":{"type":"string"}}}},"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":{"title":"Response Get Presets Presets Get","type":"array","items":{"$ref":"#/components/schemas/Preset"}}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/core_versions":{"get":{"tags":["その他"],"summary":"Core Versions","operationId":"core_versions_core_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Core Versions Core Versions Get","type":"array","items":{"type":"string"}}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","parameters":[{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Speakers Speakers Get","type":"array","items":{"$ref":"#/components/schemas/Speaker"}}}}},"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エンコードされたものが返されます。\n\nReturns\n-------\nret_data: SpeakerInfo","operationId":"speaker_info_speaker_info_get","parameters":[{"required":true,"schema":{"title":"Speaker Uuid","type":"string"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Response Downloadable Libraries Downloadable Libraries Get","type":"array","items":{"$ref":"#/components/schemas/DownloadableLibrary"}}}}}}}},"/initialize_speaker":{"post":{"tags":["その他"],"summary":"Initialize Speaker","description":"指定されたspeaker_idの話者を初期化します。\n実行しなくても他のAPIは使用できますが、初回実行時に時間がかかることがあります。","operationId":"initialize_speaker_initialize_speaker_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"既に初期化済みの話者の再初期化をスキップするかどうか","required":false,"schema":{"title":"Skip Reinit","type":"boolean","description":"既に初期化済みの話者の再初期化をスキップするかどうか","default":false},"name":"skip_reinit","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":"指定されたspeaker_idの話者が初期化されているかどうかを返します。","operationId":"is_initialized_speaker_is_initialized_speaker_get","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Initialized Speaker Is Initialized Speaker Get","type":"boolean"}}}},"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":{"title":"Response Get User Dict Words User Dict Get","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}}}}}},"/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":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"name":"priority","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Add User Dict Word User Dict Word Post","type":"string"}}}},"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":{"title":"Word Uuid","type":"string"},"name":"word_uuid","in":"path"},{"required":true,"schema":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"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":{"title":"Word Uuid","type":"string"},"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":{"title":"Override","type":"boolean"},"name":"override","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Import Dict Data","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}},"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":{"title":"Core Version","type":"string"},"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","operationId":"setting_get_setting_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["設定"],"summary":"Setting Post","operationId":"setting_post_setting_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setting_post_setting_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccentPhrase":{"title":"AccentPhrase","required":["moras","accent"],"type":"object","properties":{"moras":{"title":"モーラのリスト","type":"array","items":{"$ref":"#/components/schemas/Mora"}},"accent":{"title":"アクセント箇所","type":"integer"},"pause_mora":{"title":"後ろに無音を付けるかどうか","allOf":[{"$ref":"#/components/schemas/Mora"}]},"is_interrogative":{"title":"疑問系かどうか","type":"boolean","default":false}},"description":"アクセント句ごとの情報"},"AudioQuery":{"title":"AudioQuery","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"type":"object","properties":{"accent_phrases":{"title":"アクセント句のリスト","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"},"outputSamplingRate":{"title":"音声データの出力サンプリングレート","type":"integer"},"outputStereo":{"title":"音声データをステレオ出力するか否か","type":"boolean"},"kana":{"title":"[読み取り専用]AquesTalkライクな読み仮名。音声合成クエリとしては無視される","type":"string"}},"description":"音声合成用のクエリ"},"Body_setting_post_setting_post":{"title":"Body_setting_post_setting_post","type":"object","properties":{"cors_policy_mode":{"title":"Cors Policy Mode","type":"string"},"allow_origin":{"title":"Allow Origin","type":"string"}}},"DownloadableLibrary":{"title":"DownloadableLibrary","required":["download_url","bytes","speaker","speaker_info"],"type":"object","properties":{"download_url":{"title":"音声ライブラリのダウンロードURL","type":"string"},"bytes":{"title":"音声ライブラリのバイト数","type":"integer"},"speaker":{"title":"話者情報","allOf":[{"$ref":"#/components/schemas/Speaker"}]},"speaker_info":{"title":"話者の追加情報","allOf":[{"$ref":"#/components/schemas/SpeakerInfo"}]}},"description":"ダウンロード可能な音声ライブラリの情報(最新情報をwebで取得することを考慮して、ローカルの情報はない)"},"EngineManifest":{"title":"EngineManifest","required":["manifest_version","name","brand_name","uuid","url","icon","default_sampling_rate","terms_of_service","update_infos","dependency_licenses","supported_features"],"type":"object","properties":{"manifest_version":{"title":"マニフェストのバージョン","type":"string"},"name":{"title":"エンジン名","type":"string"},"brand_name":{"title":"ブランド名","type":"string"},"uuid":{"title":"エンジンのUUID","type":"string"},"url":{"title":"エンジンのURL","type":"string"},"icon":{"title":"エンジンのアイコンをBASE64エンコードしたもの","type":"string"},"default_sampling_rate":{"title":"デフォルトのサンプリング周波数","type":"integer"},"terms_of_service":{"title":"エンジンの利用規約","type":"string"},"update_infos":{"title":"エンジンのアップデート情報","type":"array","items":{"$ref":"#/components/schemas/UpdateInfo"}},"dependency_licenses":{"title":"依存関係のライセンス情報","type":"array","items":{"$ref":"#/components/schemas/LicenseInfo"}},"downloadable_libraries_path":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのローカルjsonパス","type":"string"},"downloadable_libraries_url":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのAPIのURL","type":"string"},"supported_features":{"title":"エンジンが持つ機能","allOf":[{"$ref":"#/components/schemas/SupportedFeatures"}]}},"description":"エンジン自体に関する情報"},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"LicenseInfo":{"title":"LicenseInfo","required":["name","text"],"type":"object","properties":{"name":{"title":"依存ライブラリ名","type":"string"},"version":{"title":"依存ライブラリのバージョン","type":"string"},"license":{"title":"依存ライブラリのライセンス名","type":"string"},"text":{"title":"依存ライブラリのライセンス本文","type":"string"}},"description":"依存ライブラリのライセンス情報"},"Mora":{"title":"Mora","required":["text","vowel","vowel_length","pitch"],"type":"object","properties":{"text":{"title":"文字","type":"string"},"consonant":{"title":"子音の音素","type":"string"},"consonant_length":{"title":"子音の音長","type":"number"},"vowel":{"title":"母音の音素","type":"string"},"vowel_length":{"title":"母音の音長","type":"number"},"pitch":{"title":"音高","type":"number"}},"description":"モーラ(子音+母音)ごとの情報"},"ParseKanaBadRequest":{"title":"ParseKanaBadRequest","required":["text","error_name","error_args"],"type":"object","properties":{"text":{"title":"エラーメッセージ","type":"string"},"error_name":{"title":"エラー名","type":"string","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":{"title":"エラーを起こした箇所","type":"object","additionalProperties":{"type":"string"}}}},"Preset":{"title":"Preset","required":["id","name","speaker_uuid","style_id","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength"],"type":"object","properties":{"id":{"title":"プリセットID","type":"integer"},"name":{"title":"プリセット名","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"style_id":{"title":"スタイルID","type":"integer"},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"}},"description":"プリセット情報"},"Speaker":{"title":"Speaker","required":["name","speaker_uuid","styles"],"type":"object","properties":{"name":{"title":"名前","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"supported_features":{"title":"スピーカーの対応機能","allOf":[{"$ref":"#/components/schemas/SpeakerSupportedFeatures"}]},"styles":{"title":"スピーカースタイルの一覧","type":"array","items":{"$ref":"#/components/schemas/SpeakerStyle"}},"version":{"title":"Version","type":"string","default":"スピーカーのバージョン"}},"description":"スピーカー情報"},"SpeakerInfo":{"title":"SpeakerInfo","required":["policy","portrait","style_infos"],"type":"object","properties":{"policy":{"title":"policy.md","type":"string"},"portrait":{"title":"portrait.pngをbase64エンコードしたもの","type":"string"},"style_infos":{"title":"スタイルの追加情報","type":"array","items":{"$ref":"#/components/schemas/StyleInfo"}}},"description":"話者の追加情報"},"SpeakerStyle":{"title":"SpeakerStyle","required":["name","id"],"type":"object","properties":{"name":{"title":"スタイル名","type":"string"},"id":{"title":"スタイルID","type":"integer"}},"description":"スピーカーのスタイル情報"},"SpeakerSupportPermittedSynthesisMorphing":{"title":"SpeakerSupportPermittedSynthesisMorphing","enum":["ALL","SELF_ONLY","NOTHING"],"type":"string","description":"An enumeration."},"SpeakerSupportedFeatures":{"title":"SpeakerSupportedFeatures","type":"object","properties":{"permitted_synthesis_morphing":{"title":"モーフィング機能への対応","allOf":[{"$ref":"#/components/schemas/SpeakerSupportPermittedSynthesisMorphing"}],"default":"ALL"}},"description":"話者の対応機能の情報"},"StyleInfo":{"title":"StyleInfo","required":["id","icon","voice_samples"],"type":"object","properties":{"id":{"title":"スタイルID","type":"integer"},"icon":{"title":"当該スタイルのアイコンをbase64エンコードしたもの","type":"string"},"portrait":{"title":"当該スタイルのportrait.pngをbase64エンコードしたもの","type":"string"},"voice_samples":{"title":"voice_sampleのwavファイルをbase64エンコードしたもの","type":"array","items":{"type":"string"}}},"description":"スタイルの追加情報"},"SupportedDevicesInfo":{"title":"SupportedDevicesInfo","required":["cpu","cuda","dml"],"type":"object","properties":{"cpu":{"title":"CPUに対応しているか","type":"boolean"},"cuda":{"title":"CUDA(Nvidia GPU)に対応しているか","type":"boolean"},"dml":{"title":"DirectML(Nvidia GPU/Radeon GPU等)に対応しているか","type":"boolean"}},"description":"対応しているデバイスの情報"},"SupportedFeatures":{"title":"SupportedFeatures","required":["adjust_mora_pitch","adjust_phoneme_length","adjust_speed_scale","adjust_pitch_scale","adjust_intonation_scale","adjust_volume_scale","interrogative_upspeak","synthesis_morphing"],"type":"object","properties":{"adjust_mora_pitch":{"title":"モーラごとの音高の調整","type":"boolean"},"adjust_phoneme_length":{"title":"音素ごとの長さの調整","type":"boolean"},"adjust_speed_scale":{"title":"全体の話速の調整","type":"boolean"},"adjust_pitch_scale":{"title":"全体の音高の調整","type":"boolean"},"adjust_intonation_scale":{"title":"全体の抑揚の調整","type":"boolean"},"adjust_volume_scale":{"title":"全体の音量の調整","type":"boolean"},"interrogative_upspeak":{"title":"疑問文の自動調整","type":"boolean"},"synthesis_morphing":{"title":"2人の話者でモーフィングした音声を合成","type":"boolean"}},"description":"エンジンが持つ機能の一覧"},"UpdateInfo":{"title":"UpdateInfo","required":["version","descriptions"],"type":"object","properties":{"version":{"title":"エンジンのバージョン名","type":"string"},"descriptions":{"title":"アップデートの詳細についての説明","type":"array","items":{"type":"string"}},"contributors":{"title":"貢献者名","type":"array","items":{"type":"string"}}},"description":"エンジンのアップデート情報"},"UserDictWord":{"title":"UserDictWord","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"],"type":"object","properties":{"surface":{"title":"表層形","type":"string"},"priority":{"title":"優先度","maximum":10.0,"minimum":0.0,"type":"integer"},"context_id":{"title":"文脈ID","type":"integer","default":1348},"part_of_speech":{"title":"品詞","type":"string"},"part_of_speech_detail_1":{"title":"品詞細分類1","type":"string"},"part_of_speech_detail_2":{"title":"品詞細分類2","type":"string"},"part_of_speech_detail_3":{"title":"品詞細分類3","type":"string"},"inflectional_type":{"title":"活用型","type":"string"},"inflectional_form":{"title":"活用形","type":"string"},"stem":{"title":"原形","type":"string"},"yomi":{"title":"読み","type":"string"},"pronunciation":{"title":"発音","type":"string"},"accent_type":{"title":"アクセント型","type":"integer"},"mora_count":{"title":"モーラ数","type":"integer"},"accent_associative_rule":{"title":"アクセント結合規則","type":"string"}},"description":"辞書のコンパイルに使われる情報"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}},"WordTypes":{"title":"WordTypes","enum":["PROPER_NOUN","COMMON_NOUN","VERB","ADJECTIVE","SUFFIX"],"type":"string","description":"\n fastapiでword_type引数を検証する時に使用するクラス\n "}}}} \ No newline at end of file diff --git a/src/openapi/.openapi-generator/FILES b/src/openapi/.openapi-generator/FILES index f2a6ed74f6..a95612bd21 100644 --- a/src/openapi/.openapi-generator/FILES +++ b/src/openapi/.openapi-generator/FILES @@ -13,6 +13,8 @@ models/Preset.ts models/Speaker.ts models/SpeakerInfo.ts models/SpeakerStyle.ts +models/SpeakerSupportPermittedSynthesisMorphing.ts +models/SpeakerSupportedFeatures.ts models/StyleInfo.ts models/SupportedDevicesInfo.ts models/SupportedFeatures.ts diff --git a/src/openapi/apis/DefaultApi.ts b/src/openapi/apis/DefaultApi.ts index 1e2688cf60..ead5543c2f 100644 --- a/src/openapi/apis/DefaultApi.ts +++ b/src/openapi/apis/DefaultApi.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -110,6 +110,12 @@ export interface IsInitializedSpeakerIsInitializedSpeakerGetRequest { coreVersion?: string; } +export interface IsMorphableIsMorphableGetRequest { + baseSpeaker: number; + targetSpeaker: number; + coreVersion?: string; +} + export interface MoraDataMoraDataPostRequest { speaker: number; accentPhrase: Array; @@ -432,6 +438,24 @@ export interface DefaultApiInterface { */ isInitializedSpeakerIsInitializedSpeakerGet(requestParameters: IsInitializedSpeakerIsInitializedSpeakerGetRequest, initOverrides?: RequestInit): Promise; + /** + * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * @summary 2人の話者でモーフィングが可能かどうか返す + * @param {number} baseSpeaker + * @param {number} targetSpeaker + * @param {string} [coreVersion] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApiInterface + */ + isMorphableIsMorphableGetRaw(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise>; + + /** + * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * 2人の話者でモーフィングが可能かどうか返す + */ + isMorphableIsMorphableGet(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise; + /** * * @summary アクセント句から音高・音素長を得る @@ -1237,6 +1261,54 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { return await response.value(); } + /** + * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * 2人の話者でモーフィングが可能かどうか返す + */ + async isMorphableIsMorphableGetRaw(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise> { + if (requestParameters.baseSpeaker === null || requestParameters.baseSpeaker === undefined) { + throw new runtime.RequiredError('baseSpeaker','Required parameter requestParameters.baseSpeaker was null or undefined when calling isMorphableIsMorphableGet.'); + } + + if (requestParameters.targetSpeaker === null || requestParameters.targetSpeaker === undefined) { + throw new runtime.RequiredError('targetSpeaker','Required parameter requestParameters.targetSpeaker was null or undefined when calling isMorphableIsMorphableGet.'); + } + + const queryParameters: any = {}; + + if (requestParameters.baseSpeaker !== undefined) { + queryParameters['base_speaker'] = requestParameters.baseSpeaker; + } + + if (requestParameters.targetSpeaker !== undefined) { + queryParameters['target_speaker'] = requestParameters.targetSpeaker; + } + + if (requestParameters.coreVersion !== undefined) { + queryParameters['core_version'] = requestParameters.coreVersion; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/is_morphable`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.TextApiResponse(response) as any; + } + + /** + * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * 2人の話者でモーフィングが可能かどうか返す + */ + async isMorphableIsMorphableGet(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise { + const response = await this.isMorphableIsMorphableGetRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * アクセント句から音高・音素長を得る */ diff --git a/src/openapi/models/AccentPhrase.ts b/src/openapi/models/AccentPhrase.ts index 7eedcd913d..12a7096d84 100644 --- a/src/openapi/models/AccentPhrase.ts +++ b/src/openapi/models/AccentPhrase.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/AudioQuery.ts b/src/openapi/models/AudioQuery.ts index 01c2bdedcb..50c08fe29c 100644 --- a/src/openapi/models/AudioQuery.ts +++ b/src/openapi/models/AudioQuery.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/DownloadableLibrary.ts b/src/openapi/models/DownloadableLibrary.ts index 1596c67ea3..3ea5cc4282 100644 --- a/src/openapi/models/DownloadableLibrary.ts +++ b/src/openapi/models/DownloadableLibrary.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/EngineManifest.ts b/src/openapi/models/EngineManifest.ts index 6284725f39..6726287147 100644 --- a/src/openapi/models/EngineManifest.ts +++ b/src/openapi/models/EngineManifest.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/HTTPValidationError.ts b/src/openapi/models/HTTPValidationError.ts index 9753e3ac64..4227b682ad 100644 --- a/src/openapi/models/HTTPValidationError.ts +++ b/src/openapi/models/HTTPValidationError.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/LicenseInfo.ts b/src/openapi/models/LicenseInfo.ts index 67eb067e8e..27296f4085 100644 --- a/src/openapi/models/LicenseInfo.ts +++ b/src/openapi/models/LicenseInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Mora.ts b/src/openapi/models/Mora.ts index 50bb037ab5..64b561b142 100644 --- a/src/openapi/models/Mora.ts +++ b/src/openapi/models/Mora.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/ParseKanaBadRequest.ts b/src/openapi/models/ParseKanaBadRequest.ts index 85a3ac2109..a72a23bfeb 100644 --- a/src/openapi/models/ParseKanaBadRequest.ts +++ b/src/openapi/models/ParseKanaBadRequest.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Preset.ts b/src/openapi/models/Preset.ts index 45a82791b5..a3d5a0c98c 100644 --- a/src/openapi/models/Preset.ts +++ b/src/openapi/models/Preset.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Speaker.ts b/src/openapi/models/Speaker.ts index c0f6371e5f..e1e283d84f 100644 --- a/src/openapi/models/Speaker.ts +++ b/src/openapi/models/Speaker.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -18,6 +18,10 @@ import { SpeakerStyleFromJSON, SpeakerStyleFromJSONTyped, SpeakerStyleToJSON, + SpeakerSupportedFeatures, + SpeakerSupportedFeaturesFromJSON, + SpeakerSupportedFeaturesFromJSONTyped, + SpeakerSupportedFeaturesToJSON, } from './'; /** @@ -38,6 +42,12 @@ export interface Speaker { * @memberof Speaker */ speakerUuid: string; + /** + * + * @type {SpeakerSupportedFeatures} + * @memberof Speaker + */ + supportedFeatures?: SpeakerSupportedFeatures | null; /** * * @type {Array} @@ -64,6 +74,7 @@ export function SpeakerFromJSONTyped(json: any, ignoreDiscriminator: boolean): S 'name': json['name'], 'speakerUuid': json['speaker_uuid'], + 'supportedFeatures': !exists(json, 'supported_features') ? undefined : SpeakerSupportedFeaturesFromJSON(json['supported_features']), 'styles': ((json['styles'] as Array).map(SpeakerStyleFromJSON)), 'version': !exists(json, 'version') ? undefined : json['version'], }; @@ -80,6 +91,7 @@ export function SpeakerToJSON(value?: Speaker | null): any { 'name': value.name, 'speaker_uuid': value.speakerUuid, + 'supported_features': SpeakerSupportedFeaturesToJSON(value.supportedFeatures), 'styles': ((value.styles as Array).map(SpeakerStyleToJSON)), 'version': value.version, }; diff --git a/src/openapi/models/SpeakerInfo.ts b/src/openapi/models/SpeakerInfo.ts index b876dbe388..e33840ce91 100644 --- a/src/openapi/models/SpeakerInfo.ts +++ b/src/openapi/models/SpeakerInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SpeakerStyle.ts b/src/openapi/models/SpeakerStyle.ts index f275bcb5cf..a13d9ad1e9 100644 --- a/src/openapi/models/SpeakerStyle.ts +++ b/src/openapi/models/SpeakerStyle.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SpeakerSupportPermittedSynthesisMorphing.ts b/src/openapi/models/SpeakerSupportPermittedSynthesisMorphing.ts new file mode 100644 index 0000000000..2bc9b6cf15 --- /dev/null +++ b/src/openapi/models/SpeakerSupportPermittedSynthesisMorphing.ts @@ -0,0 +1,37 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VOICEVOX Engine + * VOICEVOXの音声合成エンジンです。 + * + * The version of the OpenAPI document: 0.14.0-preview.10 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +/** + * An enumeration. + * @export + * @enum {string} + */ +export enum SpeakerSupportPermittedSynthesisMorphing { + All = 'ALL', + SelfOnly = 'SELF_ONLY', + Nothing = 'NOTHING' +} + +export function SpeakerSupportPermittedSynthesisMorphingFromJSON(json: any): SpeakerSupportPermittedSynthesisMorphing { + return SpeakerSupportPermittedSynthesisMorphingFromJSONTyped(json, false); +} + +export function SpeakerSupportPermittedSynthesisMorphingFromJSONTyped(json: any, ignoreDiscriminator: boolean): SpeakerSupportPermittedSynthesisMorphing { + return json as SpeakerSupportPermittedSynthesisMorphing; +} + +export function SpeakerSupportPermittedSynthesisMorphingToJSON(value?: SpeakerSupportPermittedSynthesisMorphing | null): any { + return value as any; +} + diff --git a/src/openapi/models/SpeakerSupportedFeatures.ts b/src/openapi/models/SpeakerSupportedFeatures.ts new file mode 100644 index 0000000000..2083d8d12a --- /dev/null +++ b/src/openapi/models/SpeakerSupportedFeatures.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VOICEVOX Engine + * VOICEVOXの音声合成エンジンです。 + * + * The version of the OpenAPI document: 0.14.0-preview.10 + * + * + * 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 { + SpeakerSupportPermittedSynthesisMorphing, + SpeakerSupportPermittedSynthesisMorphingFromJSON, + SpeakerSupportPermittedSynthesisMorphingFromJSONTyped, + SpeakerSupportPermittedSynthesisMorphingToJSON, +} from './'; + +/** + * 話者の対応機能の情報 + * @export + * @interface SpeakerSupportedFeatures + */ +export interface SpeakerSupportedFeatures { + /** + * + * @type {SpeakerSupportPermittedSynthesisMorphing} + * @memberof SpeakerSupportedFeatures + */ + permittedSynthesisMorphing?: SpeakerSupportPermittedSynthesisMorphing | null; +} + +export function SpeakerSupportedFeaturesFromJSON(json: any): SpeakerSupportedFeatures { + return SpeakerSupportedFeaturesFromJSONTyped(json, false); +} + +export function SpeakerSupportedFeaturesFromJSONTyped(json: any, ignoreDiscriminator: boolean): SpeakerSupportedFeatures { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'permittedSynthesisMorphing': !exists(json, 'permitted_synthesis_morphing') ? undefined : SpeakerSupportPermittedSynthesisMorphingFromJSON(json['permitted_synthesis_morphing']), + }; +} + +export function SpeakerSupportedFeaturesToJSON(value?: SpeakerSupportedFeatures | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'permitted_synthesis_morphing': SpeakerSupportPermittedSynthesisMorphingToJSON(value.permittedSynthesisMorphing), + }; +} + diff --git a/src/openapi/models/StyleInfo.ts b/src/openapi/models/StyleInfo.ts index fe68c1c355..57c7aa5301 100644 --- a/src/openapi/models/StyleInfo.ts +++ b/src/openapi/models/StyleInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SupportedDevicesInfo.ts b/src/openapi/models/SupportedDevicesInfo.ts index 2cc7b0aad0..abff8b9fa2 100644 --- a/src/openapi/models/SupportedDevicesInfo.ts +++ b/src/openapi/models/SupportedDevicesInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SupportedFeatures.ts b/src/openapi/models/SupportedFeatures.ts index 34998efba3..0402fca9fb 100644 --- a/src/openapi/models/SupportedFeatures.ts +++ b/src/openapi/models/SupportedFeatures.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/UpdateInfo.ts b/src/openapi/models/UpdateInfo.ts index 10ccbfb484..f693c7de52 100644 --- a/src/openapi/models/UpdateInfo.ts +++ b/src/openapi/models/UpdateInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/UserDictWord.ts b/src/openapi/models/UserDictWord.ts index ac723d3eca..a999f178ed 100644 --- a/src/openapi/models/UserDictWord.ts +++ b/src/openapi/models/UserDictWord.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/ValidationError.ts b/src/openapi/models/ValidationError.ts index 9b971bc813..f1ffa28bc6 100644 --- a/src/openapi/models/ValidationError.ts +++ b/src/openapi/models/ValidationError.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/WordTypes.ts b/src/openapi/models/WordTypes.ts index 89e97a7400..4cbce1e62a 100644 --- a/src/openapi/models/WordTypes.ts +++ b/src/openapi/models/WordTypes.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/index.ts b/src/openapi/models/index.ts index 3da96f9e1f..12b393ce21 100644 --- a/src/openapi/models/index.ts +++ b/src/openapi/models/index.ts @@ -12,6 +12,8 @@ export * from './Preset'; export * from './Speaker'; export * from './SpeakerInfo'; export * from './SpeakerStyle'; +export * from './SpeakerSupportPermittedSynthesisMorphing'; +export * from './SpeakerSupportedFeatures'; export * from './StyleInfo'; export * from './SupportedDevicesInfo'; export * from './SupportedFeatures'; diff --git a/src/openapi/runtime.ts b/src/openapi/runtime.ts index acc5b242c9..44f516c1b9 100644 --- a/src/openapi/runtime.ts +++ b/src/openapi/runtime.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.8 + * The version of the OpenAPI document: 0.14.0-preview.10 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). From 6610d3612273be2c158e83604daa40e88056035a Mon Sep 17 00:00:00 2001 From: sabonerune <102559104+sabonerune@users.noreply.github.com> Date: Thu, 19 Jan 2023 01:31:00 +0900 Subject: [PATCH 05/22] call api `isMorphableIsMorphableGet` and get `morphablePairInfo` --- src/store/audio.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/store/audio.ts b/src/store/audio.ts index bc939fa31d..197774724a 100644 --- a/src/store/audio.ts +++ b/src/store/audio.ts @@ -323,7 +323,7 @@ export const audioStore = createPartialStore({ }, LOAD_MORPHABLE_PAIR: { - async action({ state, commit }, { engineId }) { + async action({ state, commit, dispatch }, { engineId }) { if ( !state.engineManifests[engineId].supportedFeatures?.synthesisMorphing ) { @@ -343,7 +343,20 @@ export const audioStore = createPartialStore({ await Promise.all( styleIds.map(async (targetStyleId) => [ targetStyleId, - true, // TODO: エンジンからのAPIに置き換える + await ( + await dispatch("INSTANTIATE_ENGINE_CONNECTOR", { engineId }) + ) + .invoke("isMorphableIsMorphableGet")({ + baseSpeaker: baseStyleId, + targetSpeaker: targetStyleId, + }) + .catch((error) => { + window.electron.logError( + error, + `Failed to get isMorphableIsMorphableGet` + ); + return false; + }), ]) ) ), From abeb88fecc4b3dbb813abfa6c1eace45c15b1171 Mon Sep 17 00:00:00 2001 From: segu_g Date: Thu, 19 Jan 2023 21:23:56 +0900 Subject: [PATCH 06/22] patch openapi-generator convert miss --- src/store/audio.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/store/audio.ts b/src/store/audio.ts index 197774724a..480ba8e4b3 100644 --- a/src/store/audio.ts +++ b/src/store/audio.ts @@ -346,10 +346,12 @@ export const audioStore = createPartialStore({ await ( await dispatch("INSTANTIATE_ENGINE_CONNECTOR", { engineId }) ) + /** booleanを返すAPIは何故か"true" | "false"となってしまう */ .invoke("isMorphableIsMorphableGet")({ baseSpeaker: baseStyleId, targetSpeaker: targetStyleId, }) + .then((res) => (res as unknown as string) === "true") .catch((error) => { window.electron.logError( error, From 8972ffa679b178541841d04ca0ad74ddf13b9fba Mon Sep 17 00:00:00 2001 From: segu_g Date: Thu, 19 Jan 2023 21:32:37 +0900 Subject: [PATCH 07/22] UI control --- src/components/AudioInfo.vue | 38 +++++++++++++++++++++++++----------- src/store/audio.ts | 35 +++++++++++++++++++++++++-------- src/store/type.ts | 7 +++++++ 3 files changed, 61 insertions(+), 19 deletions(-) diff --git a/src/components/AudioInfo.vue b/src/components/AudioInfo.vue index 56d6d8b5b5..ae692e5947 100644 --- a/src/components/AudioInfo.vue +++ b/src/components/AudioInfo.vue @@ -671,16 +671,32 @@ export default defineComponent({ const mophingTargetEngines = store.getters.MORPHING_SUPPORTED_ENGINES; const mophingTargetCharacters = computed(() => { - const allCharacters = store.getters.GET_ORDERED_ALL_CHARACTER_INFOS; - return allCharacters - .map((character) => { - const targetStyles = character.metas.styles.filter((style) => - mophingTargetEngines.includes(style.engineId) - ); - character.metas.styles = targetStyles; - return character; - }) - .filter((characters) => characters.metas.styles.length >= 1); + const baseEngineId = audioItem.value.engineId; + const baseStyleId = audioItem.value.styleId; + if (baseEngineId === undefined || baseStyleId == undefined) { + return []; + } + return store.getters.GET_ORDERED_ALL_CHARACTER_INFOS.map((character) => { + const targetStyles = character.metas.styles.filter((style) => + store.getters.IS_A_VALID_MOPHING_PAIR( + { + engineId: baseEngineId, + styleId: baseStyleId, + }, + { + engineId: style.engineId, + styleId: style.styleId, + } + ) + ); + return { + ...character, + metas: { + ...character.metas, + styles: targetStyles, + }, + }; + }).filter((characters) => characters.metas.styles.length >= 1); }); const morphingTargetVoice = computed({ @@ -711,7 +727,7 @@ export default defineComponent({ }); const morphingTargetCharacterInfo = computed(() => - mophingTargetCharacters.value.find( + store.getters.GET_ORDERED_ALL_CHARACTER_INFOS.find( (character) => character.metas.speakerUuid === morphingTargetVoice.value?.speakerId ) diff --git a/src/store/audio.ts b/src/store/audio.ts index 480ba8e4b3..6e997712c2 100644 --- a/src/store/audio.ts +++ b/src/store/audio.ts @@ -760,17 +760,36 @@ export const audioStore = createPartialStore({ ), }, + IS_A_VALID_MOPHING_PAIR: { + getter: (state, getters) => (baseVoice, targetVoice) => { + if (baseVoice.engineId !== targetVoice.engineId) { + return false; + } + const engineId = baseVoice.engineId; + if (!getters.MORPHING_SUPPORTED_ENGINES.includes(engineId)) { + return false; + } + return !!state.morphablePairInfo[engineId]?.[baseVoice.styleId]?.[ + targetVoice.styleId + ]; + }, + }, + VALID_MOPHING_INFO: { getter: (_, getters) => (audioItem: AudioItem) => { - if ( - audioItem.morphingInfo == undefined || - audioItem.engineId == undefined - ) + const baseVoice = audioItem.engineId !== undefined && + audioItem.styleId !== undefined && { + engineId: audioItem.engineId, + styleId: audioItem.styleId, + }; + const targetVoice = audioItem.morphingInfo && { + engineId: audioItem.morphingInfo.targetEngineId, + styleId: audioItem.morphingInfo.targetStyleId, + }; + if (!baseVoice || !targetVoice) { return false; - return ( - getters.MORPHING_SUPPORTED_ENGINES.includes(audioItem.engineId) && - audioItem.engineId === audioItem.morphingInfo.targetEngineId - ); + } + return getters.IS_A_VALID_MOPHING_PAIR(baseVoice, targetVoice); }, }, diff --git a/src/store/type.ts b/src/store/type.ts index ca05abd751..b1efb5a100 100644 --- a/src/store/type.ts +++ b/src/store/type.ts @@ -291,6 +291,13 @@ export type AudioStoreTypes = { getter: string[]; }; + IS_A_VALID_MOPHING_PAIR: { + getter( + baseVoice: { engineId: string; styleId: number }, + targetVoice: { engineId: string; styleId: number } + ): boolean; + }; + VALID_MOPHING_INFO: { getter(audioItem: AudioItem): boolean; }; From 118d59ecda2c32a89657f256ee3b5b9ebef28da0 Mon Sep 17 00:00:00 2001 From: segu_g Date: Thu, 19 Jan 2023 21:49:08 +0900 Subject: [PATCH 08/22] fix empty morphing character --- src/components/AudioInfo.vue | 56 +++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/src/components/AudioInfo.vue b/src/components/AudioInfo.vue index ae692e5947..201f03a0c3 100644 --- a/src/components/AudioInfo.vue +++ b/src/components/AudioInfo.vue @@ -441,7 +441,7 @@ 非対応エンジンです
@@ -663,7 +663,7 @@ export default defineComponent({ () => supportedFeatures.value?.synthesisMorphing ); - const isValidMorphingInfo = computed(() => { + const isInvalidMorphingInfo = computed(() => { if (audioItem.value.morphingInfo == undefined) return false; return !store.getters.VALID_MOPHING_INFO(audioItem.value); }); @@ -671,32 +671,42 @@ export default defineComponent({ const mophingTargetEngines = store.getters.MORPHING_SUPPORTED_ENGINES; const mophingTargetCharacters = computed(() => { + // 選択可能なスタイルをフィルタリングする. const baseEngineId = audioItem.value.engineId; const baseStyleId = audioItem.value.styleId; if (baseEngineId === undefined || baseStyleId == undefined) { return []; } - return store.getters.GET_ORDERED_ALL_CHARACTER_INFOS.map((character) => { - const targetStyles = character.metas.styles.filter((style) => - store.getters.IS_A_VALID_MOPHING_PAIR( - { - engineId: baseEngineId, - styleId: baseStyleId, + return [ + /** + * isInvalidMorphingInfoのとき、mophingTargetCharactersにmorphingTargetVoiceの + * 値が存在しないことによってcharacter-button内で画像が描画出来ない問題を防ぐ + */ + ...(isInvalidMorphingInfo.value && morphingTargetCharacterInfo.value + ? [morphingTargetCharacterInfo.value] + : []), + ...store.getters.GET_ORDERED_ALL_CHARACTER_INFOS.map((character) => { + const targetStyles = character.metas.styles.filter((style) => + store.getters.IS_A_VALID_MOPHING_PAIR( + { + engineId: baseEngineId, + styleId: baseStyleId, + }, + { + engineId: style.engineId, + styleId: style.styleId, + } + ) + ); + return { + ...character, + metas: { + ...character.metas, + styles: targetStyles, }, - { - engineId: style.engineId, - styleId: style.styleId, - } - ) - ); - return { - ...character, - metas: { - ...character.metas, - styles: targetStyles, - }, - }; - }).filter((characters) => characters.metas.styles.length >= 1); + }; + }).filter((characters) => characters.metas.styles.length >= 1), + ]; }); const morphingTargetVoice = computed({ @@ -1156,7 +1166,7 @@ export default defineComponent({ mophingTargetEngines, shouldShowMorphing, isSupportedMorphing, - isValidMorphingInfo, + isInvalidMorphingInfo, mophingTargetCharacters, morphingTargetVoice, morphingTargetCharacterInfo, From 5d2c8dbe2a68fbc67947833d224319d0263cd428 Mon Sep 17 00:00:00 2001 From: segu_g Date: Thu, 19 Jan 2023 22:03:03 +0900 Subject: [PATCH 09/22] add test --- tests/unit/store/Vuex.spec.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/unit/store/Vuex.spec.ts b/tests/unit/store/Vuex.spec.ts index 45dda25715..40cab2ba49 100644 --- a/tests/unit/store/Vuex.spec.ts +++ b/tests/unit/store/Vuex.spec.ts @@ -23,6 +23,7 @@ describe("store/vuex.js test", () => { "88022f86-c823-436e-85a3-500c629749c4": "STARTING", }, characterInfos: {}, + morphablePairInfo: {}, defaultStyleIds: [], userCharacterOrder: [], audioItems: {}, @@ -177,6 +178,7 @@ describe("store/vuex.js test", () => { assert.equal(store.state.engineStates[engineId], "STARTING") ); assert.isObject(store.state.characterInfos); + assert.isObject(store.state.morphablePairInfo); assert.isArray(store.state.defaultStyleIds); assert.isObject(store.state.audioItems); assert.isEmpty(store.state.audioItems); From 0d9f6900516479e71befbcdebcacd5576619f46c Mon Sep 17 00:00:00 2001 From: segu_g Date: Fri, 20 Jan 2023 02:03:46 +0900 Subject: [PATCH 10/22] throw error --- src/components/AudioInfo.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/AudioInfo.vue b/src/components/AudioInfo.vue index 201f03a0c3..568d6ef7ea 100644 --- a/src/components/AudioInfo.vue +++ b/src/components/AudioInfo.vue @@ -675,7 +675,9 @@ export default defineComponent({ const baseEngineId = audioItem.value.engineId; const baseStyleId = audioItem.value.styleId; if (baseEngineId === undefined || baseStyleId == undefined) { - return []; + throw new Error( + "baseEngineId == undefined || baseStyleId == undefined" + ); } return [ /** From 26301f04d6a3f15359218d4a7f70c9a003284f19 Mon Sep 17 00:00:00 2001 From: segu_g Date: Sat, 21 Jan 2023 20:50:34 +0900 Subject: [PATCH 11/22] fix `mophingTargetCharacters` code style --- src/components/AudioInfo.vue | 92 ++++++++++++++++++++++++------------ 1 file changed, 63 insertions(+), 29 deletions(-) diff --git a/src/components/AudioInfo.vue b/src/components/AudioInfo.vue index 568d6ef7ea..b80ab351de 100644 --- a/src/components/AudioInfo.vue +++ b/src/components/AudioInfo.vue @@ -679,36 +679,70 @@ export default defineComponent({ "baseEngineId == undefined || baseStyleId == undefined" ); } - return [ - /** - * isInvalidMorphingInfoのとき、mophingTargetCharactersにmorphingTargetVoiceの - * 値が存在しないことによってcharacter-button内で画像が描画出来ない問題を防ぐ - */ - ...(isInvalidMorphingInfo.value && morphingTargetCharacterInfo.value - ? [morphingTargetCharacterInfo.value] - : []), - ...store.getters.GET_ORDERED_ALL_CHARACTER_INFOS.map((character) => { - const targetStyles = character.metas.styles.filter((style) => - store.getters.IS_A_VALID_MOPHING_PAIR( - { - engineId: baseEngineId, - styleId: baseStyleId, - }, - { - engineId: style.engineId, - styleId: style.styleId, - } - ) + + const morphingTargetCharacterOptions = []; + + // モーフィング対象に選択されたキャラクターは一番上に表示する. + // キャラクター画像を表示する為、スタイルが選択不可能な場合でも現在選択されている値は残す + if (morphingTargetCharacterInfo.value) { + const selectableMorphingTargetStyles = + morphingTargetCharacterInfo.value.metas.styles.filter( + (style) => + style.styleId == morphingTargetVoice.value?.styleId || + store.getters.IS_A_VALID_MOPHING_PAIR( + { + engineId: baseEngineId, + styleId: baseStyleId, + }, + { + engineId: baseEngineId, + styleId: style.styleId, + } + ) ); - return { - ...character, - metas: { - ...character.metas, - styles: targetStyles, - }, - }; - }).filter((characters) => characters.metas.styles.length >= 1), - ]; + morphingTargetCharacterOptions.push({ + ...morphingTargetCharacterInfo.value, + metas: { + ...morphingTargetCharacterInfo.value.metas, + styles: selectableMorphingTargetStyles, + }, + }); + } + + // モーフィング対象のスタイルだけをフィルタリングする + morphingTargetCharacterOptions.splice( + 1, + 0, + ...store.getters.GET_ORDERED_ALL_CHARACTER_INFOS.filter( + (character) => + character.metas.speakerUuid !== + audioItem.value.morphingInfo?.targetSpeakerId + ) + .map((character) => { + const targetStyles = character.metas.styles.filter((style) => + store.getters.IS_A_VALID_MOPHING_PAIR( + { + engineId: baseEngineId, + styleId: baseStyleId, + }, + { + engineId: style.engineId, + styleId: style.styleId, + } + ) + ); + return { + ...character, + metas: { + ...character.metas, + styles: targetStyles, + }, + }; + }) + .filter((characters) => characters.metas.styles.length >= 1) + ); + + return morphingTargetCharacterOptions; }); const morphingTargetVoice = computed({ From 0f48143a40afc5e90f6dc73ac8745cd3bb6c11bc Mon Sep 17 00:00:00 2001 From: segu_g Date: Mon, 23 Jan 2023 03:17:30 +0900 Subject: [PATCH 12/22] cache store type --- src/store/audio.ts | 85 +++++++++++++++++----------------------- src/store/type.ts | 19 +++++---- src/type/preload.ts | 6 ++- src/views/EditorHome.vue | 2 +- 4 files changed, 51 insertions(+), 61 deletions(-) diff --git a/src/store/audio.ts b/src/store/audio.ts index 6e997712c2..c6cb7f5b34 100644 --- a/src/store/audio.ts +++ b/src/store/audio.ts @@ -35,6 +35,8 @@ import { convertAudioQueryFromEditorToEngine } from "./proxy"; import { createPartialStore } from "./vuex"; import { base64ImageToUri } from "@/helpers/imageHelper"; +const MORPHABLE_CHACHE_LIMIT = 16; + async function generateUniqueIdAndQuery( state: State, audioItem: AudioItem @@ -196,7 +198,8 @@ const audioElements: Record = {}; export const audioStoreState: AudioStoreState = { characterInfos: {}, - morphablePairInfo: {}, + morphableTargetsInfo: {}, + morphableTargetsCacheKey: {}, audioItems: {}, audioKeys: [], audioStates: {}, @@ -322,56 +325,38 @@ export const audioStore = createPartialStore({ }, }, - LOAD_MORPHABLE_PAIR: { - async action({ state, commit, dispatch }, { engineId }) { - if ( - !state.engineManifests[engineId].supportedFeatures?.synthesisMorphing - ) { - commit("SET_MORPHABLE_PAIR", { engineId, morphablePairInfo: {} }); - return; - } - const characterInfos = state.characterInfos[engineId]; - const styles = characterInfos.flatMap( - (characterInfo) => characterInfo.metas.styles - ); - const styleIds = styles.map((style) => style.styleId); - const morphablePairInfo = Object.fromEntries( - await Promise.all( - styleIds.map(async (baseStyleId) => [ - baseStyleId, - Object.fromEntries( - await Promise.all( - styleIds.map(async (targetStyleId) => [ - targetStyleId, - await ( - await dispatch("INSTANTIATE_ENGINE_CONNECTOR", { engineId }) - ) - /** booleanを返すAPIは何故か"true" | "false"となってしまう */ - .invoke("isMorphableIsMorphableGet")({ - baseSpeaker: baseStyleId, - targetSpeaker: targetStyleId, - }) - .then((res) => (res as unknown as string) === "true") - .catch((error) => { - window.electron.logError( - error, - `Failed to get isMorphableIsMorphableGet` - ); - return false; - }), - ]) - ) - ), - ]) - ) - ); - commit("SET_MORPHABLE_PAIR", { engineId, morphablePairInfo }); + INITIALIZE_MORPHING_INFO: { + mutation(state, { engineId }) { + state.morphableTargetsInfo[engineId] = {}; + state.morphableTargetsCacheKey[engineId] = []; + }, + action({ commit }, payload) { + commit("INITIALIZE_MORPHING_INFO", payload); }, }, - SET_MORPHABLE_PAIR: { - mutation(state, { engineId, morphablePairInfo }) { - state.morphablePairInfo[engineId] = morphablePairInfo; + SET_MORPHABLE_TARGETS: { + mutation(state, { engineId, baseStyleId, morphableTargets }) { + const prevIndex = state.morphableTargetsCacheKey[engineId].findIndex( + (styleId) => styleId === baseStyleId + ); + if (prevIndex < 0) { + state.morphableTargetsCacheKey[engineId].splice(0, 0, baseStyleId); + // キャッシュ上限を超えた場合は削除する + if ( + state.morphableTargetsCacheKey[engineId].length > + MORPHABLE_CHACHE_LIMIT + ) { + const postStyleId = state.morphableTargetsCacheKey[engineId].pop(); + if (postStyleId) { + delete state.morphableTargetsInfo[engineId][postStyleId]; + } + } + } else { + state.morphableTargetsCacheKey[engineId].splice(prevIndex, 1); + state.morphableTargetsCacheKey[engineId].splice(0, 0, baseStyleId); + } + state.morphableTargetsInfo[engineId][baseStyleId] = morphableTargets; }, }, @@ -769,9 +754,9 @@ export const audioStore = createPartialStore({ if (!getters.MORPHING_SUPPORTED_ENGINES.includes(engineId)) { return false; } - return !!state.morphablePairInfo[engineId]?.[baseVoice.styleId]?.[ + return !!state.morphableTargetsInfo[engineId][baseVoice.styleId]?.[ targetVoice.styleId - ]; + ]?.isMorphable; }, }, diff --git a/src/store/type.ts b/src/store/type.ts index b1efb5a100..b02319389f 100644 --- a/src/store/type.ts +++ b/src/store/type.ts @@ -37,7 +37,7 @@ import { ConfirmedTips, EngineDirValidationResult, EditorFontType, - MorphablePairInfo, + MorphableTargetsInfo, } from "@/type/preload"; import { IEngineConnectorFactory } from "@/infrastructures/EngineConnector"; import { QVueGlobals } from "quasar"; @@ -108,7 +108,8 @@ export type QuasarDialog = QVueGlobals["dialog"]; export type AudioStoreState = { characterInfos: Record; - morphablePairInfo: Record; + morphableTargetsInfo: Record; + morphableTargetsCacheKey: Record>; audioKeyInitializingSpeaker?: string; audioItems: Record; audioKeys: string[]; @@ -143,14 +144,11 @@ export type AudioStoreTypes = { mutation: { engineId: string; characterInfos: CharacterInfo[] }; }; - LOAD_MORPHABLE_PAIR: { - action(payload: { engineId: string }): void; - }; - - SET_MORPHABLE_PAIR: { + SET_MORPHABLE_TARGETS: { mutation: { engineId: string; - morphablePairInfo: MorphablePairInfo; + baseStyleId: number; + morphableTargets: Exclude; }; }; @@ -280,6 +278,11 @@ export type AudioStoreTypes = { mutation: { audioKey: string; postPhonemeLength: number }; }; + INITIALIZE_MORPHING_INFO: { + action(payload: { engineId: string }): void; + mutation: { engineId: string }; + }; + SET_MORPHING_INFO: { mutation: { audioKey: string; diff --git a/src/type/preload.ts b/src/type/preload.ts index cdef82e6e7..25c00381f6 100644 --- a/src/type/preload.ts +++ b/src/type/preload.ts @@ -309,11 +309,13 @@ export type PresetConfig = { keys: string[]; }; -export type MorphablePairInfo = { +export type MorphableTargetsInfo = { [baseStyleId: number]: | undefined | { - [targetStyleId: number]: undefined | boolean; + [targetStyleId: number]: { + isMorphable: boolean; + }; }; }; diff --git a/src/views/EditorHome.vue b/src/views/EditorHome.vue index e9427fc759..a52cbbb237 100644 --- a/src/views/EditorHome.vue +++ b/src/views/EditorHome.vue @@ -540,7 +540,7 @@ export default defineComponent({ await store.dispatch("LOAD_CHARACTER", { engineId }); - await store.dispatch("LOAD_MORPHABLE_PAIR", { engineId }); + await store.dispatch("INITIALIZE_MORPHING_INFO", { engineId }); }) ); await store.dispatch("LOAD_USER_CHARACTER_ORDER"); From 9c9248f2d353f31f40840fb2d309af52d12af07b Mon Sep 17 00:00:00 2001 From: segu_g Date: Mon, 23 Jan 2023 03:23:53 +0900 Subject: [PATCH 13/22] update openapi --- openapi.json | 2 +- src/openapi/.openapi-generator/FILES | 1 + src/openapi/apis/DefaultApi.ts | 139 +++++++++--------- src/openapi/models/AccentPhrase.ts | 2 +- src/openapi/models/AudioQuery.ts | 2 +- src/openapi/models/DownloadableLibrary.ts | 2 +- src/openapi/models/EngineManifest.ts | 2 +- src/openapi/models/HTTPValidationError.ts | 2 +- src/openapi/models/LicenseInfo.ts | 2 +- src/openapi/models/Mora.ts | 2 +- src/openapi/models/MorphableTargetInfo.ts | 56 +++++++ src/openapi/models/ParseKanaBadRequest.ts | 2 +- src/openapi/models/Preset.ts | 2 +- src/openapi/models/Speaker.ts | 16 +- src/openapi/models/SpeakerInfo.ts | 2 +- src/openapi/models/SpeakerStyle.ts | 2 +- ...peakerSupportPermittedSynthesisMorphing.ts | 2 +- .../models/SpeakerSupportedFeatures.ts | 2 +- src/openapi/models/StyleInfo.ts | 2 +- src/openapi/models/SupportedDevicesInfo.ts | 2 +- src/openapi/models/SupportedFeatures.ts | 2 +- src/openapi/models/UpdateInfo.ts | 2 +- src/openapi/models/UserDictWord.ts | 2 +- src/openapi/models/ValidationError.ts | 2 +- src/openapi/models/WordTypes.ts | 2 +- src/openapi/models/index.ts | 1 + src/openapi/runtime.ts | 2 +- 27 files changed, 154 insertions(+), 103 deletions(-) create mode 100644 src/openapi/models/MorphableTargetInfo.ts diff --git a/openapi.json b/openapi.json index 0705a53e10..b6d2b4bdf2 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1 @@ -{"openapi":"3.0.2","info":{"title":"VOICEVOX Engine","description":"VOICEVOXの音声合成エンジンです。","version":"0.14.0-preview.10"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"クエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Preset Id","type":"integer"},"name":"preset_id","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Is Kana","type":"boolean","default":false},"name":"is_kana","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Accent Phrases Accent Phrases Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Data Mora Data Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Length Mora Length Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Pitch Mora Pitch Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"疑問系のテキストが与えられたら語尾を自動調整する","required":false,"schema":{"title":"Enable Interrogative Upspeak","type":"boolean","description":"疑問系のテキストが与えられたら語尾を自動調整する","default":true},"name":"enable_interrogative_upspeak","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Queries","type":"array","items":{"$ref":"#/components/schemas/AudioQuery"}}}},"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"}}}}}}},"/is_morphable":{"get":{"tags":["音声合成"],"summary":"2人の話者でモーフィングが可能かどうか返す","description":"指定された2人の話者でモーフィング機能を利用可能か返します。\nモーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。\nプロパティが存在しない場合は、モーフィングが許可されているとみなします。","operationId":"is_morphable_is_morphable_get","parameters":[{"required":true,"schema":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Morphable Is Morphable Get","type":"boolean"}}}},"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":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":true,"schema":{"title":"Morph Rate","maximum":1.0,"minimum":0.0,"type":"number"},"name":"morph_rate","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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"}}}}}}},"/connect_waves":{"post":{"tags":["その他"],"summary":"base64エンコードされた複数のwavデータを一つに結合する","description":"base64エンコードされたwavデータを一纏めにし、wavファイルで返します。","operationId":"connect_waves_connect_waves_post","requestBody":{"content":{"application/json":{"schema":{"title":"Waves","type":"array","items":{"type":"string"}}}},"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":{"title":"Response Get Presets Presets Get","type":"array","items":{"$ref":"#/components/schemas/Preset"}}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/core_versions":{"get":{"tags":["その他"],"summary":"Core Versions","operationId":"core_versions_core_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Core Versions Core Versions Get","type":"array","items":{"type":"string"}}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","parameters":[{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Speakers Speakers Get","type":"array","items":{"$ref":"#/components/schemas/Speaker"}}}}},"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エンコードされたものが返されます。\n\nReturns\n-------\nret_data: SpeakerInfo","operationId":"speaker_info_speaker_info_get","parameters":[{"required":true,"schema":{"title":"Speaker Uuid","type":"string"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Response Downloadable Libraries Downloadable Libraries Get","type":"array","items":{"$ref":"#/components/schemas/DownloadableLibrary"}}}}}}}},"/initialize_speaker":{"post":{"tags":["その他"],"summary":"Initialize Speaker","description":"指定されたspeaker_idの話者を初期化します。\n実行しなくても他のAPIは使用できますが、初回実行時に時間がかかることがあります。","operationId":"initialize_speaker_initialize_speaker_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"既に初期化済みの話者の再初期化をスキップするかどうか","required":false,"schema":{"title":"Skip Reinit","type":"boolean","description":"既に初期化済みの話者の再初期化をスキップするかどうか","default":false},"name":"skip_reinit","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":"指定されたspeaker_idの話者が初期化されているかどうかを返します。","operationId":"is_initialized_speaker_is_initialized_speaker_get","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Initialized Speaker Is Initialized Speaker Get","type":"boolean"}}}},"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":{"title":"Response Get User Dict Words User Dict Get","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}}}}}},"/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":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"name":"priority","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Add User Dict Word User Dict Word Post","type":"string"}}}},"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":{"title":"Word Uuid","type":"string"},"name":"word_uuid","in":"path"},{"required":true,"schema":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"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":{"title":"Word Uuid","type":"string"},"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":{"title":"Override","type":"boolean"},"name":"override","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Import Dict Data","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}},"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":{"title":"Core Version","type":"string"},"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","operationId":"setting_get_setting_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["設定"],"summary":"Setting Post","operationId":"setting_post_setting_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setting_post_setting_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccentPhrase":{"title":"AccentPhrase","required":["moras","accent"],"type":"object","properties":{"moras":{"title":"モーラのリスト","type":"array","items":{"$ref":"#/components/schemas/Mora"}},"accent":{"title":"アクセント箇所","type":"integer"},"pause_mora":{"title":"後ろに無音を付けるかどうか","allOf":[{"$ref":"#/components/schemas/Mora"}]},"is_interrogative":{"title":"疑問系かどうか","type":"boolean","default":false}},"description":"アクセント句ごとの情報"},"AudioQuery":{"title":"AudioQuery","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"type":"object","properties":{"accent_phrases":{"title":"アクセント句のリスト","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"},"outputSamplingRate":{"title":"音声データの出力サンプリングレート","type":"integer"},"outputStereo":{"title":"音声データをステレオ出力するか否か","type":"boolean"},"kana":{"title":"[読み取り専用]AquesTalkライクな読み仮名。音声合成クエリとしては無視される","type":"string"}},"description":"音声合成用のクエリ"},"Body_setting_post_setting_post":{"title":"Body_setting_post_setting_post","type":"object","properties":{"cors_policy_mode":{"title":"Cors Policy Mode","type":"string"},"allow_origin":{"title":"Allow Origin","type":"string"}}},"DownloadableLibrary":{"title":"DownloadableLibrary","required":["download_url","bytes","speaker","speaker_info"],"type":"object","properties":{"download_url":{"title":"音声ライブラリのダウンロードURL","type":"string"},"bytes":{"title":"音声ライブラリのバイト数","type":"integer"},"speaker":{"title":"話者情報","allOf":[{"$ref":"#/components/schemas/Speaker"}]},"speaker_info":{"title":"話者の追加情報","allOf":[{"$ref":"#/components/schemas/SpeakerInfo"}]}},"description":"ダウンロード可能な音声ライブラリの情報(最新情報をwebで取得することを考慮して、ローカルの情報はない)"},"EngineManifest":{"title":"EngineManifest","required":["manifest_version","name","brand_name","uuid","url","icon","default_sampling_rate","terms_of_service","update_infos","dependency_licenses","supported_features"],"type":"object","properties":{"manifest_version":{"title":"マニフェストのバージョン","type":"string"},"name":{"title":"エンジン名","type":"string"},"brand_name":{"title":"ブランド名","type":"string"},"uuid":{"title":"エンジンのUUID","type":"string"},"url":{"title":"エンジンのURL","type":"string"},"icon":{"title":"エンジンのアイコンをBASE64エンコードしたもの","type":"string"},"default_sampling_rate":{"title":"デフォルトのサンプリング周波数","type":"integer"},"terms_of_service":{"title":"エンジンの利用規約","type":"string"},"update_infos":{"title":"エンジンのアップデート情報","type":"array","items":{"$ref":"#/components/schemas/UpdateInfo"}},"dependency_licenses":{"title":"依存関係のライセンス情報","type":"array","items":{"$ref":"#/components/schemas/LicenseInfo"}},"downloadable_libraries_path":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのローカルjsonパス","type":"string"},"downloadable_libraries_url":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのAPIのURL","type":"string"},"supported_features":{"title":"エンジンが持つ機能","allOf":[{"$ref":"#/components/schemas/SupportedFeatures"}]}},"description":"エンジン自体に関する情報"},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"LicenseInfo":{"title":"LicenseInfo","required":["name","text"],"type":"object","properties":{"name":{"title":"依存ライブラリ名","type":"string"},"version":{"title":"依存ライブラリのバージョン","type":"string"},"license":{"title":"依存ライブラリのライセンス名","type":"string"},"text":{"title":"依存ライブラリのライセンス本文","type":"string"}},"description":"依存ライブラリのライセンス情報"},"Mora":{"title":"Mora","required":["text","vowel","vowel_length","pitch"],"type":"object","properties":{"text":{"title":"文字","type":"string"},"consonant":{"title":"子音の音素","type":"string"},"consonant_length":{"title":"子音の音長","type":"number"},"vowel":{"title":"母音の音素","type":"string"},"vowel_length":{"title":"母音の音長","type":"number"},"pitch":{"title":"音高","type":"number"}},"description":"モーラ(子音+母音)ごとの情報"},"ParseKanaBadRequest":{"title":"ParseKanaBadRequest","required":["text","error_name","error_args"],"type":"object","properties":{"text":{"title":"エラーメッセージ","type":"string"},"error_name":{"title":"エラー名","type":"string","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":{"title":"エラーを起こした箇所","type":"object","additionalProperties":{"type":"string"}}}},"Preset":{"title":"Preset","required":["id","name","speaker_uuid","style_id","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength"],"type":"object","properties":{"id":{"title":"プリセットID","type":"integer"},"name":{"title":"プリセット名","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"style_id":{"title":"スタイルID","type":"integer"},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"}},"description":"プリセット情報"},"Speaker":{"title":"Speaker","required":["name","speaker_uuid","styles"],"type":"object","properties":{"name":{"title":"名前","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"supported_features":{"title":"スピーカーの対応機能","allOf":[{"$ref":"#/components/schemas/SpeakerSupportedFeatures"}]},"styles":{"title":"スピーカースタイルの一覧","type":"array","items":{"$ref":"#/components/schemas/SpeakerStyle"}},"version":{"title":"Version","type":"string","default":"スピーカーのバージョン"}},"description":"スピーカー情報"},"SpeakerInfo":{"title":"SpeakerInfo","required":["policy","portrait","style_infos"],"type":"object","properties":{"policy":{"title":"policy.md","type":"string"},"portrait":{"title":"portrait.pngをbase64エンコードしたもの","type":"string"},"style_infos":{"title":"スタイルの追加情報","type":"array","items":{"$ref":"#/components/schemas/StyleInfo"}}},"description":"話者の追加情報"},"SpeakerStyle":{"title":"SpeakerStyle","required":["name","id"],"type":"object","properties":{"name":{"title":"スタイル名","type":"string"},"id":{"title":"スタイルID","type":"integer"}},"description":"スピーカーのスタイル情報"},"SpeakerSupportPermittedSynthesisMorphing":{"title":"SpeakerSupportPermittedSynthesisMorphing","enum":["ALL","SELF_ONLY","NOTHING"],"type":"string","description":"An enumeration."},"SpeakerSupportedFeatures":{"title":"SpeakerSupportedFeatures","type":"object","properties":{"permitted_synthesis_morphing":{"title":"モーフィング機能への対応","allOf":[{"$ref":"#/components/schemas/SpeakerSupportPermittedSynthesisMorphing"}],"default":"ALL"}},"description":"話者の対応機能の情報"},"StyleInfo":{"title":"StyleInfo","required":["id","icon","voice_samples"],"type":"object","properties":{"id":{"title":"スタイルID","type":"integer"},"icon":{"title":"当該スタイルのアイコンをbase64エンコードしたもの","type":"string"},"portrait":{"title":"当該スタイルのportrait.pngをbase64エンコードしたもの","type":"string"},"voice_samples":{"title":"voice_sampleのwavファイルをbase64エンコードしたもの","type":"array","items":{"type":"string"}}},"description":"スタイルの追加情報"},"SupportedDevicesInfo":{"title":"SupportedDevicesInfo","required":["cpu","cuda","dml"],"type":"object","properties":{"cpu":{"title":"CPUに対応しているか","type":"boolean"},"cuda":{"title":"CUDA(Nvidia GPU)に対応しているか","type":"boolean"},"dml":{"title":"DirectML(Nvidia GPU/Radeon GPU等)に対応しているか","type":"boolean"}},"description":"対応しているデバイスの情報"},"SupportedFeatures":{"title":"SupportedFeatures","required":["adjust_mora_pitch","adjust_phoneme_length","adjust_speed_scale","adjust_pitch_scale","adjust_intonation_scale","adjust_volume_scale","interrogative_upspeak","synthesis_morphing"],"type":"object","properties":{"adjust_mora_pitch":{"title":"モーラごとの音高の調整","type":"boolean"},"adjust_phoneme_length":{"title":"音素ごとの長さの調整","type":"boolean"},"adjust_speed_scale":{"title":"全体の話速の調整","type":"boolean"},"adjust_pitch_scale":{"title":"全体の音高の調整","type":"boolean"},"adjust_intonation_scale":{"title":"全体の抑揚の調整","type":"boolean"},"adjust_volume_scale":{"title":"全体の音量の調整","type":"boolean"},"interrogative_upspeak":{"title":"疑問文の自動調整","type":"boolean"},"synthesis_morphing":{"title":"2人の話者でモーフィングした音声を合成","type":"boolean"}},"description":"エンジンが持つ機能の一覧"},"UpdateInfo":{"title":"UpdateInfo","required":["version","descriptions"],"type":"object","properties":{"version":{"title":"エンジンのバージョン名","type":"string"},"descriptions":{"title":"アップデートの詳細についての説明","type":"array","items":{"type":"string"}},"contributors":{"title":"貢献者名","type":"array","items":{"type":"string"}}},"description":"エンジンのアップデート情報"},"UserDictWord":{"title":"UserDictWord","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"],"type":"object","properties":{"surface":{"title":"表層形","type":"string"},"priority":{"title":"優先度","maximum":10.0,"minimum":0.0,"type":"integer"},"context_id":{"title":"文脈ID","type":"integer","default":1348},"part_of_speech":{"title":"品詞","type":"string"},"part_of_speech_detail_1":{"title":"品詞細分類1","type":"string"},"part_of_speech_detail_2":{"title":"品詞細分類2","type":"string"},"part_of_speech_detail_3":{"title":"品詞細分類3","type":"string"},"inflectional_type":{"title":"活用型","type":"string"},"inflectional_form":{"title":"活用形","type":"string"},"stem":{"title":"原形","type":"string"},"yomi":{"title":"読み","type":"string"},"pronunciation":{"title":"発音","type":"string"},"accent_type":{"title":"アクセント型","type":"integer"},"mora_count":{"title":"モーラ数","type":"integer"},"accent_associative_rule":{"title":"アクセント結合規則","type":"string"}},"description":"辞書のコンパイルに使われる情報"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}},"WordTypes":{"title":"WordTypes","enum":["PROPER_NOUN","COMMON_NOUN","VERB","ADJECTIVE","SUFFIX"],"type":"string","description":"\n fastapiでword_type引数を検証する時に使用するクラス\n "}}}} \ No newline at end of file +{"openapi":"3.0.2","info":{"title":"VOICEVOX Engine","description":"VOICEVOXの音声合成エンジンです。","version":"0.14.0-preview.11"},"paths":{"/audio_query":{"post":{"tags":["クエリ作成"],"summary":"音声合成用のクエリを作成する","description":"クエリの初期値を得ます。ここで得られたクエリはそのまま音声合成に利用できます。各値の意味は`Schemas`を参照してください。","operationId":"audio_query_audio_query_post","parameters":[{"required":true,"schema":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Preset Id","type":"integer"},"name":"preset_id","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Text","type":"string"},"name":"text","in":"query"},{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Is Kana","type":"boolean","default":false},"name":"is_kana","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Accent Phrases Accent Phrases Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Data Mora Data Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Length Mora Length Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Accent Phrases","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mora Pitch Mora Pitch Post","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/synthesis":{"post":{"tags":["音声合成"],"summary":"音声合成する","operationId":"synthesis_synthesis_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"疑問系のテキストが与えられたら語尾を自動調整する","required":false,"schema":{"title":"Enable Interrogative Upspeak","type":"boolean","description":"疑問系のテキストが与えられたら語尾を自動調整する","default":true},"name":"enable_interrogative_upspeak","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Queries","type":"array","items":{"$ref":"#/components/schemas/AudioQuery"}}}},"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":{"get":{"tags":["音声合成"],"summary":"base_speakersに指定した話者に対してエンジン内の話者がモーフィングが可能かどうか返す","description":"指定されたベース話者に対してエンジン内の各話者がモーフィング機能を利用可能か返します。\nモーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。\nプロパティが存在しない場合は、モーフィングが許可されているとみなします。","operationId":"morphable_targets_morphable_targets_get","parameters":[{"required":true,"schema":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Morphable Targets Morphable Targets Get","type":"object","additionalProperties":{"$ref":"#/components/schemas/MorphableTargetInfo"}}}}},"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":{"title":"Base Speaker","type":"integer"},"name":"base_speaker","in":"query"},{"required":true,"schema":{"title":"Target Speaker","type":"integer"},"name":"target_speaker","in":"query"},{"required":true,"schema":{"title":"Morph Rate","maximum":1.0,"minimum":0.0,"type":"number"},"name":"morph_rate","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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"}}}}}}},"/connect_waves":{"post":{"tags":["その他"],"summary":"base64エンコードされた複数のwavデータを一つに結合する","description":"base64エンコードされたwavデータを一纏めにし、wavファイルで返します。","operationId":"connect_waves_connect_waves_post","requestBody":{"content":{"application/json":{"schema":{"title":"Waves","type":"array","items":{"type":"string"}}}},"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":{"title":"Response Get Presets Presets Get","type":"array","items":{"$ref":"#/components/schemas/Preset"}}}}}}}},"/version":{"get":{"tags":["その他"],"summary":"Version","operationId":"version_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/core_versions":{"get":{"tags":["その他"],"summary":"Core Versions","operationId":"core_versions_core_versions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Core Versions Core Versions Get","type":"array","items":{"type":"string"}}}}}}}},"/speakers":{"get":{"tags":["その他"],"summary":"Speakers","operationId":"speakers_speakers_get","parameters":[{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Speakers Speakers Get","type":"array","items":{"$ref":"#/components/schemas/Speaker"}}}}},"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エンコードされたものが返されます。\n\nReturns\n-------\nret_data: SpeakerInfo","operationId":"speaker_info_speaker_info_get","parameters":[{"required":true,"schema":{"title":"Speaker Uuid","type":"string"},"name":"speaker_uuid","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":{"title":"Response Downloadable Libraries Downloadable Libraries Get","type":"array","items":{"$ref":"#/components/schemas/DownloadableLibrary"}}}}}}}},"/initialize_speaker":{"post":{"tags":["その他"],"summary":"Initialize Speaker","description":"指定されたspeaker_idの話者を初期化します。\n実行しなくても他のAPIは使用できますが、初回実行時に時間がかかることがあります。","operationId":"initialize_speaker_initialize_speaker_post","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"description":"既に初期化済みの話者の再初期化をスキップするかどうか","required":false,"schema":{"title":"Skip Reinit","type":"boolean","description":"既に初期化済みの話者の再初期化をスキップするかどうか","default":false},"name":"skip_reinit","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"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":"指定されたspeaker_idの話者が初期化されているかどうかを返します。","operationId":"is_initialized_speaker_is_initialized_speaker_get","parameters":[{"required":true,"schema":{"title":"Speaker","type":"integer"},"name":"speaker","in":"query"},{"required":false,"schema":{"title":"Core Version","type":"string"},"name":"core_version","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Is Initialized Speaker Is Initialized Speaker Get","type":"boolean"}}}},"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":{"title":"Response Get User Dict Words User Dict Get","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}}}}}},"/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":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"name":"priority","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Add User Dict Word User Dict Word Post","type":"string"}}}},"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":{"title":"Word Uuid","type":"string"},"name":"word_uuid","in":"path"},{"required":true,"schema":{"title":"Surface","type":"string"},"name":"surface","in":"query"},{"required":true,"schema":{"title":"Pronunciation","type":"string"},"name":"pronunciation","in":"query"},{"required":true,"schema":{"title":"Accent Type","type":"integer"},"name":"accent_type","in":"query"},{"required":false,"schema":{"$ref":"#/components/schemas/WordTypes"},"name":"word_type","in":"query"},{"required":false,"schema":{"title":"Priority","maximum":10.0,"minimum":0.0,"type":"integer"},"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":{"title":"Word Uuid","type":"string"},"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":{"title":"Override","type":"boolean"},"name":"override","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"title":"Import Dict Data","type":"object","additionalProperties":{"$ref":"#/components/schemas/UserDictWord"}}}},"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":{"title":"Core Version","type":"string"},"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","operationId":"setting_get_setting_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"tags":["設定"],"summary":"Setting Post","operationId":"setting_post_setting_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_setting_post_setting_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccentPhrase":{"title":"AccentPhrase","required":["moras","accent"],"type":"object","properties":{"moras":{"title":"モーラのリスト","type":"array","items":{"$ref":"#/components/schemas/Mora"}},"accent":{"title":"アクセント箇所","type":"integer"},"pause_mora":{"title":"後ろに無音を付けるかどうか","allOf":[{"$ref":"#/components/schemas/Mora"}]},"is_interrogative":{"title":"疑問系かどうか","type":"boolean","default":false}},"description":"アクセント句ごとの情報"},"AudioQuery":{"title":"AudioQuery","required":["accent_phrases","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength","outputSamplingRate","outputStereo"],"type":"object","properties":{"accent_phrases":{"title":"アクセント句のリスト","type":"array","items":{"$ref":"#/components/schemas/AccentPhrase"}},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"},"outputSamplingRate":{"title":"音声データの出力サンプリングレート","type":"integer"},"outputStereo":{"title":"音声データをステレオ出力するか否か","type":"boolean"},"kana":{"title":"[読み取り専用]AquesTalkライクな読み仮名。音声合成クエリとしては無視される","type":"string"}},"description":"音声合成用のクエリ"},"Body_setting_post_setting_post":{"title":"Body_setting_post_setting_post","type":"object","properties":{"cors_policy_mode":{"title":"Cors Policy Mode","type":"string"},"allow_origin":{"title":"Allow Origin","type":"string"}}},"DownloadableLibrary":{"title":"DownloadableLibrary","required":["download_url","bytes","speaker","speaker_info"],"type":"object","properties":{"download_url":{"title":"音声ライブラリのダウンロードURL","type":"string"},"bytes":{"title":"音声ライブラリのバイト数","type":"integer"},"speaker":{"title":"話者情報","allOf":[{"$ref":"#/components/schemas/Speaker"}]},"speaker_info":{"title":"話者の追加情報","allOf":[{"$ref":"#/components/schemas/SpeakerInfo"}]}},"description":"ダウンロード可能な音声ライブラリの情報(最新情報をwebで取得することを考慮して、ローカルの情報はない)"},"EngineManifest":{"title":"EngineManifest","required":["manifest_version","name","brand_name","uuid","url","icon","default_sampling_rate","terms_of_service","update_infos","dependency_licenses","supported_features"],"type":"object","properties":{"manifest_version":{"title":"マニフェストのバージョン","type":"string"},"name":{"title":"エンジン名","type":"string"},"brand_name":{"title":"ブランド名","type":"string"},"uuid":{"title":"エンジンのUUID","type":"string"},"url":{"title":"エンジンのURL","type":"string"},"icon":{"title":"エンジンのアイコンをBASE64エンコードしたもの","type":"string"},"default_sampling_rate":{"title":"デフォルトのサンプリング周波数","type":"integer"},"terms_of_service":{"title":"エンジンの利用規約","type":"string"},"update_infos":{"title":"エンジンのアップデート情報","type":"array","items":{"$ref":"#/components/schemas/UpdateInfo"}},"dependency_licenses":{"title":"依存関係のライセンス情報","type":"array","items":{"$ref":"#/components/schemas/LicenseInfo"}},"downloadable_libraries_path":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのローカルjsonパス","type":"string"},"downloadable_libraries_url":{"title":"ダウンロード可能な音声ライブラリ情報を取得するためのAPIのURL","type":"string"},"supported_features":{"title":"エンジンが持つ機能","allOf":[{"$ref":"#/components/schemas/SupportedFeatures"}]}},"description":"エンジン自体に関する情報"},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"LicenseInfo":{"title":"LicenseInfo","required":["name","text"],"type":"object","properties":{"name":{"title":"依存ライブラリ名","type":"string"},"version":{"title":"依存ライブラリのバージョン","type":"string"},"license":{"title":"依存ライブラリのライセンス名","type":"string"},"text":{"title":"依存ライブラリのライセンス本文","type":"string"}},"description":"依存ライブラリのライセンス情報"},"Mora":{"title":"Mora","required":["text","vowel","vowel_length","pitch"],"type":"object","properties":{"text":{"title":"文字","type":"string"},"consonant":{"title":"子音の音素","type":"string"},"consonant_length":{"title":"子音の音長","type":"number"},"vowel":{"title":"母音の音素","type":"string"},"vowel_length":{"title":"母音の音長","type":"number"},"pitch":{"title":"音高","type":"number"}},"description":"モーラ(子音+母音)ごとの情報"},"MorphableTargetInfo":{"title":"MorphableTargetInfo","required":["is_morphable"],"type":"object","properties":{"is_morphable":{"title":"指定したbaseに対してモーフィングの可否","type":"boolean"}}},"ParseKanaBadRequest":{"title":"ParseKanaBadRequest","required":["text","error_name","error_args"],"type":"object","properties":{"text":{"title":"エラーメッセージ","type":"string"},"error_name":{"title":"エラー名","type":"string","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":{"title":"エラーを起こした箇所","type":"object","additionalProperties":{"type":"string"}}}},"Preset":{"title":"Preset","required":["id","name","speaker_uuid","style_id","speedScale","pitchScale","intonationScale","volumeScale","prePhonemeLength","postPhonemeLength"],"type":"object","properties":{"id":{"title":"プリセットID","type":"integer"},"name":{"title":"プリセット名","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"style_id":{"title":"スタイルID","type":"integer"},"speedScale":{"title":"全体の話速","type":"number"},"pitchScale":{"title":"全体の音高","type":"number"},"intonationScale":{"title":"全体の抑揚","type":"number"},"volumeScale":{"title":"全体の音量","type":"number"},"prePhonemeLength":{"title":"音声の前の無音時間","type":"number"},"postPhonemeLength":{"title":"音声の後の無音時間","type":"number"}},"description":"プリセット情報"},"Speaker":{"title":"Speaker","required":["name","speaker_uuid","styles"],"type":"object","properties":{"supported_features":{"title":"スピーカーの対応機能","allOf":[{"$ref":"#/components/schemas/SpeakerSupportedFeatures"}]},"name":{"title":"名前","type":"string"},"speaker_uuid":{"title":"スピーカーのUUID","type":"string"},"styles":{"title":"スピーカースタイルの一覧","type":"array","items":{"$ref":"#/components/schemas/SpeakerStyle"}},"version":{"title":"Version","type":"string","default":"スピーカーのバージョン"}},"description":"スピーカー情報"},"SpeakerInfo":{"title":"SpeakerInfo","required":["policy","portrait","style_infos"],"type":"object","properties":{"policy":{"title":"policy.md","type":"string"},"portrait":{"title":"portrait.pngをbase64エンコードしたもの","type":"string"},"style_infos":{"title":"スタイルの追加情報","type":"array","items":{"$ref":"#/components/schemas/StyleInfo"}}},"description":"話者の追加情報"},"SpeakerStyle":{"title":"SpeakerStyle","required":["name","id"],"type":"object","properties":{"name":{"title":"スタイル名","type":"string"},"id":{"title":"スタイルID","type":"integer"}},"description":"スピーカーのスタイル情報"},"SpeakerSupportPermittedSynthesisMorphing":{"title":"SpeakerSupportPermittedSynthesisMorphing","enum":["ALL","SELF_ONLY","NOTHING"],"type":"string","description":"An enumeration."},"SpeakerSupportedFeatures":{"title":"SpeakerSupportedFeatures","type":"object","properties":{"permitted_synthesis_morphing":{"title":"モーフィング機能への対応","allOf":[{"$ref":"#/components/schemas/SpeakerSupportPermittedSynthesisMorphing"}],"default":"ALL"}},"description":"話者の対応機能の情報"},"StyleInfo":{"title":"StyleInfo","required":["id","icon","voice_samples"],"type":"object","properties":{"id":{"title":"スタイルID","type":"integer"},"icon":{"title":"当該スタイルのアイコンをbase64エンコードしたもの","type":"string"},"portrait":{"title":"当該スタイルのportrait.pngをbase64エンコードしたもの","type":"string"},"voice_samples":{"title":"voice_sampleのwavファイルをbase64エンコードしたもの","type":"array","items":{"type":"string"}}},"description":"スタイルの追加情報"},"SupportedDevicesInfo":{"title":"SupportedDevicesInfo","required":["cpu","cuda","dml"],"type":"object","properties":{"cpu":{"title":"CPUに対応しているか","type":"boolean"},"cuda":{"title":"CUDA(Nvidia GPU)に対応しているか","type":"boolean"},"dml":{"title":"DirectML(Nvidia GPU/Radeon GPU等)に対応しているか","type":"boolean"}},"description":"対応しているデバイスの情報"},"SupportedFeatures":{"title":"SupportedFeatures","required":["adjust_mora_pitch","adjust_phoneme_length","adjust_speed_scale","adjust_pitch_scale","adjust_intonation_scale","adjust_volume_scale","interrogative_upspeak","synthesis_morphing"],"type":"object","properties":{"adjust_mora_pitch":{"title":"モーラごとの音高の調整","type":"boolean"},"adjust_phoneme_length":{"title":"音素ごとの長さの調整","type":"boolean"},"adjust_speed_scale":{"title":"全体の話速の調整","type":"boolean"},"adjust_pitch_scale":{"title":"全体の音高の調整","type":"boolean"},"adjust_intonation_scale":{"title":"全体の抑揚の調整","type":"boolean"},"adjust_volume_scale":{"title":"全体の音量の調整","type":"boolean"},"interrogative_upspeak":{"title":"疑問文の自動調整","type":"boolean"},"synthesis_morphing":{"title":"2人の話者でモーフィングした音声を合成","type":"boolean"}},"description":"エンジンが持つ機能の一覧"},"UpdateInfo":{"title":"UpdateInfo","required":["version","descriptions"],"type":"object","properties":{"version":{"title":"エンジンのバージョン名","type":"string"},"descriptions":{"title":"アップデートの詳細についての説明","type":"array","items":{"type":"string"}},"contributors":{"title":"貢献者名","type":"array","items":{"type":"string"}}},"description":"エンジンのアップデート情報"},"UserDictWord":{"title":"UserDictWord","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"],"type":"object","properties":{"surface":{"title":"表層形","type":"string"},"priority":{"title":"優先度","maximum":10.0,"minimum":0.0,"type":"integer"},"context_id":{"title":"文脈ID","type":"integer","default":1348},"part_of_speech":{"title":"品詞","type":"string"},"part_of_speech_detail_1":{"title":"品詞細分類1","type":"string"},"part_of_speech_detail_2":{"title":"品詞細分類2","type":"string"},"part_of_speech_detail_3":{"title":"品詞細分類3","type":"string"},"inflectional_type":{"title":"活用型","type":"string"},"inflectional_form":{"title":"活用形","type":"string"},"stem":{"title":"原形","type":"string"},"yomi":{"title":"読み","type":"string"},"pronunciation":{"title":"発音","type":"string"},"accent_type":{"title":"アクセント型","type":"integer"},"mora_count":{"title":"モーラ数","type":"integer"},"accent_associative_rule":{"title":"アクセント結合規則","type":"string"}},"description":"辞書のコンパイルに使われる情報"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"type":"string"}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}},"WordTypes":{"title":"WordTypes","enum":["PROPER_NOUN","COMMON_NOUN","VERB","ADJECTIVE","SUFFIX"],"type":"string","description":"\n fastapiでword_type引数を検証する時に使用するクラス\n "}}}} \ No newline at end of file diff --git a/src/openapi/.openapi-generator/FILES b/src/openapi/.openapi-generator/FILES index a95612bd21..a953c62938 100644 --- a/src/openapi/.openapi-generator/FILES +++ b/src/openapi/.openapi-generator/FILES @@ -8,6 +8,7 @@ models/EngineManifest.ts models/HTTPValidationError.ts models/LicenseInfo.ts models/Mora.ts +models/MorphableTargetInfo.ts models/ParseKanaBadRequest.ts models/Preset.ts models/Speaker.ts diff --git a/src/openapi/apis/DefaultApi.ts b/src/openapi/apis/DefaultApi.ts index ead5543c2f..6484132e3c 100644 --- a/src/openapi/apis/DefaultApi.ts +++ b/src/openapi/apis/DefaultApi.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -30,6 +30,9 @@ import { HTTPValidationError, HTTPValidationErrorFromJSON, HTTPValidationErrorToJSON, + MorphableTargetInfo, + MorphableTargetInfoFromJSON, + MorphableTargetInfoToJSON, ParseKanaBadRequest, ParseKanaBadRequestFromJSON, ParseKanaBadRequestToJSON, @@ -110,12 +113,6 @@ export interface IsInitializedSpeakerIsInitializedSpeakerGetRequest { coreVersion?: string; } -export interface IsMorphableIsMorphableGetRequest { - baseSpeaker: number; - targetSpeaker: number; - coreVersion?: string; -} - export interface MoraDataMoraDataPostRequest { speaker: number; accentPhrase: Array; @@ -134,6 +131,11 @@ export interface MoraPitchMoraPitchPostRequest { coreVersion?: string; } +export interface MorphableTargetsMorphableTargetsGetRequest { + baseSpeaker: number; + coreVersion?: string; +} + export interface MultiSynthesisMultiSynthesisPostRequest { speaker: number; audioQuery: Array; @@ -438,24 +440,6 @@ export interface DefaultApiInterface { */ isInitializedSpeakerIsInitializedSpeakerGet(requestParameters: IsInitializedSpeakerIsInitializedSpeakerGetRequest, initOverrides?: RequestInit): Promise; - /** - * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 - * @summary 2人の話者でモーフィングが可能かどうか返す - * @param {number} baseSpeaker - * @param {number} targetSpeaker - * @param {string} [coreVersion] - * @param {*} [options] Override http request option. - * @throws {RequiredError} - * @memberof DefaultApiInterface - */ - isMorphableIsMorphableGetRaw(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise>; - - /** - * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 - * 2人の話者でモーフィングが可能かどうか返す - */ - isMorphableIsMorphableGet(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise; - /** * * @summary アクセント句から音高・音素長を得る @@ -507,6 +491,23 @@ export interface DefaultApiInterface { */ moraPitchMoraPitchPost(requestParameters: MoraPitchMoraPitchPostRequest, initOverrides?: RequestInit): Promise>; + /** + * 指定されたベース話者に対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * @summary base_speakersに指定した話者に対してエンジン内の話者がモーフィングが可能かどうか返す + * @param {number} baseSpeaker + * @param {string} [coreVersion] + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof DefaultApiInterface + */ + morphableTargetsMorphableTargetsGetRaw(requestParameters: MorphableTargetsMorphableTargetsGetRequest, initOverrides?: RequestInit): Promise>; + + /** + * 指定されたベース話者に対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * base_speakersに指定した話者に対してエンジン内の話者がモーフィングが可能かどうか返す + */ + morphableTargetsMorphableTargetsGet(requestParameters: MorphableTargetsMorphableTargetsGetRequest, initOverrides?: RequestInit): Promise<{ [key: string]: MorphableTargetInfo; }>; + /** * * @summary 複数まとめて音声合成する @@ -1261,54 +1262,6 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { return await response.value(); } - /** - * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 - * 2人の話者でモーフィングが可能かどうか返す - */ - async isMorphableIsMorphableGetRaw(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise> { - if (requestParameters.baseSpeaker === null || requestParameters.baseSpeaker === undefined) { - throw new runtime.RequiredError('baseSpeaker','Required parameter requestParameters.baseSpeaker was null or undefined when calling isMorphableIsMorphableGet.'); - } - - if (requestParameters.targetSpeaker === null || requestParameters.targetSpeaker === undefined) { - throw new runtime.RequiredError('targetSpeaker','Required parameter requestParameters.targetSpeaker was null or undefined when calling isMorphableIsMorphableGet.'); - } - - const queryParameters: any = {}; - - if (requestParameters.baseSpeaker !== undefined) { - queryParameters['base_speaker'] = requestParameters.baseSpeaker; - } - - if (requestParameters.targetSpeaker !== undefined) { - queryParameters['target_speaker'] = requestParameters.targetSpeaker; - } - - if (requestParameters.coreVersion !== undefined) { - queryParameters['core_version'] = requestParameters.coreVersion; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request({ - path: `/is_morphable`, - method: 'GET', - headers: headerParameters, - query: queryParameters, - }, initOverrides); - - return new runtime.TextApiResponse(response) as any; - } - - /** - * 指定された2人の話者でモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesisMorphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 - * 2人の話者でモーフィングが可能かどうか返す - */ - async isMorphableIsMorphableGet(requestParameters: IsMorphableIsMorphableGetRequest, initOverrides?: RequestInit): Promise { - const response = await this.isMorphableIsMorphableGetRaw(requestParameters, initOverrides); - return await response.value(); - } - /** * アクセント句から音高・音素長を得る */ @@ -1444,6 +1397,46 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface { return await response.value(); } + /** + * 指定されたベース話者に対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * base_speakersに指定した話者に対してエンジン内の話者がモーフィングが可能かどうか返す + */ + async morphableTargetsMorphableTargetsGetRaw(requestParameters: MorphableTargetsMorphableTargetsGetRequest, initOverrides?: RequestInit): Promise> { + if (requestParameters.baseSpeaker === null || requestParameters.baseSpeaker === undefined) { + throw new runtime.RequiredError('baseSpeaker','Required parameter requestParameters.baseSpeaker was null or undefined when calling morphableTargetsMorphableTargetsGet.'); + } + + const queryParameters: any = {}; + + if (requestParameters.baseSpeaker !== undefined) { + queryParameters['base_speaker'] = requestParameters.baseSpeaker; + } + + if (requestParameters.coreVersion !== undefined) { + queryParameters['core_version'] = requestParameters.coreVersion; + } + + const headerParameters: runtime.HTTPHeaders = {}; + + const response = await this.request({ + path: `/morphable_targets`, + method: 'GET', + headers: headerParameters, + query: queryParameters, + }, initOverrides); + + return new runtime.JSONApiResponse(response, (jsonValue) => runtime.mapValues(jsonValue, MorphableTargetInfoFromJSON)); + } + + /** + * 指定されたベース話者に対してエンジン内の各話者がモーフィング機能を利用可能か返します。 モーフィングの許可/禁止は`/speakers`の`speaker.supported_features.synthesis_morphing`に記載されています。 プロパティが存在しない場合は、モーフィングが許可されているとみなします。 + * base_speakersに指定した話者に対してエンジン内の話者がモーフィングが可能かどうか返す + */ + async morphableTargetsMorphableTargetsGet(requestParameters: MorphableTargetsMorphableTargetsGetRequest, initOverrides?: RequestInit): Promise<{ [key: string]: MorphableTargetInfo; }> { + const response = await this.morphableTargetsMorphableTargetsGetRaw(requestParameters, initOverrides); + return await response.value(); + } + /** * 複数まとめて音声合成する */ diff --git a/src/openapi/models/AccentPhrase.ts b/src/openapi/models/AccentPhrase.ts index 12a7096d84..eccc418c81 100644 --- a/src/openapi/models/AccentPhrase.ts +++ b/src/openapi/models/AccentPhrase.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/AudioQuery.ts b/src/openapi/models/AudioQuery.ts index 50c08fe29c..6014e03d4d 100644 --- a/src/openapi/models/AudioQuery.ts +++ b/src/openapi/models/AudioQuery.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/DownloadableLibrary.ts b/src/openapi/models/DownloadableLibrary.ts index 3ea5cc4282..8502fe151b 100644 --- a/src/openapi/models/DownloadableLibrary.ts +++ b/src/openapi/models/DownloadableLibrary.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/EngineManifest.ts b/src/openapi/models/EngineManifest.ts index 6726287147..bf820afefa 100644 --- a/src/openapi/models/EngineManifest.ts +++ b/src/openapi/models/EngineManifest.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/HTTPValidationError.ts b/src/openapi/models/HTTPValidationError.ts index 4227b682ad..f778f3f84d 100644 --- a/src/openapi/models/HTTPValidationError.ts +++ b/src/openapi/models/HTTPValidationError.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/LicenseInfo.ts b/src/openapi/models/LicenseInfo.ts index 27296f4085..a9228e8bbd 100644 --- a/src/openapi/models/LicenseInfo.ts +++ b/src/openapi/models/LicenseInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Mora.ts b/src/openapi/models/Mora.ts index 64b561b142..73d12d3db8 100644 --- a/src/openapi/models/Mora.ts +++ b/src/openapi/models/Mora.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/MorphableTargetInfo.ts b/src/openapi/models/MorphableTargetInfo.ts new file mode 100644 index 0000000000..d4bd76224d --- /dev/null +++ b/src/openapi/models/MorphableTargetInfo.ts @@ -0,0 +1,56 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * VOICEVOX Engine + * VOICEVOXの音声合成エンジンです。 + * + * The version of the OpenAPI document: 0.14.0-preview.11 + * + * + * 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'; +/** + * + * @export + * @interface MorphableTargetInfo + */ +export interface MorphableTargetInfo { + /** + * + * @type {boolean} + * @memberof MorphableTargetInfo + */ + isMorphable: boolean; +} + +export function MorphableTargetInfoFromJSON(json: any): MorphableTargetInfo { + return MorphableTargetInfoFromJSONTyped(json, false); +} + +export function MorphableTargetInfoFromJSONTyped(json: any, ignoreDiscriminator: boolean): MorphableTargetInfo { + if ((json === undefined) || (json === null)) { + return json; + } + return { + + 'isMorphable': json['is_morphable'], + }; +} + +export function MorphableTargetInfoToJSON(value?: MorphableTargetInfo | null): any { + if (value === undefined) { + return undefined; + } + if (value === null) { + return null; + } + return { + + 'is_morphable': value.isMorphable, + }; +} + diff --git a/src/openapi/models/ParseKanaBadRequest.ts b/src/openapi/models/ParseKanaBadRequest.ts index a72a23bfeb..00718fde7d 100644 --- a/src/openapi/models/ParseKanaBadRequest.ts +++ b/src/openapi/models/ParseKanaBadRequest.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Preset.ts b/src/openapi/models/Preset.ts index a3d5a0c98c..942a9bce66 100644 --- a/src/openapi/models/Preset.ts +++ b/src/openapi/models/Preset.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/Speaker.ts b/src/openapi/models/Speaker.ts index e1e283d84f..aa26178168 100644 --- a/src/openapi/models/Speaker.ts +++ b/src/openapi/models/Speaker.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -32,22 +32,22 @@ import { export interface Speaker { /** * - * @type {string} + * @type {SpeakerSupportedFeatures} * @memberof Speaker */ - name: string; + supportedFeatures?: SpeakerSupportedFeatures | null; /** * * @type {string} * @memberof Speaker */ - speakerUuid: string; + name: string; /** * - * @type {SpeakerSupportedFeatures} + * @type {string} * @memberof Speaker */ - supportedFeatures?: SpeakerSupportedFeatures | null; + speakerUuid: string; /** * * @type {Array} @@ -72,9 +72,9 @@ export function SpeakerFromJSONTyped(json: any, ignoreDiscriminator: boolean): S } return { + 'supportedFeatures': !exists(json, 'supported_features') ? undefined : SpeakerSupportedFeaturesFromJSON(json['supported_features']), 'name': json['name'], 'speakerUuid': json['speaker_uuid'], - 'supportedFeatures': !exists(json, 'supported_features') ? undefined : SpeakerSupportedFeaturesFromJSON(json['supported_features']), 'styles': ((json['styles'] as Array).map(SpeakerStyleFromJSON)), 'version': !exists(json, 'version') ? undefined : json['version'], }; @@ -89,9 +89,9 @@ export function SpeakerToJSON(value?: Speaker | null): any { } return { + 'supported_features': SpeakerSupportedFeaturesToJSON(value.supportedFeatures), 'name': value.name, 'speaker_uuid': value.speakerUuid, - 'supported_features': SpeakerSupportedFeaturesToJSON(value.supportedFeatures), 'styles': ((value.styles as Array).map(SpeakerStyleToJSON)), 'version': value.version, }; diff --git a/src/openapi/models/SpeakerInfo.ts b/src/openapi/models/SpeakerInfo.ts index e33840ce91..c69883d83a 100644 --- a/src/openapi/models/SpeakerInfo.ts +++ b/src/openapi/models/SpeakerInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SpeakerStyle.ts b/src/openapi/models/SpeakerStyle.ts index a13d9ad1e9..813947bea2 100644 --- a/src/openapi/models/SpeakerStyle.ts +++ b/src/openapi/models/SpeakerStyle.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SpeakerSupportPermittedSynthesisMorphing.ts b/src/openapi/models/SpeakerSupportPermittedSynthesisMorphing.ts index 2bc9b6cf15..988baf3af7 100644 --- a/src/openapi/models/SpeakerSupportPermittedSynthesisMorphing.ts +++ b/src/openapi/models/SpeakerSupportPermittedSynthesisMorphing.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SpeakerSupportedFeatures.ts b/src/openapi/models/SpeakerSupportedFeatures.ts index 2083d8d12a..2712dc8a4c 100644 --- a/src/openapi/models/SpeakerSupportedFeatures.ts +++ b/src/openapi/models/SpeakerSupportedFeatures.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/StyleInfo.ts b/src/openapi/models/StyleInfo.ts index 57c7aa5301..72f5873e5a 100644 --- a/src/openapi/models/StyleInfo.ts +++ b/src/openapi/models/StyleInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SupportedDevicesInfo.ts b/src/openapi/models/SupportedDevicesInfo.ts index abff8b9fa2..71ea5a46f8 100644 --- a/src/openapi/models/SupportedDevicesInfo.ts +++ b/src/openapi/models/SupportedDevicesInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/SupportedFeatures.ts b/src/openapi/models/SupportedFeatures.ts index 0402fca9fb..09101c7cb6 100644 --- a/src/openapi/models/SupportedFeatures.ts +++ b/src/openapi/models/SupportedFeatures.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/UpdateInfo.ts b/src/openapi/models/UpdateInfo.ts index f693c7de52..1e5bc625cc 100644 --- a/src/openapi/models/UpdateInfo.ts +++ b/src/openapi/models/UpdateInfo.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/UserDictWord.ts b/src/openapi/models/UserDictWord.ts index a999f178ed..7a4ba341c9 100644 --- a/src/openapi/models/UserDictWord.ts +++ b/src/openapi/models/UserDictWord.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/ValidationError.ts b/src/openapi/models/ValidationError.ts index f1ffa28bc6..64c5b0888b 100644 --- a/src/openapi/models/ValidationError.ts +++ b/src/openapi/models/ValidationError.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/WordTypes.ts b/src/openapi/models/WordTypes.ts index 4cbce1e62a..520c45f901 100644 --- a/src/openapi/models/WordTypes.ts +++ b/src/openapi/models/WordTypes.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/src/openapi/models/index.ts b/src/openapi/models/index.ts index 12b393ce21..752ae47a1f 100644 --- a/src/openapi/models/index.ts +++ b/src/openapi/models/index.ts @@ -7,6 +7,7 @@ export * from './EngineManifest'; export * from './HTTPValidationError'; export * from './LicenseInfo'; export * from './Mora'; +export * from './MorphableTargetInfo'; export * from './ParseKanaBadRequest'; export * from './Preset'; export * from './Speaker'; diff --git a/src/openapi/runtime.ts b/src/openapi/runtime.ts index 44f516c1b9..dd860746b3 100644 --- a/src/openapi/runtime.ts +++ b/src/openapi/runtime.ts @@ -4,7 +4,7 @@ * VOICEVOX Engine * VOICEVOXの音声合成エンジンです。 * - * The version of the OpenAPI document: 0.14.0-preview.10 + * The version of the OpenAPI document: 0.14.0-preview.11 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). From 2e021e4a58fca19052d73dbaf9ec5f79d74cf166 Mon Sep 17 00:00:00 2001 From: segu_g Date: Mon, 23 Jan 2023 05:09:28 +0900 Subject: [PATCH 14/22] get morphable targets --- src/components/AudioInfo.vue | 35 +++++++++++++++++-- src/store/audio.ts | 67 +++++++++++++++++++++++++++--------- src/store/type.ts | 25 ++++++++------ src/views/EditorHome.vue | 2 +- 4 files changed, 99 insertions(+), 30 deletions(-) diff --git a/src/components/AudioInfo.vue b/src/components/AudioInfo.vue index b80ab351de..e1d8add03f 100644 --- a/src/components/AudioInfo.vue +++ b/src/components/AudioInfo.vue @@ -482,7 +482,7 @@