Delphi Google Speech to Text Bileşeni
3 min read

Delphi Google Speech to Text Bileşeni

Delphi Google Speech to Text Bileşeni

Merhaba,

bu bileşen tamamen ücretsiz ve açık kaynak olarak geliştirilmiştir. Buradaki temel amaç, bu konudaki zayıf kaynak ihtiyacını karşılamaktır. Google'ın sunduğu birçok api uygulamasından biri olan Google Speech to Text teknolojisi ile konuşulan sesleri yazıya dökebilirsiniz. Temel amacı sesli komutlar göndermek ve projelerinizde bu komutu işlemek. Bu proje örneğinde, belirli bir dosya işlenir. Dilerseniz 3. parti bileşenler ile anında ses kaydedebilir ve işleyebilirsiniz.

Gereksinimler

  • Indy Komponentleri
  • ssleay32.dll ve libeay32.dll

Delphi'den Önce Google İle Yapılması Gerekenler

https://cloud.google.com/speech-to-text adresine gidin. Buradan konsola gidin veya denemek istediğinizi söyleyen düğmeyi tıklayın. İlk kez kuruyorsanız, düğmede "make a test" olarak belirtilir. Kurulumları tamamlayın. Kurulum sırasında kredi kartı bilgileri talep edilebilir. Benim önerim sanal bir kart oluşturmak ve belirli limit kartları tanımlamaktır. Size 90 günlük bir deneme süresi verecektir. Otomatik faturalandırmanın durdurulmasından korkmayın; hizmetiniz bittiğinde sona erecek. API'yi etkinleştirdikten sonra bir hizmet hesabı oluşturun:

image
image

Servis oluşturulduktan sonra servis detaylarına gidin. "Anahtarlar" sekmesinden yeni bir anahtar oluşturma isteği gönderin ve json dosyanızı aşağıdaki gibi indirin:

image

⚠️ Bu dosya bizim için önemli. Dosyanın içeriğini açtığınızda, "hizmet e-posta adresinizin" özel anahtar değerinize sahip olduğundan emin olun. ⚠️

Bu dosya, bileşen tarafındaki "PrivateKeyFile" değerine karşılık gelir.

Component Setup

Tüm kaynak dosyaları tanımlayın:

image

Bundan sonra, dpk dosyasını Delphi ile kurun. Ardından bir proje oluşturun.

⚠️ Demo ile sonraki adımları da gerçekleştirebilirsiniz. ⚠️

  • Projenize bir hbGoogle bileşeni ekleyin.
  • Bir düğme ekleyin ve onclick etkinliğine gelin.
  • hbGoogle için; PrivateKeyFile özellik değerini, Google'dan indirdiğimiz json dosyasının yolunu tanımlayın.
  • VoiceFile özellik değeri için, ses dosyasının yolunu tanımlayın. Hatırlamak; Dosyanın wav uzantısı ve 16000hz olması gerekir.
  • Ses dosyası uygun değilse size bir hata verecektir.
  • SpeechLanguage değeri dil içindir. Sesin hangi dile ait olduğunu gösterir.
  • Base64 biçimine dönüştürürken çok uzun dosyalar Google sınırlarına takılabilir. Bunun için ileride ele alacağım CloudStorage yapısı ile önce sesleri buluta gönderip sonra uri vererek dönüştürebiliyorum.

Örnek kod:

hbGoogle1.SpeechLanguage := 'tr-TR';
hbGoogle1.PrivateKeyFile := 'delphisestenyazi.json';
hbGoogle1.VoiceFile := 'temp.wav';
ShowMessage(hbGoogle1.SpeechToText); 

Bu kadar! Dönüş size yazılı olarak geri dönecektir.

Bazı Uyarılar

  • Lütfen ses kaydının 16000hz olduğundan ve orijinal wav uzantısının olduğundan emin olun. FFMpeg'i kullanabilirsiniz.
  • Kodlarda aşırı veya yanlış kullanım meydana gelmiş olabilir. Zamanla bu sorunları gidereceğim .. Hobi olarak açık kaynak kodlar yaptığım için; Ne zaman zaman bulsam işimle ilgilenebilirim.
  • Lütfen sorunlarınız için bir "issue" oluşturun.
  • Sadece VCL destekli.
  • Delphi 10.4.2 ile geliştirilmiş ve test edilmiştir.

Kaynaklar & Teşekkür

Eşsiz kaynaklar için;
https://github.com/grijjy/DelphiGoogleAPI
JWT için;
https://github.com/paolo-rossi/delphi-jose-jwt
RSA imzalama için;
https://github.com/SirAlex/delphi-jose-jwt
ve...
‌Her araştırmada benden önce gelen "Remy Lebeau" ya çok teşekkür ederim.

halilhanbadem/delphi-google-speech-to-text
Google Speech to Text Component. Contribute to halilhanbadem/delphi-google-speech-to-text development by creating an account on GitHub.

Sağlıcakla kalın!