From dc8dc59ad0363242d38c18b76fa0eaacb3ca30d5 Mon Sep 17 00:00:00 2001 From: aoirint Date: Sat, 24 Jun 2023 15:49:56 +0900 Subject: [PATCH 01/18] add preset_file argument --- make_docs.py | 6 ++++++ run.py | 28 ++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/make_docs.py b/make_docs.py index d10bd1aa4..d954bdd4d 100644 --- a/make_docs.py +++ b/make_docs.py @@ -1,8 +1,11 @@ import json +from pathlib import Path from voicevox_engine.dev.core import mock as core from voicevox_engine.dev.synthesis_engine.mock import MockSynthesisEngine +from voicevox_engine.preset import PresetManager from voicevox_engine.setting import USER_SETTING_PATH, SettingLoader +from voicevox_engine.utility import engine_root if __name__ == "__main__": import run @@ -11,6 +14,9 @@ synthesis_engines={"mock": MockSynthesisEngine(speakers=core.metas())}, latest_core_version="mock", setting_loader=SettingLoader(USER_SETTING_PATH), + preset_manager=PresetManager( # FIXME: impl MockPresetManager + preset_path=Path(engine_root() / "presets.yaml"), + ), ) with open("docs/api/index.html", "w") as f: f.write( diff --git a/run.py b/run.py index 8fc2cddea..0f76bb989 100644 --- a/run.py +++ b/run.py @@ -116,6 +116,7 @@ def generate_app( synthesis_engines: Dict[str, SynthesisEngineBase], latest_core_version: str, setting_loader: SettingLoader, + preset_manager: PresetManager, root_dir: Optional[Path] = None, cors_policy_mode: CorsPolicyMode = CorsPolicyMode.localapps, allow_origin: Optional[List[str]] = None, @@ -177,9 +178,6 @@ async def block_origin_middleware(request: Request, call_next): status_code=403, content={"detail": "Origin not allowed"} ) - preset_manager = PresetManager( - preset_path=root_dir / "presets.yaml", - ) engine_manifest_data = EngineManifestLoader( engine_root() / "engine_manifest.json", engine_root() ).load_manifest() @@ -1273,6 +1271,16 @@ def custom_openapi(): "--setting_file", type=Path, default=USER_SETTING_PATH, help="設定ファイルを指定できます。" ) + parser.add_argument( + "--preset_file", + type=Path, + default=None, + help=( + "プリセットファイルを指定できます。指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。" + "voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。" + ), + ) + args = parser.parse_args() if args.output_log_utf8: @@ -1296,7 +1304,9 @@ def custom_openapi(): if args.enable_cancellable_synthesis: cancellable_engine = CancellableEngine(args) - root_dir = args.voicevox_dir if args.voicevox_dir is not None else engine_root() + root_dir: Path | None = args.voicevox_dir + if root_dir is None: + root_dir = engine_root() setting_loader = SettingLoader(args.setting_file) @@ -1314,11 +1324,21 @@ def custom_openapi(): elif settings.allow_origin is not None: allow_origin = settings.allow_origin.split(" ") + # Preset Manager + preset_path: Path | None = args.preset_path + if preset_path is None: + preset_path = root_dir / "presets.yaml" + + preset_manager = PresetManager( + preset_path=preset_path, + ) + uvicorn.run( generate_app( synthesis_engines, latest_core_version, setting_loader, + preset_manager=preset_manager, root_dir=root_dir, cors_policy_mode=cors_policy_mode, allow_origin=allow_origin, From 8ffffb3e5316830d6b334eb302bf5837c52da05d Mon Sep 17 00:00:00 2001 From: aoirint Date: Sat, 24 Jun 2023 15:57:46 +0900 Subject: [PATCH 02/18] add VV_PRESET_FILE env var --- run.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/run.py b/run.py index 0f76bb989..705a67141 100644 --- a/run.py +++ b/run.py @@ -1276,7 +1276,9 @@ def custom_openapi(): type=Path, default=None, help=( - "プリセットファイルを指定できます。指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。" + "プリセットファイルを指定できます。" + "指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。" + "VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。" "voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。" ), ) @@ -1325,9 +1327,18 @@ def custom_openapi(): allow_origin = settings.allow_origin.split(" ") # Preset Manager + # preset_pathの優先順: 引数、環境変数、voicevox_dir、実行ファイルのディレクトリ + # プリセットファイルの存在に関わらず、優先順で最初に指定されたパスを使用する preset_path: Path | None = args.preset_path if preset_path is None: - preset_path = root_dir / "presets.yaml" + # --preset_path 引数の指定がない場合 + env_preset_path = os.environ.get("VV_PRESET_FILE") + if env_preset_path is not None and len(env_preset_path) != 0: + # 環境変数 VV_PRESET_FILE の指定がある場合 + preset_path = Path(env_preset_path) + else: + # 環境変数 VV_PRESET_FILE の指定がない場合 + preset_path = root_dir / "presets.yaml" preset_manager = PresetManager( preset_path=preset_path, From a81d3e1e5d9d62fc0d367069041a7894c27f4f0e Mon Sep 17 00:00:00 2001 From: aoirint Date: Sat, 24 Jun 2023 16:49:15 +0900 Subject: [PATCH 03/18] doc: update run.py help --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e63e68a6d..8a0b7114f 100644 --- a/README.md +++ b/README.md @@ -288,8 +288,9 @@ VOICEVOXではセキュリティ保護のため`localhost`・`127.0.0.1`・`app: ```bash $ python run.py -h -usage: run.py [-h] [--host HOST] [--port PORT] [--use_gpu] [--voicevox_dir VOICEVOX_DIR] [--voicelib_dir VOICELIB_DIR] [--runtime_dir RUNTIME_DIR] [--enable_mock] [--enable_cancellable_synthesis] [--init_processes INIT_PROCESSES] [--load_all_models] - [--cpu_num_threads CPU_NUM_THREADS] [--output_log_utf8] [--cors_policy_mode {CorsPolicyMode.all,CorsPolicyMode.localapps}] [--allow_origin [ALLOW_ORIGIN ...]] [--setting_file SETTING_FILE] +usage: run.py [-h] [--host HOST] [--port PORT] [--use_gpu] [--voicevox_dir VOICEVOX_DIR] [--voicelib_dir VOICELIB_DIR] [--runtime_dir RUNTIME_DIR] [--enable_mock] [--enable_cancellable_synthesis] + [--init_processes INIT_PROCESSES] [--load_all_models] [--cpu_num_threads CPU_NUM_THREADS] [--output_log_utf8] [--cors_policy_mode {CorsPolicyMode.all,CorsPolicyMode.localapps}] + [--allow_origin [ALLOW_ORIGIN ...]] [--setting_file SETTING_FILE] [--preset_file PRESET_FILE] VOICEVOX のエンジンです。 @@ -319,6 +320,8 @@ options: 許可するオリジンを指定します。スペースで区切ることで複数指定できます。 --setting_file SETTING_FILE 設定ファイルを指定できます。 + --preset_file PRESET_FILE + プリセットファイルを指定できます。指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。 ``` ## アップデート From 00066e40a3f5de2a101750e49efd54d9da1561be Mon Sep 17 00:00:00 2001 From: aoirint Date: Sat, 24 Jun 2023 16:53:16 +0900 Subject: [PATCH 04/18] make_docs: engine_root return value is already Path --- make_docs.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/make_docs.py b/make_docs.py index d954bdd4d..d21ba85b9 100644 --- a/make_docs.py +++ b/make_docs.py @@ -1,5 +1,4 @@ import json -from pathlib import Path from voicevox_engine.dev.core import mock as core from voicevox_engine.dev.synthesis_engine.mock import MockSynthesisEngine @@ -15,7 +14,7 @@ latest_core_version="mock", setting_loader=SettingLoader(USER_SETTING_PATH), preset_manager=PresetManager( # FIXME: impl MockPresetManager - preset_path=Path(engine_root() / "presets.yaml"), + preset_path=engine_root() / "presets.yaml", ), ) with open("docs/api/index.html", "w") as f: From 26330f4c897e7e32b02f6c52450158bd1dffce20 Mon Sep 17 00:00:00 2001 From: aoirint Date: Sat, 24 Jun 2023 16:54:33 +0900 Subject: [PATCH 05/18] update comment --- run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.py b/run.py index 705a67141..96793e075 100644 --- a/run.py +++ b/run.py @@ -1328,7 +1328,7 @@ def custom_openapi(): # Preset Manager # preset_pathの優先順: 引数、環境変数、voicevox_dir、実行ファイルのディレクトリ - # プリセットファイルの存在に関わらず、優先順で最初に指定されたパスを使用する + # ファイルの存在に関わらず、優先順で最初に指定されたパスをプリセットファイルとして使用する preset_path: Path | None = args.preset_path if preset_path is None: # --preset_path 引数の指定がない場合 From c0204a56f6a75a8521cd6b4f4301ef29fd40f87c Mon Sep 17 00:00:00 2001 From: aoirint Date: Sat, 24 Jun 2023 17:20:01 +0900 Subject: [PATCH 06/18] update help --- README.md | 2 +- run.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a0b7114f..2cd2af0f8 100644 --- a/README.md +++ b/README.md @@ -321,7 +321,7 @@ options: --setting_file SETTING_FILE 設定ファイルを指定できます。 --preset_file PRESET_FILE - プリセットファイルを指定できます。指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。 + プリセットファイルを指定できます。指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。指定されたパスにファイルが存在しない場合、プリセットAPIはエラーを返します。 ``` ## アップデート diff --git a/run.py b/run.py index 96793e075..fafb59329 100644 --- a/run.py +++ b/run.py @@ -1280,6 +1280,7 @@ def custom_openapi(): "指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。" "VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。" "voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。" + "指定されたパスにファイルが存在しない場合、プリセットAPIはエラーを返します。" ), ) From 92f2364606fa15f8e58816c223e02fc153a1c898 Mon Sep 17 00:00:00 2001 From: aoirint Date: Sat, 24 Jun 2023 17:20:57 +0900 Subject: [PATCH 07/18] update help --- README.md | 2 +- run.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2cd2af0f8..7e775a784 100644 --- a/README.md +++ b/README.md @@ -321,7 +321,7 @@ options: --setting_file SETTING_FILE 設定ファイルを指定できます。 --preset_file PRESET_FILE - プリセットファイルを指定できます。指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。指定されたパスにファイルが存在しない場合、プリセットAPIはエラーを返します。 + プリセットファイルを指定できます。指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。指定されたパスにファイルが存在しないまたは破損している場合、プリセットAPIはエラーを返します。 ``` ## アップデート diff --git a/run.py b/run.py index fafb59329..6c8515c6b 100644 --- a/run.py +++ b/run.py @@ -1280,7 +1280,7 @@ def custom_openapi(): "指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。" "VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。" "voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。" - "指定されたパスにファイルが存在しない場合、プリセットAPIはエラーを返します。" + "指定されたパスにファイルが存在しないまたは破損している場合、プリセットAPIはエラーを返します。" ), ) From e7a8ae4fbfaefdf449a268406f95c57e21ad8f68 Mon Sep 17 00:00:00 2001 From: aoirint Date: Sat, 24 Jun 2023 18:16:38 +0900 Subject: [PATCH 08/18] fix parsing preset_file arg --- run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.py b/run.py index 6c8515c6b..32afe4fe0 100644 --- a/run.py +++ b/run.py @@ -1330,7 +1330,7 @@ def custom_openapi(): # Preset Manager # preset_pathの優先順: 引数、環境変数、voicevox_dir、実行ファイルのディレクトリ # ファイルの存在に関わらず、優先順で最初に指定されたパスをプリセットファイルとして使用する - preset_path: Path | None = args.preset_path + preset_path: Path | None = args.preset_file if preset_path is None: # --preset_path 引数の指定がない場合 env_preset_path = os.environ.get("VV_PRESET_FILE") From c587d3125465b0259aefce63ae98e854828ed83f Mon Sep 17 00:00:00 2001 From: aoirint Date: Sat, 24 Jun 2023 18:16:43 +0900 Subject: [PATCH 09/18] use os.getenv (== os.environ.get) --- run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.py b/run.py index 32afe4fe0..8843711f3 100644 --- a/run.py +++ b/run.py @@ -1333,7 +1333,7 @@ def custom_openapi(): preset_path: Path | None = args.preset_file if preset_path is None: # --preset_path 引数の指定がない場合 - env_preset_path = os.environ.get("VV_PRESET_FILE") + env_preset_path = os.getenv("VV_PRESET_FILE") if env_preset_path is not None and len(env_preset_path) != 0: # 環境変数 VV_PRESET_FILE の指定がある場合 preset_path = Path(env_preset_path) From a8a497bc97104fcecb56f3413679938ebf308cc0 Mon Sep 17 00:00:00 2001 From: aoirint Date: Sun, 1 Oct 2023 23:11:21 +0900 Subject: [PATCH 10/18] fix:e2e test generate_app preset_manager arg --- test/e2e/conftest.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/e2e/conftest.py b/test/e2e/conftest.py index 23fd4f042..af21590c1 100644 --- a/test/e2e/conftest.py +++ b/test/e2e/conftest.py @@ -4,6 +4,7 @@ from fastapi.testclient import TestClient from run import generate_app +from voicevox_engine.preset import PresetManager from voicevox_engine.setting import SettingLoader from voicevox_engine.synthesis_engine import make_synthesis_engines from voicevox_engine.utility.core_version_utility import get_latest_core_version @@ -14,11 +15,15 @@ def client(): synthesis_engines = make_synthesis_engines(use_gpu=False) latest_core_version = get_latest_core_version(versions=synthesis_engines.keys()) setting_loader = SettingLoader(Path("./default_setting.yml")) + preset_manager = PresetManager( # FIXME: impl MockPresetManager + preset_path=Path("./presets.yaml"), + ) return TestClient( generate_app( synthesis_engines=synthesis_engines, latest_core_version=latest_core_version, setting_loader=setting_loader, + preset_manager=preset_manager, ) ) From 22f3d3812d97834af67d85a0079d6b1d0dc98a1e Mon Sep 17 00:00:00 2001 From: aoirint Date: Sun, 1 Oct 2023 23:20:10 +0900 Subject: [PATCH 11/18] fix:http error status specified in help --- run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.py b/run.py index 8843711f3..2fde40b07 100644 --- a/run.py +++ b/run.py @@ -1280,7 +1280,7 @@ def custom_openapi(): "指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。" "VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。" "voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。" - "指定されたパスにファイルが存在しないまたは破損している場合、プリセットAPIはエラーを返します。" + "指定されたパスにファイルが存在しないまたは破損している場合、プリセットAPIはエラー(HTTP 422)を返します。" ), ) From 7536b64a9bf2b2c82698067797245c096808809e Mon Sep 17 00:00:00 2001 From: aoirint Date: Sun, 1 Oct 2023 23:23:20 +0900 Subject: [PATCH 12/18] doc:update help --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 812d28f76..aa02272bd 100644 --- a/README.md +++ b/README.md @@ -321,7 +321,7 @@ options: --setting_file SETTING_FILE 設定ファイルを指定できます。 --preset_file PRESET_FILE - プリセットファイルを指定できます。指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。指定されたパスにファイルが存在しないまたは破損している場合、プリセットAPIはエラーを返します。 + プリセットファイルを指定できます。指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。指定されたパスにファイルが存在しないまたは破損している場合、プリセットAPIはエラー(HTTP 422)を返します。 ``` ## アップデート From 88e18d81f05e5afcbe8171a111ea47fef95a64af Mon Sep 17 00:00:00 2001 From: aoirint Date: Sun, 8 Oct 2023 17:27:49 +0900 Subject: [PATCH 13/18] run.py: shorter help Co-authored-by: Hiroshiba --- run.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/run.py b/run.py index 2fde40b07..cde7f2ea0 100644 --- a/run.py +++ b/run.py @@ -1277,10 +1277,7 @@ def custom_openapi(): default=None, help=( "プリセットファイルを指定できます。" - "指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。" - "VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。" - "voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。" - "指定されたパスにファイルが存在しないまたは破損している場合、プリセットAPIはエラー(HTTP 422)を返します。" + "指定がない場合、環境変数 VV_PRESET_FILE、--voicevox_dirのpresets.yaml、実行ファイルのディレクトリのpresets.yamlを順に探します。" ), ) From 40b72e4cfa14cf50ad10598edd083e11f1622e62 Mon Sep 17 00:00:00 2001 From: aoirint Date: Sun, 8 Oct 2023 18:12:37 +0900 Subject: [PATCH 14/18] fix lint --- run.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/run.py b/run.py index cde7f2ea0..7b8f70543 100644 --- a/run.py +++ b/run.py @@ -1277,7 +1277,8 @@ def custom_openapi(): default=None, help=( "プリセットファイルを指定できます。" - "指定がない場合、環境変数 VV_PRESET_FILE、--voicevox_dirのpresets.yaml、実行ファイルのディレクトリのpresets.yamlを順に探します。" + "指定がない場合、環境変数 VV_PRESET_FILE、--voicevox_dirのpresets.yaml、" + "実行ファイルのディレクトリのpresets.yamlを順に探します。" ), ) From ffab30dcdb0091b66f361cb9731dc0a7f27b6f57 Mon Sep 17 00:00:00 2001 From: aoirint Date: Sun, 8 Oct 2023 18:23:11 +0900 Subject: [PATCH 15/18] fix wrong comment: --preset_path -> --preset_file --- run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.py b/run.py index 7b8f70543..12647711f 100644 --- a/run.py +++ b/run.py @@ -1330,7 +1330,7 @@ def custom_openapi(): # ファイルの存在に関わらず、優先順で最初に指定されたパスをプリセットファイルとして使用する preset_path: Path | None = args.preset_file if preset_path is None: - # --preset_path 引数の指定がない場合 + # --preset_file 引数の指定がない場合 env_preset_path = os.getenv("VV_PRESET_FILE") if env_preset_path is not None and len(env_preset_path) != 0: # 環境変数 VV_PRESET_FILE の指定がある場合 From 96c74d2b58a03e526d259666176fe2e7fb364669 Mon Sep 17 00:00:00 2001 From: aoirint Date: Sun, 8 Oct 2023 18:24:17 +0900 Subject: [PATCH 16/18] =?UTF-8?q?comment:=20reorder=20=E5=BC=95=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.py b/run.py index 12647711f..e61bb7dae 100644 --- a/run.py +++ b/run.py @@ -1330,7 +1330,7 @@ def custom_openapi(): # ファイルの存在に関わらず、優先順で最初に指定されたパスをプリセットファイルとして使用する preset_path: Path | None = args.preset_file if preset_path is None: - # --preset_file 引数の指定がない場合 + # 引数 --preset_file の指定がない場合 env_preset_path = os.getenv("VV_PRESET_FILE") if env_preset_path is not None and len(env_preset_path) != 0: # 環境変数 VV_PRESET_FILE の指定がある場合 From 8bc514c8e0991caf6a2a6aa40e8b4f9a269df8da Mon Sep 17 00:00:00 2001 From: aoirint Date: Sun, 8 Oct 2023 19:51:18 +0900 Subject: [PATCH 17/18] README.md: update preset_file help --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index aa02272bd..b46fc4a9c 100644 --- a/README.md +++ b/README.md @@ -321,7 +321,7 @@ options: --setting_file SETTING_FILE 設定ファイルを指定できます。 --preset_file PRESET_FILE - プリセットファイルを指定できます。指定がない場合、環境変数 VV_PRESET_FILE から読み込みます。VV_PRESET_FILEの指定がない場合、--voicevox_dirのpresets.yamlから読み込みます。voicevox_dirの指定がない場合、実行ファイルのディレクトリのpresets.yamlから読み込みます。指定されたパスにファイルが存在しないまたは破損している場合、プリセットAPIはエラー(HTTP 422)を返します。 + プリセットファイルを指定できます。指定がない場合、環境変数 VV_PRESET_FILE、--voicevox_dirのpresets.yaml、実行ファイルのディレクトリのpresets.yamlを順に探します。 ``` ## アップデート From de408f9004bec70ef12646a90f53ca676874796b Mon Sep 17 00:00:00 2001 From: aoirint Date: Sun, 8 Oct 2023 20:21:35 +0900 Subject: [PATCH 18/18] refactor: args.cors_policy_mode type hint --- run.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/run.py b/run.py index e61bb7dae..ccc6119c7 100644 --- a/run.py +++ b/run.py @@ -1313,11 +1313,9 @@ def custom_openapi(): settings = setting_loader.load_setting_file() - cors_policy_mode = ( - args.cors_policy_mode - if args.cors_policy_mode is not None - else settings.cors_policy_mode - ) + cors_policy_mode: CorsPolicyMode | None = args.cors_policy_mode + if cors_policy_mode is None: + cors_policy_mode = settings.cors_policy_mode allow_origin = None if args.allow_origin is not None: