Skip to main content
Glama
audio.py3.06 kB
"""Audio processing related Pydantic models.""" from typing import Optional from openai.types import AudioModel from pydantic import BaseModel, Field from ..constants import ( DEFAULT_MAX_FILE_SIZE_MB, AudioChatModel, SortBy, SupportedChatWithAudioFormat, ) from .base import BaseAudioInputParams class ConvertAudioInputParams(BaseAudioInputParams): """Params for converting audio to mp3 or wav.""" target_format: SupportedChatWithAudioFormat = Field( default="mp3", description="Target audio format to convert to (mp3 or wav)" ) class CompressAudioInputParams(BaseAudioInputParams): """Params for compressing audio.""" max_mb: int = Field( default=DEFAULT_MAX_FILE_SIZE_MB, gt=0, description="Maximum file size in MB. Files larger than this will be compressed", ) class FilePathSupportParams(BaseModel): """Params for checking if a file supports transcription.""" file_name: str = Field(description="Name of the audio file") transcription_support: Optional[list[AudioModel]] = Field( default=None, description="List of transcription models that support this file format" ) chat_support: Optional[list[AudioChatModel]] = Field( default=None, description="List of audio LLM models that support this file format" ) modified_time: float = Field(description="Last modified timestamp of the file (Unix time)") size_bytes: int = Field(description="Size of the file in bytes") format: str = Field(description="Audio format of the file (e.g., 'mp3', 'wav')") duration_seconds: Optional[float] = Field( default=None, description="Duration of the audio file in seconds, if available" ) class ListAudioFilesInputParams(BaseModel): """Input parameters for the list_audio_files tool.""" pattern: Optional[str] = Field(default=None, description="Optional regex pattern to filter audio files by name") min_size_bytes: Optional[int] = Field(default=None, description="Minimum file size in bytes") max_size_bytes: Optional[int] = Field(default=None, description="Maximum file size in bytes") min_duration_seconds: Optional[float] = Field(default=None, description="Minimum audio duration in seconds") max_duration_seconds: Optional[float] = Field(default=None, description="Maximum audio duration in seconds") min_modified_time: Optional[float] = Field( default=None, description="Minimum file modification time (Unix timestamp)" ) max_modified_time: Optional[float] = Field( default=None, description="Maximum file modification time (Unix timestamp)" ) format: Optional[str] = Field(default=None, description="Specific audio format to filter by (e.g., 'mp3', 'wav')") sort_by: SortBy = Field( default=SortBy.NAME, description="Field to sort results by (name, size, duration, modified_time, format)" ) reverse: bool = Field(default=False, description="Sort in reverse order if True") model_config = {"arbitrary_types_allowed": True}

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/arcaputo3/mcp-server-whisper'

If you have feedback or need assistance with the MCP directory API, please join our Discord server