Skip to content

Commit 1db4fd4

Browse files
committed
Update: 音声合成モデルが一度もインストールされていないときに自動ダウンロードする
1 parent fb5e1ca commit 1db4fd4

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

voicevox_engine/aivm_manager.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,18 @@ class AivmManager:
4242

4343
# AivisSpeech でサポートされているマニフェストバージョン
4444
SUPPORTED_MANIFEST_VERSIONS: Final[list[str]] = ["1.0"]
45+
4546
# AivisSpeech でサポートされている音声合成モデルのアーキテクチャ
4647
SUPPORTED_MODEL_ARCHITECTURES: Final[list[ModelArchitecture]] = [
4748
ModelArchitecture.StyleBertVITS2,
4849
ModelArchitecture.StyleBertVITS2JPExtra,
4950
]
5051

52+
# デフォルトでダウンロードされる音声合成モデルの URL
53+
DEFAULT_MODEL_DOWNLOAD_URLS: Final[list[str]] = [
54+
"https://api.aivis-project.com/v1/aivm-models/a59cb814-0083-4369-8542-f51a29e72af7/download?model_type=AIVMX",
55+
]
56+
5157
def __init__(self, installed_aivm_dir: Path):
5258
"""
5359
AivmManager のコンストラクタ
@@ -68,7 +74,11 @@ def __init__(self, installed_aivm_dir: Path):
6874

6975
current_installed_aivm_infos = self.get_installed_aivm_infos()
7076
if len(current_installed_aivm_infos) == 0:
71-
logger.warning("No AIVM models are installed.")
77+
logger.warning("No AIVM models are installed. Installing default models...")
78+
# デフォルトで同梱する音声合成モデルをインストール
79+
for url in self.DEFAULT_MODEL_DOWNLOAD_URLS:
80+
logger.info(f"Installing default model from {url}...")
81+
self.install_aivm_from_url(url)
7282
else:
7383
logger.info("Installed AIVM models:")
7484
for aivm_info in current_installed_aivm_infos.values():
@@ -483,7 +493,9 @@ def install_aivm_from_url(self, url: str) -> None:
483493
try:
484494
logger.info(f"Downloading AIVM file from {url}...")
485495
response = httpx.get(
486-
url, headers={"User-Agent": f"AivisSpeech-Engine/{__version__}"}
496+
url,
497+
headers={"User-Agent": f"AivisSpeech-Engine/{__version__}"},
498+
follow_redirects=True, # 重要
487499
)
488500
response.raise_for_status()
489501
logger.info(f"Downloaded AIVM file from {url}.")

0 commit comments

Comments
 (0)