Spaces:
Build error
Build error
from enum import Enum | |
from typing import List, Optional | |
from pydantic import BaseModel, Field | |
class SpeakerStyle(BaseModel): | |
""" | |
スピーカーのスタイル情報 | |
""" | |
name: str = Field(title="スタイル名") | |
id: int = Field(title="スタイルID") | |
class SpeakerSupportPermittedSynthesisMorphing(str, Enum): | |
ALL = "ALL" # 全て許可 | |
SELF_ONLY = "SELF_ONLY" # 同じ話者内でのみ許可 | |
NOTHING = "NOTHING" # 全て禁止 | |
def _missing_(cls, value: object) -> "SpeakerSupportPermittedSynthesisMorphing": | |
return SpeakerSupportPermittedSynthesisMorphing.ALL | |
class SpeakerSupportedFeatures(BaseModel): | |
""" | |
話者の対応機能の情報 | |
""" | |
permitted_synthesis_morphing: SpeakerSupportPermittedSynthesisMorphing = Field( | |
title="モーフィング機能への対応", default=SpeakerSupportPermittedSynthesisMorphing(None) | |
) | |
class CoreSpeaker(BaseModel): | |
""" | |
コアに含まれるスピーカー情報 | |
""" | |
name: str = Field(title="名前") | |
speaker_uuid: str = Field(title="スピーカーのUUID") | |
styles: List[SpeakerStyle] = Field(title="スピーカースタイルの一覧") | |
version: str = Field("スピーカーのバージョン") | |
class EngineSpeaker(BaseModel): | |
""" | |
エンジンに含まれるスピーカー情報 | |
""" | |
supported_features: SpeakerSupportedFeatures = Field( | |
title="スピーカーの対応機能", default_factory=SpeakerSupportedFeatures | |
) | |
class Speaker(CoreSpeaker, EngineSpeaker): | |
""" | |
スピーカー情報 | |
""" | |
pass | |
class StyleInfo(BaseModel): | |
""" | |
スタイルの追加情報 | |
""" | |
id: int = Field(title="スタイルID") | |
icon: str = Field(title="当該スタイルのアイコンをbase64エンコードしたもの") | |
portrait: Optional[str] = Field(title="当該スタイルのportrait.pngをbase64エンコードしたもの") | |
voice_samples: List[str] = Field(title="voice_sampleのwavファイルをbase64エンコードしたもの") | |
class SpeakerInfo(BaseModel): | |
""" | |
話者の追加情報 | |
""" | |
policy: str = Field(title="policy.md") | |
portrait: str = Field(title="portrait.pngをbase64エンコードしたもの") | |
style_infos: List[StyleInfo] = Field(title="スタイルの追加情報") | |