GaenKoki's picture
Duplicate from 2ndelement/voicevox
5cda731
from typing import List, Optional
from pydantic import BaseModel, Field
class UpdateInfo(BaseModel):
"""
エンジンのアップデート情報
"""
version: str = Field(title="エンジンのバージョン名")
descriptions: List[str] = Field(title="アップデートの詳細についての説明")
contributors: Optional[List[str]] = Field(title="貢献者名")
class LicenseInfo(BaseModel):
"""
依存ライブラリのライセンス情報
"""
name: str = Field(title="依存ライブラリ名")
version: Optional[str] = Field(title="依存ライブラリのバージョン")
license: Optional[str] = Field(title="依存ライブラリのライセンス名")
text: str = Field(title="依存ライブラリのライセンス本文")
class SupportedFeatures(BaseModel):
"""
エンジンが持つ機能の一覧
"""
adjust_mora_pitch: bool = Field(title="モーラごとの音高の調整")
adjust_phoneme_length: bool = Field(title="音素ごとの長さの調整")
adjust_speed_scale: bool = Field(title="全体の話速の調整")
adjust_pitch_scale: bool = Field(title="全体の音高の調整")
adjust_intonation_scale: bool = Field(title="全体の抑揚の調整")
adjust_volume_scale: bool = Field(title="全体の音量の調整")
interrogative_upspeak: bool = Field(title="疑問文の自動調整")
synthesis_morphing: bool = Field(title="2人の話者でモーフィングした音声を合成")
manage_library: bool = Field(title="音声ライブラリのインストール・アンインストール")
class EngineManifest(BaseModel):
"""
エンジン自体に関する情報
"""
manifest_version: str = Field(title="マニフェストのバージョン")
name: str = Field(title="エンジン名")
brand_name: str = Field(title="ブランド名")
uuid: str = Field(title="エンジンのUUID")
url: str = Field(title="エンジンのURL")
icon: str = Field(title="エンジンのアイコンをBASE64エンコードしたもの")
default_sampling_rate: int = Field(title="デフォルトのサンプリング周波数")
terms_of_service: str = Field(title="エンジンの利用規約")
update_infos: List[UpdateInfo] = Field(title="エンジンのアップデート情報")
dependency_licenses: List[LicenseInfo] = Field(title="依存関係のライセンス情報")
supported_features: SupportedFeatures = Field(title="エンジンが持つ機能")