Cloud Speech-to-Text API ile konuşmayı metne dönüştürme

Cloud Speech API, 80'den fazla dildeki ses dosyalarından metin transkripsiyonu oluşturmanıza olanak tanır.

Bu laboratuvarda bir ses dosyası kaydedip transkripsiyon için Cloud Speech API'ye göndereceğiz.

Neler öğreneceksiniz?

  • Speech API isteği oluşturma ve API'yi curl ile çağırma
  • Farklı dillerdeki ses dosyalarıyla Speech API'yi çağırma

İhtiyacınız olanlar

  • Google Cloud Platform projesi
  • Chrome veya Firefox gibi bir tarayıcı

Bu eğitimi nasıl kullanacaksınız?

Yalnızca okuyun Okuyun ve alıştırmaları tamamlayın

Google Cloud Platform deneyiminizi nasıl değerlendirirsiniz?

Başlangıç Orta İleri

Kendi hızınızda ortam kurulumu

Henüz bir Google Hesabınız (Gmail veya Google Apps) yoksa oluşturmanız gerekir. Google Cloud Platform Console'da (console.cloud.google.com) oturum açın ve yeni bir proje oluşturun:

Screenshot from 2016-02-10 12:45:26.png

Proje kimliğini unutmayın. Bu kimlik, tüm Google Cloud projelerinde benzersiz bir addır (Yukarıdaki ad zaten alınmış olduğundan sizin için çalışmayacaktır). Bu codelab'in ilerleyen kısımlarında PROJECT_ID olarak adlandırılacaktır.

Ardından, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir.

Bu codelab'i tamamlamak size birkaç dolardan fazla maliyet getirmemelidir. Ancak daha fazla kaynak kullanmaya karar verirseniz veya kaynakları çalışır durumda bırakırsanız maliyet daha yüksek olabilir (bu belgenin sonundaki "temizleme" bölümüne bakın).

Google Cloud Platform'un yeni kullanıcıları 300 ABD doları değerindeki ücretsiz deneme sürümünden yararlanabilir.

Ekranın sol üst kısmındaki menü simgesini tıklayın.

Açılır listeden API'ler ve Hizmetler kontrol panelini seçin.

API'leri ve hizmetleri etkinleştir'i tıklayın.

Ardından, arama kutusuna "konuşma" yazın. Google Cloud Speech API'yi tıklayın:

Cloud Speech API'yi etkinleştirmek için Etkinleştir'i tıklayın:

Etkinleşmesi için birkaç saniye bekleyin. Etkinleştirildikten sonra şunları görürsünüz:

Google Cloud Shell, Cloud'da çalışan bir komut satırı ortamıdır. Bu Debian tabanlı sanal makine, ihtiyaç duyacağınız tüm geliştirme araçları (gcloud, bq, git ve diğerleri) yüklü olarak gelir ve 5 GB kalıcı ana dizin sunar. Speech API'ye yönelik isteğimizi oluşturmak için Cloud Shell'i kullanacağız.

Cloud Shell'i kullanmaya başlamak için başlık çubuğunun sağ üst köşesindeki "Google Cloud Shell'i etkinleştir" Screen Shot 2015-06-08 at 5.30.32 PM.png simgesini tıklayın.

Konsolun altındaki yeni bir çerçevede Cloud Shell oturumu açılır ve komut satırı istemi görüntülenir. user@project:~$ istemi görünene kadar bekleyin.

Speech API'ye istek göndermek için curl kullanacağımızdan istek URL'sini iletmek için bir API anahtarı oluşturmamız gerekecektir. API anahtarı oluşturmak için proje kontrol panelinizin API'ler ve Hizmetler > Kimlik Bilgileri bölümüne gidin:

Ardından, Kimlik bilgileri oluştur'u tıklayın:

Açılır menüde, API anahtarı'nı seçin:

Ardından, oluşturduğunuz anahtarı kopyalayın ve Kapat'ı seçin (anahtarı kısıtlamayın).

Artık bir API anahtarınız var. Şimdi bu anahtarı bir ortam değişkenine kaydedip her istekte API anahtarınızın değerini ekleme zahmetinden kurtulabilirsiniz. Bu işlemi Cloud Shell'de yapabilirsiniz. <your_api_key> yerine az önce kopyaladığınız anahtarı yapıştırdığınızdan emin olun.

