| from pydantic import BaseModel, Field | |
| class VoiceGenerationRequest(BaseModel): | |
| text: str = Field(..., min_length=1, max_length=5000, description="要转换为语音的文本内容") | |
| voice_name: str = Field( | |
| default="zh-CN-XiaoxiaoNeural", | |
| description="语音名称,如:zh-CN-XiaoxiaoNeural, zh-CN-YunxiNeural" | |
| ) | |
| voice_rate: float = Field( | |
| default=0, | |
| ge=-1, | |
| le=1, | |
| description="语速调整,范围 -1.0 到 1.0,0 表示正常速度" | |
| ) | |
| model_config = { | |
| "json_schema_extra": { | |
| "examples": [ | |
| { | |
| "text": "你好,这是一个测试文本,用于生成语音和字幕文件。", | |
| "voice_name": "zh-CN-XiaoxiaoNeural", | |
| "voice_rate": 0 | |
| } | |
| ] | |
| } | |
| } | |
| class VoiceGenerationResponse(BaseModel): | |
| audio_url: str = Field(..., description="生成的音频文件URL") | |
| subtitle_url: str = Field(..., description="生成的字幕文件URL") | |
| model_config = { | |
| "json_schema_extra": { | |
| "examples": [ | |
| { | |
| "audio_url": "/tasks/audio_1234567890_abcd1234.mp3", | |
| "subtitle_url": "/tasks/subtitle_1234567890_abcd1234.srt" | |
| } | |
| ] | |
| } | |
| } | |