Google Cloud Speech to Text API Kullanımı

Banuçiçek Kandemir
6 min readJul 12, 2021

Sizlere bu yazıda Google’ın Speech to Text uygulamasının kurulumu ve kullanımından bahsedeceğim. Speech to Text uygulamasının birçok kullanım şekli ve alanı bulunmaktadır. Ancak bu yazıda,bahsi geçen uygulamayı kullanarak, ses ihtiva eden video görüntülerinin metne çevrilme yöntemini sizlere anlatacağım.

1.Ön Hazırlık- Hesap Oluşturma

Uygulamayı kullanıma geçmeden önce bir Google hesabı oluşturmanız ve akabinde Google Cloud hesabı oluşturmanız gerekiyor. Hesabı oluşturup kullanıma başladıktan sonra, otomatik olarak 90 gün süre ile geçerli $300 deneme sürümü kullanım hakkınız bulunuyor.

Sırada uygulamayı kullanabilmek için yapmamız gereken çeşitli adımlar var. Bunların ilki bu linki tıklayarak karşınıza çıkacak olan sayfada kurulumunuzu yapmak. Bunun için var olan bir proje de seçebilirsiniz, yeni bir proje de oluşturabilirsiniz.

Kaynak

Yeni bir proje oluşturcağımızı varsayalım. Bu aşamada karşınıza ödeme için fatura hesabı oluşturma sayfası çıkıyor ve bu aşamayı tamamlamadan bir sonraki adıma geçme şansınız yok. (Ama zaten 300$ harcama limitiniz olduğunu untumayın:)

API Console sayfasına tıklayıp hesabı oluşturduktan sonra işleme kaldığınız yerden devam edebilirsiniz. Bu aşamadan sonra karşınıza çıkacak olan ekrandan size özel tanımlanmış olan JSON dosyasını bilgisayarınıza indirmeniz gerekiyor.

Bir sonraki adımda komut satırında indirdiğiniz JSON dosyasınızın “path”ini verererek aşağıdaki kodu çalıştırıyoruz. Böylelikle Google Hizmet Hesabını aktifleştiriyoruz.

set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH(exp:"\service-account-file.json")

Bu aşamadan sonra uygulamayı kullanmamız için son bir adımımız kalıyor. O da Google Cloud SDK (Software Development Kit)’nın kurulumu. Peki Google Cloud SDK nedir? Cloud SDK, Google Cloud ‘da bulunan kaynakları ve uygulamaları kullanmak ve yönetmek için bir araçtır. Kurulum için bu linki tıklayabilirsiniz. Cloud SDK’yi indirdikten sonra kullandığınız işletim sistemi doğrultusunda yönergeleri takip etmeniz yeterli oluyor.

Veriyi Dönüştürme ve Google Cloud’a Yükleme

Burada kısa bir bilgi paylaşmak istiyorum. Uygulama yeni olduğu için kendi dosyalarımı uygulamada çalıştırıp metin elde etmek konusunda detaylı bir kaynak bulamadım. Uygulamayı çalıştırabildikten sonra da, kullanmak isteyen kişiler için bu yazıyı yazma ihtiyacı hissettim. Birçok yerde bulabileceğiniz ya da yazıda paylaştığım linklerde direkt uygulayabileceğiniz kısımları kısa şekilde paylaştım. Bu yazıda herhangi bir yerde bulamadığım, deneme-yanılmayla elde ettiğim bilgileri detaylı bir şekilde paylaşmayı tercih ettim.

Kurulumlarımızı tamamladık. Şimdi sırada metne çevirmek istediğimiz dosyaların uygun formata getirilmesi işlemi var. Google Cloud Speech to Text uygulamasını kullanabilmek için eğer dosyalarınız video görüntülerinden oluşuyorsa, bunları ses dosyasına (audio) dönüştürmeniz gerekiyor. Bunun için Google, sayfasında FFmpeg uygulamasına yönlendirmiş. Fakat ben kullanım kolaylığı açısından herhangi bir çevrim içi ses dosyası dönüştürücü siteyi kullanmayı tercih ettim. Sitede dönüştürebileceğiniz birçok format mevcut. Ben “wav” formatına dönüştürdüm. Burada videoyu ses dosyasına dönüştürmeden önce, API yi kullanırken hata almamak için, gelişmiş ayarlar bölümünden Kanallar kısmını 1 kanallı olarak ve Örnek hızı (sample_rate_hertz) 16000 e ayarlayıp dönüştürme işlemini yapmanız gerekiyor. Aksi halde elde etiğiniz audio dosyasını Google API’ya verdiğinizde hata alıyorsunuz. Gerekli ayarlamaları yapıp dönüştürme işlemini yaptıktan sonra dosyayı indiriyoruz.

Artık zamanları ile birlikte içinde geçen kelimeleri elde etmek isteğimiz ses dosyasını, gerekli dönüşüm ve ayarlamalar yapılarak elde etmiş durumdayız. Bu yerel dosyayı Google API’ye vermeden önce son bir işlemimiz kaldı. Bu dosyaya ulaşabilmek için dosyanızı ya GitHub’a ekleyip oradan çekmeniz ya da Google Cloud a yüklemeniz gerekiyor. Ben Clolud’ a yüklemeyi tercih ettim. Bunun için yapmanız gerekenler şu şekilde:

