Google Voice: Cloud Text-to-Speech ile çalışalım

Evet bu yazımızda Google Voice servislerinden Cloud Text-to-Speech çalışması ile dersimizi tamamlayacağız. Bir çok işleve sahip olan ve 20 dil destekleyen Text-to-Speech metinlerimizi hem yüksek kalitede ses dosyası halinde almaya hemde metni sese çevirmeye yaramakta.

Google Text-to-Speech, kullanımı oldukça kolay bir api sunmakta bizlere. Tabi bu kullanımı kolaylaştırmak adına bizden bazı kütüphaneler indirmemizi ve anlatımda yer alan bazı yönergeleri izlememizi istiyor.

Text-to-Speech konusuna göz atmak gerekirse şuradan bir ön inceleme yapabilirsiniz. Bununla birlikte yardım dokümanı sunduğunu da unutmayalım. Api yardım konsolunu buradan görüntüleyebilirsiniz.

Projemizi Oluşturalım

Google bu hizmeti bize kullandırmadan önce, bizden kullanacağımız alan adını ve bir doğrulama kodu oluşturmamızı istiyor. Bunla birlikte kullanacağımız Api hizmetini de aktif etmemiz gerekir.

Öncelikle google console proje sayfamıza buradan tıklayarak gidelim. Açılan sayfada eğer varsa daha önce oluşturduğumuz projeleri görmüş olacaksınız. Buradan hemen bir Api proje oluşturmak için buraya tıklayalım. Açılan sayfadan proje oluşturmanız gerekecek. Devam diyerek projemize bir isim verip projeyi oluşturuyoruz.
Bu işlemin sonunda, proje adı, proje kimliği, proje numarası oluşmuş olacaktır.

Projemiz oluşturulduktan sonra Google bizden kimlik doğrulama işlemlerini yapmamızı isteyecektir. Bu işlem için burayı tıklayarak devam ediyoruz. Açılan sayfada sizden hizmet hesabını seçmenizi isteyecek. Biraz önce ismini vererek oluşturduğumuz projeyi burada seçeceğiz. Hizmet hesabını belirledikten sonra hemen altında size anahtar türünü soracaktır. Biz bunu JSON seçerek oluştur düğmesine basıp işlemi bitirmiş olacağız. Bu işlem sonrasında bilgisayarınıza bir JSON dosyası inmiş olacaktır. İşte bu dosya bizim kimlik dosyamız ve bu dosyayı Api doğrularken kullanacağız.
Buraya kadar yaptığımız tüm işlemleri tekrar adım adım google üzerinde görüntülemek isterseniz buraya tıklayabilirsiniz.

Artık bir Api ve Kimlik bilgisi oluşturduk ve JSON dosyamızı indirdik. Sadece bir kaç adım kaldı. Google bizden bu işlemlerin ardından bir yazılım kiti SDK kurmamızı istiyor. Basit bir kurulum olan bu kite sayfasına buradan ulaşabiliriz. Sayfada bulunan Cloud SDK installer linkine tıklayarak SDK yı indirip kurulumu yapıyoruz.

Bu kurulum ne için gerekliydi derseniz, google kütüphanesini indirmek ve kullanmak için diyebilirim. Bu işlemin sonunda Vendor isimli bir klasor elde etmiş olacağız. Bu klasörü elde etmek içinse kurulumdan hemen sonra Cloud SDK Shell i çalıştırıp

composer require google/cloud-text-to-speech
bu kodu yazıp enter’a basmamız yeterli.

Bu işlem sonucu şöyle bir görüntü elde etmiş olacağız. Burada Composer işlemi sonucu Vendor klasörümüz google tarafından bilgisayara indirilmiş olacaktır.
Burada da gördüğünüz gibi SKD nın yüklü olduğu dizine Composer sonucu Vendor klasörümüz indirilmiş durumda.

Dayanın Sona Geliyoruz

