Amazon Web Services ile Asterisk´de Seslendirme

Amazon Web Services ile Asterisk´de Seslendirme

Merhaba

Bir müşterimin isteği üzerine yaptığım bir işti çok zorlandığım bazı noktalar olduğu için ve Türkçe kaynak bulamadığım için sorunu çözdükten sonra blogda yazmaya karar verdim.

Şimdi müşterimin isteği şuydu Asterisk üzerinde seslendirme yapan agi içinde kullanılan tts pahalıymış ve bunu amazon web services ile yaparsak daha ucuz olacağını söyledi. Bu işlemle ilgili neler yapmanız gerektiğinide aşağıda listeliyorum.

İlk önce kullandığınız Asterisk sürümünü en son sürüme çekmeniz gerekmekte çünkü alt sürümlerde php 5.6 kullanılıyor ve bu php sürümü güncellendiği zaman Asterisk tarafında sıkıntıya sebep oluyor. Freepbx sitesinde son sürümün nasıl kurulacağını detaylıca görebilirsiniz ben yinede sizin için link paylaşayım.

https://wiki.freepbx.org/display/FOP/Installing+FreePBX+14+on+CentOS+7

Unutmayın Freepbx centos 7 üzerinde çalışmakta.

Buradan son sürümü kurduktan sonra AGI dosyalarınızın bulunduğu yani :

/var/lib/asterisk/agi-bin

Yere AWS dosyalarınızı kurmanız gerekmekte linkte verdiğim dosyaları agi klasörünüzün içine atmanız yeterli

http://docs.aws.amazon.com/aws-sdk-php/v3/download/aws.zip

Sonrasında aşağıda belirttiğim dosyayı açın:

/var/lib/asterisk/agi-bin/tts_hatirlatma.php

Aşağıda verdiğim eklemeleri yapın

 

        require_once 'aws/aws-autoloader.php';
	$awsAccessKeyId = 'AWS Access Key';
	$awsSecretKey   = 'AWS Screet Key';
	$credentials    = new \Aws\Credentials\Credentials($awsAccessKeyId, $awsSecretKey);
	$client         = new \Aws\Polly\PollyClient(
		array(
			'version'     => '2016-06-10',
			'credentials' => $credentials,
			'region'      => 'us-east-1',
		)
	);

Bu bağlantıyı oluşturduktan sonra;

       $result         = $client->synthesizeSpeech(
		array(
			'OutputFormat' => 'mp3',
			'Text'         => "My input text",
			'TextType'     => 'text',
			'VoiceId'      => 'Filiz'
		)
	);
	$resultData     = $result->get('AudioStream')->getContents();

Ses dosyası oluşturmak için işlemimizi yapıyoruz bu kodun en sonunada

echo file_put_contents('/var/lib/asterisk/sounds/api/T_1_$argv[1].mp3', $resultData);

Bunu ekleyerek ses dosyamızı oluşturuyor ve /var/lib/asterisk/sounds/api/ bu klasörün içinde tutuyor gerisinde sizin ses dosyasını extensions conf içinde çalıştırıp dinletmeniz kalıyor.

Takıldığınız noktalarda konunun altına yazarsanız size yardımcı olurum.

İyi kodlamalar.

Vahdet Yavuz

Son Yazılar
Yorum ( 2 )
  1. Sezer
    13 Eylül 2019 at 11:08
    Cevapla

    hOCAM ÖNCELİKLE BU GÜZEL BİLGİ İÇİN TEŞEKKÜR EDERİM. EXTENSİON CONF DOSYASI ÜZERİNDE ÇALIŞTIRMA HAKKINDA DA BİR ÖRNEK VEREBİLİR MİSİN ?

    • Vahdet Yavuz
      Vahdet Yavuz
      22 Eylül 2019 at 13:29
      Cevapla

      Merhaba şuanda elimde örnek bir conf dosyası yok siz nerde hata alıyorsanız veya sorununuz varsa dosyayı iletirseniz yardımcı olabilirim.

Bir cevap bırakın