Kaynak
  • İsimlendirme işlemini tamamladıktan sonra metne dönüştürmek istediğiniz verinin hangi şekilde ve hangi bölgede kaydedileceğini seçiyorsunuz. Veriyi yükleyeceğimiz alanı (Bucket) oluşturduk. Şimdi sıra veriyi bu bucketa yüklemeye geldi. Oluşturduğunuz alanın içine girdiğinizde sizi şöyle bir sayfa karşılıyor.
  • Upload filesı tıklıyoruz ve biraz önce videodan elde ettiğimiz audio dosyasını Cloud’a yüklüyoruz.
  • Veriyi, yani ses dosyamızı Cloud’a yükledik. Yüklediğimiz veriyi kullanıma açmak için yapmamız gereken son bir şey kaldı. O da dosyamızı “public” yapmak. Bunun için yüklediğimiz dosyanın menüsüne girip “Edit permissions” sekmesini tıklıyoruz.
  • Karşımıza aşağıdaki gibi bir sayfa çıkıyor. Bu sayfada “Entity” kısmını “Public” olarak ayarlıyoruz ve “save” tuşuna basıyoruz. Veriyi public yaptıktan sonra üzerinde tıklıyoruz. Karşımıza şöyle bir sayfa çıkıyor.
  • gsutil URI de bulunan linki kopyalıyoruz. Artık verimiz internette erişime açık ve kullanım linki kopyaladığımız link.

Google Speech to Text API Uygulama

Tüm ön hazırlıkları tamamladık. Artık kod kısmına geçebiliriz. Önceden indirmiş olduğumuz Google Cloud SDK Shell’i çalıştırıyoruz. Önceden indirdiğimiz JSON dosyamızı uzantısıyla birlikte yazıp set ediyoruz.

Google Speech to Text API’ın birçok kullanım yeri ve yöntemi olduğundan bahsetmiştik. Bu aşamadan sonra ihtiyacınıza göre kullanımın ne şekilde olacağını seçiyoruz. Bunun için Google bize bir rehber ve dokümantasyon hizmeti sunuyor. Bu dokümanı detaylı incelediğinizde ihtiyacınız olan kodlara birçok farklı dil desteğiyle ulaşabiliyorsunuz. Ben bu yazıda Python dilini kullanarak devam edeceğim. Speech to Text tarafından elde edeceğim metin dosyasında geçen her kelimenin zaman bilgilerine(Timestamps) ulaşmak istediğim için Getting word timestampsbölümüyle ile devam edeceğim.

Bu aşamada karşımıza çıkan sayfada “View on GitHub” sekmesini tıklıyoruz. Bu bölümde GitHub sayfasındaki “Example usage” kısmında gösterildiği şekilde dosyayı çalıştıracağım.

Kaynak

Bundan dolayı öncelikle karşımıza çıkan sayfadaki kodu kopyalayıp py. uzantısı ile bir dosyaya kaydediyoruz. Sonra dosyayı açıp içinde bazı düzenlemeler yapmamız gerekiyor. Bunların ilki elde etmek istediğimiz dil. Google Speech to Text API 125 farklı dil desteği sağlıyor. Bunun içerisinde Türkçe mevcut. Benim kullanmakta olduğum video ve ondan elde ettiğim ses dosyası Türkçe. Dolayısıyla kod dosyamın içinde bu düzenlemeyi yapmam gerekiyor. Bunun için GitHub’dan alıp yerel bilgisayarımıza kaydettiğimiz py uzantılı dosyamızın içinde “language_code” kısmınıdaki “en-US” kısmını “tr” olarak değiştiriyorum.

Artık uzun süren öz hazırlıklarımızdan sonra audio dosyasımızı Google Speech to Text API’ye verebiliriz. Ben py dosyasımı ApiTimestamp.py ismiyle kaydettim. İşleyeceğimiz veriyi Google Cloud’a yükledikten sonra elde ettiğimiz “gs://……” uzantılı bağlantıyı kopyalıyoruz. Kodu shellde çağırdıktan sonra akabinde gs://… uzantılı bağlantıyı koplayıyoruz. Artık kodumuzu çalıştırabiliriz.

Benim işlediğim video kısa süreli olduğu için sadece üç kelimeden oluşuyor. Dolayısıyla aldığım çıktı yukarıdaki görüntüde gördüğünüz gibi. Her bir kelimenin video içerisinde başlangıç ve bitiş sürelerinin çıktısını alabiliyoruz.

Sonuç

Google’ın birçok API’si bulunmakla birlikte sizlere bu yazıda Speech to Text API’sinin nasıl kullanılması ve kullanımından önce yapılması gerekenlerı anlatmaya çalıştım. Karışık geldiğinin farkındayım:) Uygularken birçok kez ben de böyle hissettim.Sorularınız olursa yardımcı olmaya çalışırım. Okuduğunuz için teşekkür ederim.Herkese kolaylıklar dilerim. Bir sonraki yazımda görüşmek üzere:)

Kaynaklar

[1] https://cloud.google.com/speech-to-text/docs/quickstart-protocol

[2] https://console.cloud.google.com/billing

[3] https://www.ffmpeg.org/

[4] https://online-audio-converter.com/tr/

[5] https://cloud.google.com/speech-to-text/docs/async-time-offsets

[6] https://cloud.google.com/speech-to-text/docs/async-time-offsets

--

--

Banuçiçek Kandemir

M.Sc. Student in Mathematics at Gebze Technical University. Try to learn about how machines learn.