Evet geldik son adıma. Bu Vendor klasörü ne olacak derseniz şimdi localhostta çalıştığınızı düşünerek oraya bir texttospeech kalsör oluşturmanızı ve bu vendor klasorünü içine kopyalamanızı isteyeceğim.

Bu işlem sonrası GitHub’da bulunan Google Src dosyasını da indirip localhostta ki klasörümüze kopyalayacağız. Sonrasında Api oluştururken indirdiğimiz JSON dosyası vardı onuda aynı klasöre koyalayalım.

Kopyaladığımız klasör ve dosyalar sonrası son görüntü bu şekilde olacak.

Şimdi bir index.php dosyası oluşturalım ve bu dosya içerisine

$CredentialsApp = 'Texttospeech-7f5f3f030283.json';
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . $CredentialsApp);
// includes the autoloader for libraries installed with composer
require __DIR__ . '/vendor/autoload.php';
 
// Imports the Cloud Client Library
use Google\Cloud\TextToSpeech\V1\AudioConfig;
use Google\Cloud\TextToSpeech\V1\AudioEncoding;
use Google\Cloud\TextToSpeech\V1\SsmlVoiceGender;
use Google\Cloud\TextToSpeech\V1\SynthesisInput;
use Google\Cloud\TextToSpeech\V1\TextToSpeechClient;
use Google\Cloud\TextToSpeech\V1\VoiceSelectionParams;
 
// instantiates a client
$client = new TextToSpeechClient();
 
// sets text to be synthesised
$synthesisInputText = (new SynthesisInput())
    ->setText('Hello, world!');
 
// build the voice request, select the language code ("en-US") and the ssml
// voice gender
$voice = (new VoiceSelectionParams())
    ->setLanguageCode('en-US')
    ->setSsmlGender(SsmlVoiceGender::FEMALE);
 
// Effects profile
$effectsProfileId = "telephony-class-application";
 
// select the type of audio file you want returned
$audioConfig = (new AudioConfig())
    ->setAudioEncoding(AudioEncoding::MP3)
    ->setEffectsProfileId(array($effectsProfileId));
 
// perform text-to-speech request on the text input with selected voice
// parameters and audio file type
$response = $client->synthesizeSpeech($synthesisInputText, $voice, $audioConfig);
$audioContent = $response->getAudioContent();
 
// the response's audioContent is binary
file_put_contents('output.mp3', $audioContent);
echo 'Audio content written to "output.mp3"' . PHP_EOL;
kodlarımızı ekleyerek kaydedelim. Bu dosya metni yazıya çeviren dosyamız olacak 🙂

Burada dikkat ettiyseniz kod içerisinde “Hello, world!” yazılı kısım bizim dosyamız tarafından sese dönüştürülecek olan kısımdır. Biz buraya artık ne yazarsak o sesli olarak karşımıza çıkacaktır.

ve yine dikkat ettiyseniz, JSON dosyamızı kodun hemen başında GOOGLE_APPLICATION_CREDENTIALS olarak include etmiş ve kimlik doğrulamasını yaptırmış olduk.

Ne Yaptık?

Aslında karışık gibi gözüken ama sadece api oluşturup composer yapıp ilgili GitHub projesinden Src dosyalarını kopyalayıp bir yapı oluşturmuş olduk 🙂 Bu tarz seslendirme yapılarını nerelerde kullanacağız ki derseniz, en basit şekliyle sitenizin yardım alanlarında yada bir sözlük yapımında kullanabilirsiniz.

4

You May Also Like

About the Author: ismailcakir

Uzmanlık alanım php olmakla beraber, Codeigniter, Laravel freamworkleri kullanmaktayım. NodeJs, Vue, Flutter ile de geliştirmeler yapmaktayım.

2 Comments

  1. Güzel bir kaynağa imza atmışsınız, video ile anlatım yapsanız daha faydalı olacağını düşünmekteyim.
    Özel Eğitim Öğretmeniyim ve Görme Yetersizliği olan öğrencilerim için bu konuyu araştırırken yazınıza denk geldim. Teşekkür ediyorum.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir