2016-11-14 20 views
7

मैं एलेक्सा के लिए एक सरल, कस्टम कौशल विकसित कर रहा हूं। मेरे पास यह है और चल रहा है, और एडब्ल्यूएस लैम्ब्डा पर हैंडलर की मेजबानी कर रहा है। यह ठीक काम कर रहा है ...एलेक्सा कौशल किट (एएसके) और उत्थान

परीक्षण यूआई में, यदि मैं एक मान्य उच्चारण दर्ज करता हूं, उदाहरण के लिए, मदद, रद्द, तैरना, चलाएं (दो कस्टम उच्चारण), सबकुछ अच्छी तरह से काम करता है; हालांकि, अगर मैं बकवास उच्चारण दर्ज करता हूं, उदाहरण के लिए, dsfhfdsjhf, एलेक्सा सेवा हमेशा इरादे स्कीमा में पहले मान्य इरादे पर बकवास को मानचित्र करती है।

मेरे लैम्ब्डा कोड में, मेरे पास अज्ञात इरादों को संभालने के लिए एक हैंडलर है; हालांकि, इरादा कभी अज्ञात नहीं है। क्या यह परीक्षण इंटरफेस का एक आर्टिफैक्ट है? कुछ और हो रहा है?

धन्यवाद, जॉन

+2

मैं सवाल का जवाब नहीं दे सकता, लेकिन परीक्षण UI बनाम वास्तविक डिवाइस का उपयोग करते समय मुझे समान विसंगतियों का अनुभव हुआ है। प्रश्न पूछने के लिए +1। मैं आपको एलेक्सा स्किल्स किट देव फोरम की तरफ जाने के लिए जा रहा था, लेकिन ऐसा लगता है कि आप पहले से ही प्रश्न भी पोस्ट कर चुके हैं। :-) – TimHayes

+0

मुझे लगता है कि यह परीक्षण इंटरफेस का एक आर्टिफैक्ट है। क्या आपने इसे अपने डिवाइस पर परीक्षण करने का प्रयास किया है? –

+0

@ जॉन क्या आपको इसके लिए समाधान मिला है? – Dhawal

उत्तर

0
इसके बजाय dsfhfdsjhf (जो किसी भी भाषा एलेक्सा जानता में उच्चरण नहीं है) लिखने की

, क्या होता है यदि आपके कथन बूगी या हिला है?

वास्तविक दुनिया परिदृश्य में, मुझे नहीं लगता कि एलेक्सा कभी भी dsfhfdsjhf पास करेगा, इसलिए यह व्यवहार करना मुश्किल हो सकता है कि व्यवहार क्या होगा।

+0

यह कैसे उपयोगी नहीं है? – AppleBaggins

2

आपके दृष्टिकोण में एक अनचाहे इरादे को शामिल करने के आधार पर, ऐसा लगता है कि आप Alexa Skills Kit SDK for Node.js का उपयोग कर रहे हैं। आपकी समस्या परीक्षण इंटरफ़ेस का आर्टिफैक्ट नहीं है। हाँ, कुछ और हो रहा है।

हालांकि अभी तक अमेज़ॅन द्वारा स्वीकार नहीं किया गया है, यह कई लोगों द्वारा एसडीके में एक मान्यता प्राप्त मुद्दा है। this open issue देखें। व्यक्तिगत अनुभव से उपर्युक्त सुझावों से बात करते हुए, इससे कोई फर्क नहीं पड़ता कि आप असली शब्द या अस्पष्टता का उपयोग करते हैं, अनचाहे इरादा कभी नहीं कहा जाता है। जब तक यह तय नहीं किया जाता है, मेरा सुझाव एक हैंडलर बनाना होगा जो आपके कौशल के लिए एक उच्च स्तरीय संकेत है, और उपयोगकर्ता के पास उनके वैध विकल्पों को दोहराता है। इसे पकड़ने के लिए स्थिति रखें। उम्मीद है कि हम इस एसडीके के आगे बढ़ने के बेहतर रखरखाव देखेंगे।

0

तो आप सभी कचरे के इनपुट को एक ही इरादे में पाइप करना चाहते हैं। तुम्हारी किस्मत अच्छी है। आगे बढ़ने से पहले आपको कुछ चीजें जाननी चाहिए।

