WhisperApiHandler
in package
implements
ApiRoutableInterface
uses
ApiRoutableTrait
Handler for Whisper transcription API endpoints.
Proxies requests to the NLP microservice for Whisper transcription.
Tags
Table of Contents
Interfaces
- ApiRoutableInterface
- Interface for API handlers that participate in route dispatch.
Constants
- ALLOWED_EXTENSIONS = ['mp3', 'mp4', 'wav', 'webm', 'ogg', 'm4a', 'mkv', 'flac', 'avi', 'mov', 'wma', 'aac']
- Allowed audio/video file extensions.
- MAX_FILE_SIZE = 500 * 1024 * 1024
- Maximum file size in bytes (500MB).
Properties
Methods
- __construct() : mixed
- formatCancelJob() : array{cancelled: bool}
- Cancel a transcription job.
- formatGetLanguages() : array{languages: array}
- Get list of supported languages.
- formatGetModels() : array{models: array}
- Get list of available Whisper models.
- formatGetResult() : array{job_id: string, text: string, language: string, duration_seconds: float}
- Get the result of a completed transcription.
- formatGetStatus() : array{job_id: string, status: string, progress: int, message: string}
- Get the status of a transcription job.
- formatIsAvailable() : array{available: bool}
- Check if Whisper transcription is available.
- formatStartTranscription() : array{job_id: string}
- Start a transcription job.
- routeDelete() : JsonResponse
- Handle a DELETE request for this resource.
- routeGet() : JsonResponse
- Handle a GET request for this resource.
- routePost() : JsonResponse
- Handle a POST request for this resource.
- routePut() : JsonResponse
- frag() : string
- Extract a fragment from the fragments array.
Constants
ALLOWED_EXTENSIONS
Allowed audio/video file extensions.
private
mixed
ALLOWED_EXTENSIONS
= ['mp3', 'mp4', 'wav', 'webm', 'ogg', 'm4a', 'mkv', 'flac', 'avi', 'mov', 'wma', 'aac']
MAX_FILE_SIZE
Maximum file size in bytes (500MB).
private
mixed
MAX_FILE_SIZE
= 500 * 1024 * 1024
Properties
$client
private
WhisperClient
$client
Methods
__construct()
public
__construct() : mixed
formatCancelJob()
Cancel a transcription job.
public
formatCancelJob(string $jobId) : array{cancelled: bool}
Parameters
- $jobId : string
-
Job ID
Return values
array{cancelled: bool}formatGetLanguages()
Get list of supported languages.
public
formatGetLanguages() : array{languages: array}
Return values
array{languages: array}formatGetModels()
Get list of available Whisper models.
public
formatGetModels() : array{models: array}
Return values
array{models: array}formatGetResult()
Get the result of a completed transcription.
public
formatGetResult(string $jobId) : array{job_id: string, text: string, language: string, duration_seconds: float}
Parameters
- $jobId : string
-
Job ID
Return values
array{job_id: string, text: string, language: string, duration_seconds: float}formatGetStatus()
Get the status of a transcription job.
public
formatGetStatus(string $jobId) : array{job_id: string, status: string, progress: int, message: string}
Parameters
- $jobId : string
-
Job ID
Return values
array{job_id: string, status: string, progress: int, message: string}formatIsAvailable()
Check if Whisper transcription is available.
public
formatIsAvailable() : array{available: bool}
Return values
array{available: bool}formatStartTranscription()
Start a transcription job.
public
formatStartTranscription(array{name?: string, tmp_name?: string, size?: int} $file, string|null $language[, string $model = 'small' ]) : array{job_id: string}
Parameters
- $file : array{name?: string, tmp_name?: string, size?: int}
-
Uploaded file from $_FILES
- $language : string|null
-
Language code (null for auto-detect)
- $model : string = 'small'
-
Whisper model name
Tags
Return values
array{job_id: string}routeDelete()
Handle a DELETE request for this resource.
public
routeDelete(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
- $fragments : array<string|int, mixed>
-
URL path segments (resource name already consumed)
- $params : array<string|int, mixed>
-
Query/body parameters
Return values
JsonResponserouteGet()
Handle a GET request for this resource.
public
routeGet(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
- $fragments : array<string|int, mixed>
-
URL path segments (resource name already consumed)
- $params : array<string|int, mixed>
-
Query parameters
Return values
JsonResponseroutePost()
Handle a POST request for this resource.
public
routePost(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
- $fragments : array<string|int, mixed>
-
URL path segments (resource name already consumed)
- $params : array<string|int, mixed>
-
POST/JSON body parameters
Return values
JsonResponseroutePut()
public
routePut(array<string|int, mixed> $fragments, array<string|int, mixed> $params) : JsonResponse
Parameters
- $fragments : array<string|int, mixed>
- $params : array<string|int, mixed>
Return values
JsonResponsefrag()
Extract a fragment from the fragments array.
protected
frag(array<int, string> $fragments, int $index) : string
Parameters
- $fragments : array<int, string>
-
The URL path fragments
- $index : int
-
The index to extract
Return values
string —The fragment at the index, or empty string if not present