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

Cloud Speech API, 80'den fazla dilde ses dosyalarından metne dönüştürme yapmanıza olanak tanır.

Bu laboratuvarda, bir ses dosyası kaydedecek ve metne dönüştürme için Cloud Speech API'ye göndereceğiz.

Neler öğreneceksiniz?

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

Gerekenler

  • Bir Google Cloud Platform Projesi
  • Chrome veya Firefox gibi bir Tarayıcı

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

Sadece okuyun Okuyun ve alıştırmaları tamamlayın

Google Cloud Platform deneyiminizi nasıl değerlendirirsiniz?

Acemi Orta Yetkili

Bağımsız tempolu ortam kurulumu

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

Ekran görüntüsü: 10.02.2016 12:45:26.png

Proje kimliğini tüm Google Cloud projeleri genelinde benzersiz bir ad olarak hatırlayın (yukarıdaki ad zaten alınmıştı ve maalesef sizin için çalışmaz). Bu, daha sonra bu codelab'de 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 gözden geçirmek için çalışmanın birkaç dolardan fazla maliyeti olmayacak. Ancak daha fazla kaynak kullanmaya karar verirseniz veya bunları çalışır durumda bırakırsanız (bu belgenin sonundaki "temizlik" bölümüne bakın) daha yüksek maliyetli olabilir.

Yeni Google Cloud Platform kullanıcıları 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.

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

Açılır menüden API'ler ve Hizmetler kontrol panelini seçin.

API'leri ve Hizmetleri Etkinleştir'i tıklayın.

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

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

Etkinleştirmek için birkaç saniye bekleyin. Bu özellik etkinleştirildikten sonra bunu görürsünüz:

Google Cloud Shell, Cloud'da çalışan bir komut satırı ortamıdır. Bu Debian tabanlı sanal makine, ihtiyacınız olan tüm geliştirme araçları (gcloud, bq, git ve diğerleri) yüklü olarak gelir ve kalıcı 5 GB 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" Ekran Görüntüsü, 08.06.2015 17:30.32.pngsimgesini 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ününceye kadar bekleyin

Speech API'ye istek göndermek için curl kodunu kullanacağımızdan, istek URL'mizi iletmek için bir API anahtarı oluşturmamız gerekir. 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, yeni oluşturduğunuz anahtarı kopyalayın ve Kapat'ı seçin (anahtarı kısıtlamayın).

Artık bir API anahtarınız bulunduğuna göre artık her istekte API anahtarınızın değerini eklemek zorunda kalmamak için anahtarı bir ortam değişkenine kaydedin. Bunu Cloud Shell'de yapabilirsiniz. <your_api_key> öğesini, az önce kopyaladığınız anahtarla değiştirdiğinizden 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 birini (nano, vim, emacs) veya Cloud Shell'deki yerleşik web düzenleyiciyi kullanabilirsiniz:

Kolayca başvuruda bulunabilmek ve aşağıdaki dosyayı request.json dosyanıza eklemek için dosyayı ana dizininizde oluşturun :

request.json

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

İstek gövdesinde config ve audio nesnesi bulunur. config bölgesinde, Speech API'ye isteğin nasıl işleneceğini açıklarız. encoding parametresi, API'ye göndermekte olduğunuz ses dosyası için ne tür ses kodlaması kullandığınızı API'ye bildirir. FLAC, .raw dosyaları için kodlama türüdür (daha fazla bilgi için kodlama türüne ait belgelere bakın). config nesnenize ekleyebileceğiniz başka parametreler de vardır, ancak encoding tek parametredir. İstek dışında bırakılırsa languageCode dili varsayılan olarak İngilizce olur.

audio nesnesinde, Cloud Storage'daki ses dosyamızın uri'sini veya base64 olarak kodlanmış sesi dize olarak aktarabilirsiniz. Cloud Storage URL'lerini kullanıyorduk. Sonraki adım Speech API'yi çağırmaktır.

Artık istek gövdenizi, daha önce kaydettiğiniz API anahtar ortamı değişkeniyle birlikte aşağıdaki curl komutuyla Speech API'ye iletebilirsiniz (tümü 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, ses dosyanızın Speech API'sinin metne dönüştürmesini döndürür ve confidence değeri, API'nin sesinizi doğru şekilde metne dönüştürdüğünden ne kadar emin olduğunu gösterir.

Yukarıdaki isteğimizde recognize yöntemini çağırdığımızı fark edeceksiniz. Speech API hem eşzamanlı hem de eşzamansız sesle yazma çeviri yazılarını destekler. Bu örnekte, ses dosyasının tamamını gönderdik. Ancak, kullanıcı konuşurken canlı konuşmayı metne dönüştürme işlemi için longrunningrecognize yöntemini de kullanabilirsiniz.

Çok dilli misiniz? Speech API, 100'den fazla dilde konuşmayı metne dönüştürme özelliğini destekler. languageCode parametresini request.json ürününde değiştirebilirsiniz. Desteklenen dillerin listesini burada bulabilirsiniz.

Fransızca bir ses dosyası deneyelim (önizleme isterseniz 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öreceksiniz:

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

Bu, popüler bir Fransız çocuk hikayesinin cümlesidir. Başka bir dilde ses dosyalarınız varsa bunları Cloud Storage'a eklemeyi ve isteğinizde languageCode parametresini değiştirmeyi deneyebilirsiniz.

Speech API ile sesle yazma yapmayı öğrendiniz. Bu örnekte, ses dosyanızın Google Cloud Storage URI'sını geçtiniz. Alternatif olarak, ses içeriğinizin base64 olarak kodlanmış dizesini aktarabilirsiniz.

Değindiğimiz konular

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

Sonraki adımlar