नोड.जेएस में अनचाहे हैंडलर MODE के भीतर निकाल दिया गया है यदि एलेक्सा आवाज सेवा द्वारा दिए गए इरादे दिए गए MODE के भीतर उपलब्ध नहीं है।
एक उदाहरण MODE पुष्टिकरण मोड होगा। हां और नहीं उपलब्ध कई इरादों में से एकमात्र इरादे स्वीकार किए जाते हैं।

var ConfirmationHandlers = Alexa.CreateStateHandler(states.CONFIRMATIONMODE, { 
    'YesIntent': function() { 
     this.handler.state = states.CLOSINGCOSTSMODE; 
     message = ` So you will be buying this house. Great! `; 
     reprompt = `Please carry on with the other intents found in the house buyer skill. `; 
     this.emit(':ask', message, reprompt); 
    }, 
    'NoIntent': function() { 
     this.handler.state = states.GENERALSEARCHMODE; 
     message = ` So you won't be buying this house. That's Ok, Continue searching for your dream house in the House buyer skill. !`; 
     reprompt = `Continue searching for your dream house in the House buyer skill.`; 
     this.emit(':ask', message, reprompt); 
    }, 
    'Unhandled': function() { 
     console.log("UNHANDLED"); 
     var reprompt = ` All other intents are disabled at this moment. Would you like to buy this house Yes or No? `; 
     this.emit(':ask', reprompt, reprompt); 
    } 
}); 

हालांकि, लैम्ब्डा समारोह तक पहुँचने से पहले एलेक्सा वॉयस सेवा अपने कथन की व्याख्या और उपलब्ध उद्देश्यों में से एक से मैप करना होगा। यदि आपका उच्चारण कचरा है और किसी विशेष उद्देश्य के लिए मानचित्र नहीं है, तो वर्तमान में इसे पहले इरादे में मैप किया जा रहा है।

समाधान: यदि आप एक कचरा इरादा जोड़ना चाहते हैं तो यह कुछ ऐसा है जिसे इरादा स्कीमा द्वारा अनचाहे इरादे से नहीं किया जाना चाहिए। एक कचरा इरादा जोड़ने के लिए आप इस अमेज़ॅन आलेख में निर्देशों का पालन कर सकते हैं।

https://developer.amazon.com/blogs/post/Tx3IHSFQSUF3RQP/Why-a-Custom-Slot-is-the-Literal-Solution

परिदृश्य 3: मैं बस सब कुछ करना चाहते हैं। ऊपर वर्णित अनुसार व्याकरण के लिए कस्टम स्लॉट प्रकारों का उपयोग करना आम तौर पर इस इच्छा को पूरा करता है और आपको एनएलपी प्रशिक्षण के माध्यम से सटीकता में सुधार करने में सक्षम बनाता है।यदि आप अभी भी सब कुछ चाहते हैं, तो आप "कैचअल" और इसी तरह के इरादे और उच्चारण जैसे कुछ कस्टम स्लॉट बना सकते हैं: कैचअलेंटेंट {CatchAll}। यदि आप उसी प्रशिक्षण डेटा का उपयोग करते हैं जिसका उपयोग आपने को लिटरल के लिए उपयोग किया होगा, तो आपको वही परिणाम मिलेंगे। आम तौर पर लोग पाते हैं कि थोड़ा और परिदृश्य विशिष्ट प्रशिक्षण डेटा जोड़ना सटीकता में सुधार करता है।

आप अभी भी परिणाम नहीं मिल रहे हैं, लगभग बीस 8 शब्द यादृच्छिक वाक्यांशों के लिए 2 के लिए सेटिंग catchall मूल्यों की कोशिश कर रहा है (एक यादृच्छिक शब्द जनरेटर से - वास्तव में यादृच्छिक होना)। जब उपयोगकर्ता कुछ कहता है कि आपके अन्य शब्दों से मेल खाता है, तो उन इरादों को अभी भी भेजा जाएगा। जब यह किसी भी से मेल नहीं खाता है, तो यह कैचएल स्लॉट पर आ जाएगा। यदि आप इस मार्ग पर जाते हैं, तो आप सटीकता खोने जा रहे हैं क्योंकि आप एलेक्सा के एनएलपी का पूर्ण लाभ नहीं ले रहे हैं, इसलिए आपको भारी परीक्षण करने की आवश्यकता होगी।

किसी भी इनपुट है कि आपके अधिक विशिष्ट उद्देश्यों में से एक, YES या NO तरह से मैप किया गया नहीं है, बहुत संभावना होगा इस CatchAll आशय के लिए नक्शे।

संबंधित मुद्दे