|
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"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|