Asistan'ı Projenize Entegre Edin (Diğer Diller)

Google Asistan'ı entegre etmek için aşağıdaki bölümlerde yer alan talimatları uygulayın projenize ekleyin.

gRPC bağlamaları

Google Asistan Hizmeti, yüksek bir boyut olan gRPC üzerine en iyi uygulamaları paylaşacağız. Bu çerçeve, dönüşüm hunisinin iki yönlü ses akışı.

Python

Python kullanıyorsanız bu kılavuzu kullanmaya başlayın.

C++

C++ örneğimize göz atın bulabilirsiniz.

Node.js

Node.js örneğimize göz atın bulabilirsiniz.

Android Things

Yerleştirilmiş cihazlarla mı ilgileniyorsunuz? Asistan SDK'sına göz atın şunun için sample: Android Things.

Diğer diller

Asistan'la çalışması için Google Hesabınızı yetkilendirme ve kimlik doğrulaması yapma

Bir sonraki adım, cihazınızı Google Asistan ile konuşmak üzere yetkilendirmektir Google Hesabınızı kullanarak.

Asistan SDK'sı kapsamıyla OAuth jetonları alma

Asistan SDK'sı, cihazınızı şu işlemler için yetkilendirmek için OAuth 2.0 erişim jetonlarını kullanır: Asistan'a bağlanmalısınız.

Prototip oluştururken OAuth2.0'ı kolayca oluşturmak için yetkilendirme aracını kullanabilirsiniz. sırasında oluşturulan client_secret_<client-id>.json dosyasındaki kimlik bilgileri cihaz modelinizi kaydetme.

Kimlik bilgilerini oluşturmak için aşağıdakileri yapın:

  1. Python sanal ortamı kullanın yetkilendirme aracını ve bağımlılıklarını sistemin Python paketlerinden izole edin.

    sudo apt-get update
    sudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.
    python3 -m venv env
    env/bin/python -m pip install --upgrade pip setuptools wheel
    source env/bin/activate
    
  2. Yetkilendirme aracını yükleyin:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. Aracı çalıştırın. Bunu cihazdaki bir terminalden çalıştırıyorsanız (SSH oturumundan değil) --headless işaretini kaldırın:

    google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
    

Temel hazırlık işleminin bir parçası olarak yetkilendirmeyi entegre etmeye hazır olduğunuzda mekanizmasına ilişkin bilgi edinmek için Google API'lerine Erişmek için OAuth 2.0'ı Kullanma OAuth erişim jetonlarının nasıl alınacağını, sürdürüleceğini ve kullanılacağını anlamak için cihazındaki Asistan API'si ile iletişim kurun.

Bu kılavuzlar üzerinde çalışırken aşağıdakilerden yararlanın:

Gizlilik ve güvenlikle ilgili en iyi uygulamalara göz atın bölümünü ziyaret edin.

gRPC bağlantınızın kimliğini OAuth jetonlarıyla doğrulama

Son olarak, jeton temelli jetonların nasıl kullanılacağını" okuyarak Google ile kimlik doğrulama Assistant API'ye olan gRPC bağlantısının kimliğini doğrulama.

Cihazınızı kaydettirin

Cihaz modelini ve örneğinizi manuel olarak kaydedin veya kayıt aracı (kullanılabilir) Python'da kullanılabilir).

Asistan'la temel bir konuşma iletişim kutusu uygulama

  1. İki yönlü akış gRPC istemcisi uygulama öğrenin.
  2. Kullanıcının yeni bir isteği tetiklemesini bekleyin (ör. bir GPIO kesmesi bekleyin) ) sağlar.
  3. AssistRequest gönderin config alanı ayarlanmış bir iletiyi görürsünüz (AssistConfig bölümüne bakın). config alanında şunların bulunduğundan emin olun:

    • Etiketin nasıl işleneceğini belirten audio_in_config alanı Sonraki isteklerde sağlanacak audio_in verileri (bkz. AudioInConfig).
    • Etiket için istenen biçimi belirten audio_out_config alanı hangi sunucu audio_out iletileri döndürdüğünde kullanacağına işaret etmez (bkz. AudioOutConfig).
    • Tanımlayan device_config alanı cihazını Asistan'a kaydettirebilir (bkz. DeviceConfig).
    • language_code değerini içeren dialog_state_in alanı istekle ilişkilidir (bkz. DialogStateIn).
  4. Kaydı başlat.

  5. Birden fazla giden AssistRequest gönder audio_in alanında sözlü sorgudan ses verilerini içeren mesajlar.

  6. Gelen AssistResponse iletileri işleyin mesaj.

  7. Görüşme meta verilerini AssistResponse'ten ayıkla mesajını alırsınız. Örneğin, dialog_state_out uygulamasından conversation_state alın. ve volume_percentage (bkz. DialogStateOut).

  8. AssistResponse alırken kaydı durdur event_type ile / END_OF_UTTERANCE.

  9. Asistan yanıtının sesini audio_out kaynağından gelen ses verilerini çalma girin.

  10. Daha önce çıkardığınız conversation_state öğesini alıp kopyalayın DialogStateIn AssistConfig içindeki mesaj, önümüzdeki AssistRequest için.

Böylece, Google'dan ilk taleplerinizi göndermeye hazır olmalısınız. Cihazınız üzerinden Asistan.

Cihaz İşlemleri ile görüşme iletişim kutusunu genişletin

Benzersiz donanımı tetiklemek için yukarıdaki temel görüşme iletişim kutusunu genişletin özellikleri:

  1. Gelen AssistResponse içinde device_action alanını çıkarın (bkz. DeviceAction).
  2. device_request_json alanının JSON yükünü ayrıştırın. Daha fazla bilgi için Cihaz Özellikleri sayfası desteklenen özelliklerin listesidir. Her özellik şeması sayfasında örnek bir EXECUTE gösterilir API komut dosyasında döndürülen cihaz komutları ve parametreleriyle JSON yükü.

Kullanıcı isteğinin transkriptini al

Cihaza bağlı bir ekran varsa şunları yapmak için kullanmak isteyebilirsiniz: kullanıcı isteğini gösterir. Bu transkripti elde etmek için speech_results alanını ayrıştırın AssistResponse mesaj. Konuşma tanıma işlemi tamamlandığında bu liste bir öğe içerir 1,0 olarak ayarlanmış bir stability ile.

Asistan'ın yanıtının metnini ve/veya görselini oluşturun

Cihaza bağlı bir ekran varsa şunları yapmak için kullanmak isteyebilirsiniz: Asistan'ın, kullanıcının isteğine verdiği düz metin yanıtını gösterir. Bu metnin bulunduğu yer DialogStateOut.supplemental_display_text girin.

Asistan, belirli sorgularda HTML5 üzerinden görsel yanıtları destekler ( Mountain View'da hava durumu mu? veya Saat kaç?). Bunu etkinleştirmek için, AssistConfig içindeki screen_out_config alanı. ScreenOutConfig mesajın, PLAYING olarak ayarlanması gereken screen_mode alanı var.

AssistResponse mesajlarda screen_out alanı ayarlanır. HTML5 verilerini (varsa) data alanına giriş yapın.

Metin girişi aracılığıyla sorgu gönderme

Cihaza bağlı bir metin arayüzünüz (örneğin, klavye) varsa config alanına text_query alanını ayarlayın (bkz. AssistConfig). audio_in_config alanını ayarlamayın.

Sorun giderme

Sorun giderme bölümünü inceleyin. sayfasını ziyaret edin.