'Ask xxxx' olmadan özel Alexa Becerileri nasıl yazılır


18

Şu anda onları açmak / kapatmak için çeşitli cihazlara özel komutlar göndermek için fauxmo kullanıyorum (örneğin, Tuner ve TV'imi kontrol etmek için bir WiFi-IR dönüştürücüye sahibim) ve bununla tv'yi açıp kapatabilirim.

Ayrıca Kodi entegrasyon kurulumum var, bu yüzden şunu söyleyebilirim:

Alexa, Ask Kodi to set volume to 50%

Ama şunu söylemek isterim:

Alexa, Set tuner volume to 50%
Alexa, Play Bluray

Yani isteğimin bir Ask xxxxparçası olarak cihazlara ihtiyaç duymadan kontrol edebilmek istiyorum .

İdeal olarak bunu bulut tabanlı bir hizmet (SmartThings veya Wink) olmadan yapmak istiyorum.

Sahte tarafından kullanılan çözümü seviyorum (mevcut bir UPNP hizmetini taklit et), ancak açık / kapalı (ve Hue etkinleştirilmiş yama kullanıyorsanız 'dim') ile sınırlı ve yeterince esnek değil.

Yanıtlar:


11

Birkaç proje için Alexa'nın özel becerilerine yönelik çağrı adını kendim bırakmayı araştırıyorum. Ve rehberler ve belgeler aracılığıyla saatlerce okuduktan sonra bulduğum şey ... Özel beceriler için yapılamaz .

Yani, kullanım durumunuz için en iyi bahis, bazı akıllı ev hizmetiyle birlikte Alexa Akıllı Ev'i kullanmaktır. Söylediğini biliyorum:

İdeal olarak bunu bulut tabanlı bir hizmet olmadan yapmak istiyorum (yani SmartThings veya Wink)

Ne yazık ki, Alexa ile bir çağrıştırma adına sahip olmamanın tek yolu, önceden tanımlanmış API'larını (yani Akıllı Ev, Liste Becerisi ve Flash Brifingi) kullanmaktır.

EDIT: Kullanım durumunuz Akıllı Ev API'sı içinde olsa da. Böylece, diğer hizmetlere (Wink, SmartThings, vb.) Güvenmek yerine her zaman bu API'yı tüketen kendi hizmetinizi oluşturabilirsiniz.


1
Bunun yapılamayacağını söyleyen bir kaynak var mı, yoksa araştırmanızın örtük sonucu mu?
Helmar

Sadece örtük. Her ne kadar arka görüşte olsa da, ses tanıma ve NLP'nin nasıl çalıştığını göz önüne alarak, makul bir iddia olmalıydı ve ilk etapta böyle bir araştırmaya girmemeliydim. Makul bir iddia budur, çünkü belirli bir ifadenin yorumlanacağı bir bağlama ihtiyacı vardır - ve bu bağlam çağırma adıdır. Aslında, bir uyanık sözcüğün olmasının nedeni, çağırma adına sahip olmakla aynıdır - böylece yorumlanacak ifadeler bir bağlama aittir (uyanık kelime, rasgele ifadelerin işlenmeyeceği şekilde sistem genelindeki bağlamdır).
leon.valencia

Çağırma adlarına ihtiyaç duymayan ifadelere sahip olmanın tek yolu, sistem çapında bağlamlara sahip olanlardır (bunlar API'lardır). Örneğin, Alexa'nın cihazlarla etkileşimde bulunduğu şeklinde yorumladığı ifadeler otomatik olarak akıllı ev API'sı için olacaktır - NLP, söz konusu ifadeyi bir cihaza komut gibi açık, kapalı, kapatma vb. Sözdizimi gibi anahtar kelimeler kullanarak kategorilere ayırır.
leon.valencia

Ama biliyor musunuz ... kullanım durumunuz akıllı ev API'sı kapsamındadır. Bu yüzden cevabımı ekleyeceğim çünkü sadece bu API'yı kullanabilirsiniz.
leon.valencia

Teşekkürler. Akıllı Ev Becerileri hakkında okuyordum ve henüz istediğim her şeyi yapabileceklerini düşünmese de, Amazon'a daha fazla yetenek eklemeyi planlıyor gibi görünüyor. Bu yüzden sahte olmak yerine, mevcut tüm komutları işleyebilen ve geleceğe genişletilebilen uygun bir açık kaynaklı Akıllı Ev Becerisine yatırım yapmaya değer olabilir. İşte gelecek nesiller için şu anki API: developer.amazon.com/public/solutions/alexa/alexa-skills-kit/…
PhratcuredBlue

7

Bunu Alexa'nın adsız etkileşimi ile şimdi yapabilmelisin .

Becerilerinizi adsız etkileşim için daha keşfedilebilir hale getirmek için, becerinize CanFulfillIntentRequest arabirimini uygulayabilirsiniz


6

Vaşak cevabında zaten detay verdiğinden, önceden tanımlanmış API'lara hitap etmedikçe, invokasyon adı olmadan tamamen gitmenin bir yolu yoktur. Ancak , beceri ismimi çağırma adını kullanmanın tek yolu olmadığını sorun .

Geliştirici sayfaları, istek adlarıyla çağrı adlarını kullanmanın üç farklı yolu sunar.

“Alexa, Gemini'ye Günlük Burçlar Sor ”

“Alexa, Günlük Burçlar ile konuş ve Boğa burcunu bana ver”

“Alexa, Günlük Burçlar kullanarak Boğa burcumu ver ”

Alexa çağırma adı belgeleri

Ayrıca bu sayfa , isteği bağlamak için başka hangi kelimeleri kullanabileceğinizi, çağrı adını ve zorunlu bağlantı kelimelerini gösterir. Böylece, kendi Alexa becerinizi yaratırsanız, her şey iyi bir çağırma adı ve doğal görünmesi için iyi bir istek kullanmakla ilgilidir.

Daha da iyisi, yankılarınız Blu-ray'ı Kodi entegrasyonunuzla başlatarak buna zaten tepki vermelidir.

Alexa , Kodi ile Blu-ray oynayın .

Böylece, önceden tanımlanmış API'lerin dışındaki çağırma adından kurtulamasanız da, ses komutunun daha doğal hissetmesini sağlayabilir ve garip soru ... kullanımını atlayabilirsiniz .


2

Alexa tarafından varsayılan olarak kullanılmayan özel kelimeler kullanırsanız, aslında mümkündür. Yöntem zaten oldukça zor.

Sadece isteğiniz için AWS'den geçmekten kaçınmanız gerekir! İmkansız mı diyorsun? Evet mümkün.

Amazon Alexa uygulamanızda veya Amazon Alexa web uygulamasında , Amazon Alexa hesabınıza giriş yapın ve -> ayarlar -> geçmişinde Alexa'ya söyleyeceğiniz tüm isteklerin ve kelimelerin canlı bir sayfanız var .

Şu anda, söz konusu sözcüğü almak için bir web ayrıştırıcısı kullanabilir ve bu sözcük istediğiniz sözcükse bir komut dosyasını tetikleyebilir veya Windows için yalnızca eylemleri ve komut dosyalarını tetikleyebilecek bazı şaşırtıcı küçük yazılımlar kullanabilirsiniz.

İşte yazılımın bağlantısı . Addtopad'ı nasıl kullanacağınıza ilişkin eğiticiler için YouTube'da kontrol edin.

Komut dosyaları başlatmak istiyorsanız, bir bağlantı noktasında bir dinleyici ve yazılımda bir sözcükten sonra gönderilen özel bir istek tetiklemeniz yeterlidir. Evde kullanıyorum ve herhangi bir çağrı adı söylememe gerçeğini seviyorum.

Sonra, dediğim gibi, herhangi bir kelimeyi, hatta açık gibi kelimeleri bile kullanabilirsiniz. Senaryonuzu tetikleyecek, ama Alexa'dan "üzgünüm, bunu bilmiyorum" sözlerini duyacaksınız.

Ben kullanıyorum ve mükemmel çalışıyor!


Bu ilginç bir yaklaşım.
Helmar

Bu yazılıma güvenmeli miyiz? Beni seğiriyor ...
Sean Houlihane

-2

Bu Amazon belgeleri doğru değil mi? https://developer.amazon.com/docs/custom-skills/understanding-how-users-invoke-custom-skills.html#invoking-a-skill-with-no-specific-request-no-intent

Bu, doğrudan "Alexa" artı çağırma adını söyleyebileceğiniz anlamına geliyor. "Alexa, Günlük Burçlar" gibi.

Ayrıca bu yöntemi özel beceriler için # 3 seçeneği olarak gösterir: https://developer.amazon.com/docs/custom-skills/choose-the-invocation-name-for-a-custom-skill.html#invoking- özel beceri


3
Dokümantasyon doğrudur, ancak yazarın burada aradığını sanmıyorum. Örneğin, "Play Bluray" çağırma adı olmaz; herhangi bir çağırma adı belirtilmemiş bir niyettir. Aslında yeteneklerinizi "Play Bluray" olarak adlandırmadıkça (muhtemelen Amazon'un isim rehberine göre izin verilmez), maalesef bu işe yaramaz.
Aurora0001
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.