export API_KEY=<YOUR_API_KEY>

Speech API'ye yönelik isteğinizi bir request.json dosyasında oluşturabilirsiniz. Bu dosyayı oluşturmak ve düzenlemek için tercih ettiğiniz komut satırı düzenleyicilerinden (nano, vim, emacs) birini veya Cloud Shell'deki yerleşik web düzenleyiciyi kullanabilirsiniz:

Kolayca referans verebilmek için dosyayı ana dizininizde oluşturun ve request.json dosyanıza aşağıdakileri ekleyin :

request.json

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

İsteğin gövdesinde bir config ve audio nesnesi bulunur. config bölümünde, Speech API'nin isteği nasıl işleyeceğini belirtiriz. encoding parametresi, API'ye gönderdiğiniz ses dosyası için kullandığınız ses kodlama türünü API'ye bildirir. FLAC, .raw dosyaları için kullanılan kodlama türüdür (kodlama türüyle ilgili daha fazla bilgi için dokümanlara bakın). config nesnenize ekleyebileceğiniz başka parametreler de vardır ancak yalnızca encoding parametresi zorunludur. languageCode, istekte belirtilmezse varsayılan olarak İngilizce olur.

audio nesnesinde, Cloud Storage'daki ses dosyamızın URI'sini veya base64 kodlu sesi dize olarak API'ye iletebilirsiniz. Burada Cloud Storage URL'leri kullanıyoruz. Bir sonraki adım, Speech API'yi çağırmaktır.

Artık isteğinizin gövdesini, daha önce kaydettiğiniz API anahtarı ortam değişkeniyle birlikte aşağıdaki curl komutunu kullanarak Speech API'ye iletebilirsiniz (hepsi tek bir komut satırında):

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

Bu curl komutu tarafından döndürülen yanıt aşağıdaki gibi görünmelidir:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}

transcript değeri, Speech API'nin ses dosyanızla ilişkili olarak ürettiği transkripti döndürür. confidence değeri ise API'nin, ses dosyanızın transkriptinin doğruluğundan ne kadar emin olduğunu gösterir.

Yukarıdaki isteğimizde recognize yöntemini çağırdığımızı fark etmişsinizdir. Speech API hem eşzamanlı hem de eşzamansız sesle yazma transkriptini destekler. Bu örnekte, ses dosyasının tamamını gönderdik ancak longrunningrecognize yöntemini, kullanıcı konuşmaya devam ederken canlı sesle yazma transkripti üretmek için de kullanabilirsiniz.

Birden fazla dil biliyor musunuz? Speech API, 100'den fazla dilde sesle yazma transkripsiyonunu destekler. languageCode parametresini request.json bölümünde değiştirebilirsiniz. Desteklenen dillerin listesini burada bulabilirsiniz.

Fransızca bir ses dosyası deneyelim (önizleme için buradan dinleyebilirsiniz). request.json dosyanızı aşağıdaki gibi değiştirin:

request.json

 {
  "config": {
      "encoding":"FLAC",
      "languageCode": "fr"
  },
  "audio": {
      "uri":"gs://speech-language-samples/fr-sample.flac"
  }
}

Aşağıdaki yanıtı görmeniz gerekir:

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
          "confidence": 0.9710122
        }
      ]
    }
  ]
}

Bu cümle, popüler bir Fransız çocuk masalından alınmıştır. Başka bir dilde ses dosyalarınız varsa bunları Cloud Storage'a eklemeyi ve isteğinizdeki languageCode parametresini değiştirmeyi deneyebilirsiniz.

Speech API ile konuşmayı metne dönüştürme işlemini nasıl yapacağınızı öğrendiniz. Bu örnekte, ses dosyanızın Google Cloud Storage URI'sini API'ye ilettiniz. Alternatif olarak, ses içeriğinizin base64 kodlu bir dizesini iletebilirsiniz.

İşlediğimiz konular

  • Speech API'ye bir ses dosyasının Google Cloud Storage URI'sini iletme
  • Speech API isteği oluşturma ve API'yi curl ile çağırma
  • Farklı dillerdeki ses dosyalarıyla Speech API'yi çağırma

Sonraki adımlar