Spaces:
Build error
Build error
File size: 2,360 Bytes
f1f433f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
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" # 全て禁止
@classmethod
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="スタイルの追加情報")
|