ez-php / ai-media
Image generation, audio transcription, and text-to-speech via OpenAI/Gemini drivers over ez-php/http-client
2.4.11
2026-09-20 01:19 UTC
Requires
- php: ^8.5
- ez-php/contracts: ^2.0
- ez-php/http-client: ^2.0
Requires (Dev)
- ez-php/docker: ^2.0
- friendsofphp/php-cs-fixer: ^3.94
- phpstan/phpstan: ^2.1
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-strict-rules: ^2.0
- phpunit/phpunit: ^13.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Image generation, audio transcription, and text-to-speech via OpenAI/Gemini drivers over ez-php/http-client.
Installation
composer require ez-php/ai-media
Usage
use EzPhp\AiMedia\AiMedia; use EzPhp\AiMedia\Request\ImageGenerationRequest; use EzPhp\AiMedia\Request\SpeechRequest; use EzPhp\AiMedia\Request\TranscriptionRequest; // Image generation $images = AiMedia::image(ImageGenerationRequest::make('a red bicycle on a beach')); $url = $images->first()->url(); // Transcription $audioBytes = file_get_contents('recording.mp3'); $transcript = AiMedia::transcribe(TranscriptionRequest::make($audioBytes, 'recording.mp3', 'audio/mpeg')); echo $transcript->text(); // Text-to-speech $speech = AiMedia::speech(SpeechRequest::make('Hello there.')); file_put_contents('hello.mp3', $speech->audio());
Register EzPhp\AiMedia\AiMediaServiceProvider and configure config/ai_media.php:
return [ 'image_driver' => 'openai', 'transcription_driver' => 'openai', 'speech_driver' => 'openai', 'openai' => ['api_key' => env('OPENAI_API_KEY')], 'gemini' => ['api_key' => env('GEMINI_API_KEY')], ];
image_driver, transcription_driver, and speech_driver are selected independently
(openai, gemini, or null — the default) since a provider offering one capability
does not necessarily offer the others.
License
MIT