1. Go to this page and download the library: Download afaya/edge-tts library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
afaya / edge-tts example snippets
faya\EdgeTTS\Service\EdgeTTS;
// Initialize the EdgeTTS service
$tts = new EdgeTTS();
// Get available voices
$voices = $tts->getVoices();
// var_dump($voices); // array -> use ShortName with the voice name
// Synthesize text with options for voice, rate, volume, and pitch
$tts->synthesize("Hello, world!", 'en-US-AriaNeural', [
'rate' => '0%', // Speech rate (range: -100% to 100%)
'volume' => '0%', // Speech volume (range: -100% to 100%)
'pitch' => '0Hz' // Voice pitch (range: -100Hz to 100Hz)
]);
// Export synthesized audio in different formats
$base64Audio = $tts->toBase64(); // Get audio as base64
$tts->toFile("output"); // Save audio to file
$rawAudio = $tts->toRaw(); // Get raw audio stream
$tts->synthesizeStream(
"Your text here",
'en-US-AriaNeural',
['rate' => '10%'],
function($chunk) {
// Process each audio chunk in real-time
echo "Received chunk of " . strlen($chunk) . " bytes\n";
// You can stream this directly to output, save incrementally, etc.
}
);
// Get basic audio information
$info = $tts->getAudioInfo();
// Returns: ['size' => bytes, 'format' => 'mp3', 'estimatedDuration' => seconds]
// Get estimated duration
$duration = $tts->getDuration();
// Get size in bytes
$size = $tts->getSizeBytes();
// Get word boundaries with timestamps
$boundaries = $tts->getWordBoundaries();
// Save metadata to file
$tts->saveMetadata('metadata.json');
// Get all available voices
$voices = $tts->getVoices();
// Each voice contains information like:
// - ShortName: The voice identifier to use in synthesis
// - DisplayName: Human-readable voice name
// - LocalName: Localized voice name
// - Gender: Voice gender
// - Locale: Language/region code