voice-detection-api / src /api /schemas.py
pp22's picture
Upload folder using huggingface_hub
ec06657 verified
Raw
History Blame Contribute Delete
1.43 kB
from pydantic import BaseModel, Field
from typing import Optional
class DetectionRequest(BaseModel):
"""
Request body for voice detection API.
Supports both full language names (Tamil, English, etc.) and codes (en, ta, etc.)
"""
language: str = Field(..., description="Language: 'Tamil', 'English', 'Hindi', 'Malayalam', 'Telugu' (or codes: 'en', 'ta', 'hi', 'ml', 'te')")
audio_format: str = Field(..., alias="audioFormat", description="Audio format: always 'mp3'")
audio_base64: str = Field(..., alias="audioBase64", description="Base64 encoded MP3 audio")
class Config:
populate_by_name = True # Accept both field name and alias
class DetectionResponse(BaseModel):
"""
Success response matching competition specification exactly.
"""
status: str = Field(default="success", description="'success' or 'error'")
language: str = Field(..., description="Language of the audio")
classification: str = Field(..., description="'AI_GENERATED' or 'HUMAN'")
confidenceScore: float = Field(..., ge=0.0, le=1.0, description="Confidence score between 0.0 and 1.0")
explanation: str = Field(..., description="Short reason for the decision")
class ErrorResponse(BaseModel):
"""
Error response for invalid requests.
"""
status: str = Field(default="error")
message: str = Field(..., description="Error message")