Kullanılışı çok basit sınıfı sayfaya dahil edip içine konuşmaya çevireceğiniz metni yazın. Sonra sesi hangi sesten dinlemek istediğiniz A,B,C,D veya E olarak yazın ve sonucu ister aynak url si ister HTML5 basit audio şeklinde alın. Sesi indirmek isterseniz de downloadAudio metoduna mp3 dosyasının ismini yazabilirsiniz. Normalde haftalık 6000 karaktere kadar ücretsiz hizmet veriyor ama bu şekilde uzaktan çağırınca limitin dolduğunu hiç görmedim ben. Kodlar aşağıdadır;
tts.php
namespace textToSpeech;
/**
* Class tts
* @package textToSpeech
* @author Abdullah Kaya
*/
class tts
{
private $source;
public $sentence;
/**
* tts constructor.
* @param $sentence - Konuşmaya dökülmesini istediğiniz cümle
*/
public function __construct($sentence)
{
$this->sentence = $sentence;
}
/**
* @param string $speaker - Sesi hangi konuşmacının dilinden duyacağınız. Alabildiği değerler A/B/C/D/E. Varsayılan olarak D
* @return tts
*/
public function getSound($speaker = "D")
{
$sentence = str_replace(" ","%20", $this->sentence);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://freetts.com/Home/PlayAudio?Language=tr-TR&Voice=tr-TR-Standard-'.$speaker.'&TextMessage='.$sentence.'&id=undefined&type=0',
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT']
]);
$result = curl_exec($ch);
curl_close($ch);
$find = ['/audio/', '/Home/down'];
$replace = ['https://freetts.com/audio/', 'https://freetts.com/Home/down'];
$result = str_replace($find, $replace, $result);
preg_match('@@', $result, $kaynak);
$this->source = $kaynak[1];
return $this;
}
/**
* @param string $type - Değer source olarak verilirse ses dosyasının direkt url adresini döndürür
* @return string
*/
public function getAudio($type = "audio")
{
return $type == "source" ? $this->source : '';
}
/**
* @param $file_name - İndirilecek olan mp3 uzantılı dosyanın adı
* @return string
*/
public function downloadAudio($file_name)
{
$ch = curl_init($this->source);
curl_setopt_array($ch, [
CURLOPT_HEADER => 0,
CURLOPT_NOBODY => 0,
CURLOPT_TIMEOUT => 60,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => 0
]);
$output = curl_exec($ch);
curl_close($ch);
if (!file_exists(__DIR__.DIRECTORY_SEPARATOR.$file_name.'.mp3')) {
file_put_contents(__DIR__.DIRECTORY_SEPARATOR.$file_name.'.mp3', $output);
return $file_name.'.mp3 indirildi';
} else {
return $file_name.'.mp3 indirilemedi';
}
}
}
tts.example.php
require_once 'tts.php';
use textToSpeech\tts;
$baslat = new tts("Bu birinci ses");
$getir = $baslat->getSound("A");
$ses = $getir->getAudio();
//$getir->downloadAudio("lorem"); // İndirmek isterseniz bu satırın yorumunu kaldırın
print_r($ses);
$ikinci = $baslat->sentence = "Bu ikinci ses";
$ikinci = $baslat->getSound("B");
$ses = $getir->getAudio();
print_r($ses);
$ucuncu = $baslat->sentence = "Bu üçüncü ses";
$ucuncu = $baslat->getSound("C");
$ses = $getir->getAudio();
print_r($ses);
$dorduncu = $baslat->sentence = "Bu dördüncü ses";
$dorduncu = $baslat->getSound("D");
$ses = $getir->getAudio();
print_r($ses);
$besinci = $baslat->sentence = "Bu da beşinci ses";
$besinci = $baslat->getSound("E");
$ses = $getir->getAudio();
print_r($ses);
Kaynak dosyalar
indir