Ich habe auch dieses Jahr an den Alexa Developer Skill Awards teilgenommen. Drei interne Freiwillige führen eine kurzfristig intensive Entwicklung durch, wie Hackason ("Industry Term Conversion") (https://www.amazon.co.jp/HANDS-LAB-INC-%E6%A5%AD%E7 % 95% 8C% E7% 94% A8% E8% AA% 9E% E5% A4% 89% E6% 8F% 9B / dp / B07WW4S8GL).
Personen Menschen Menschen Menschen Menschen Menschen Menschen Menschen > Zagin de Shisu: Sushi: <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
Gesamtfertigkeit @daisukeArk Morphologischer Analyseteil @ryosukeeeee APL part @ sr-mtmt
Ich habe mich für APL entschieden, weil dies eine Gelegenheit für technischen Nachholbedarf war. Als ich die Alexa-Fertigkeit zuvor erstellt habe, habe ich sie außerdem in Node.js (TypeScript) geschrieben. Dieses Mal habe ich beschlossen, es in Python zu schreiben.
Alexa und andere Sprachassistenten bekommen endlich Bildschirme Es ist jetzt möglich, auch visuelle Informationen bereitzustellen.
Alexa Presentation Language (APL) Visuelle Elemente wie Animationen, Grafiken, Bilder, Diashows und Videos Sie können verschiedene Effekte erzielen, indem Sie sie entsprechend dem Austausch von Fähigkeiten ändern.
Zum Beispiel wird die Fähigkeit von PIZZA SALVATORE CUOMO auf der Alexa-Veranstaltung ausgestellt. Sie können nur die Bedienung der Fertigkeit ausprobieren, ohne sie in der Testversion zu erwerben.
Übrigens habe ich für die Node.js-Version auf diese Serie verwiesen. https://qiita.com/Mount/items/72d9928ff2c0ae5de737
Die Verwendung des Bildschirms der Skill Development Console und die Geschichte von JSON sind für Python identisch, daher werde ich darauf verzichten.
#Starten Sie das Anforderungshandle
def handle(self, handler_input):
# type: (HandlerInput) -> Response
session_attr = AttributesManager.session_attributes
logger.info(session_attr)
speak_output = "Herzlich willkommen.\n Wandeln Sie Ihre Worte in die von Branchenleuten um.\n Bitte fragen Sie wie "Was ist" Sushi in Ginza "?""
builder = (
handler_input.response_builder
.speak(speak_output)
.ask(speak_output)
)
#Fügen Sie dem Builder nur APL-Informationen für APL-kompatible Geräte hinzu
if(is_apl_supported(handler_input.request_envelope)):
builder.add_directive(
RenderDocumentDirective(
document=GetAplJsonDocument.get_apl_json("launch"),
datasources=GetAplJsonDatasources.get_apl_json("launch")
)
)
return builder.response
#Rufen Sie eine JSON-Datei mit APL-Informationen ab
class GetAplJsonBase(object):
_document_type = None
@classmethod
def get_apl_json(cls, intent_name):
#Beachten Sie, dass dies aus Sicht von Lambda ein absoluter Pfad ist, kein relativer Pfad vom Speicherort dieser Datei.
file_path_base = '/var/task/'
with open(file_path_base + cls._document_type + '/' + intent_name + '.json', 'r', encoding="utf-8") as f:
return json_load(f)
class GetAplJsonDocument(GetAplJsonBase):
_document_type = 'document'
class GetAplJsonDatasources(GetAplJsonBase):
_document_type = 'datasources'
def is_apl_supported(request):
apl_interface = request.context.system.device.supported_interfaces.alexa_presentation_apl
return apl_interface is not None
Es wurde darauf hingewiesen, dass es möglicherweise einfacher ist, den JSON von APL-Informationen zu verwenden, wenn er durch js anstelle einer Textdatei definiert wird. Ich habe verschiedene Dinge ausprobiert und das Format wurde nicht festgelegt, also habe ich dieses Mal JSON aus einer Textdatei gelesen und übergeben.
Klicken Sie hier als Referenz beim Definieren mit js
function createDatasource(attributes) {
return {
"riddleGameData": {
"properties": {
"currentQuestionSsml": "<speak>"
+ attributes.currentRiddle.question
+ "<speak>",
"currentLevel": attributes.currentLevel,
"currentQuestionNumber": (attributes.currentIndex + 1),
"numCorrect": attributes.correctCount,
"currentHint": attributes.currentRiddle.hints[attributes.currentHintIndex]
},
"transformers": [
{
"inputPath": "currentQuestionSsml",
"outputName": "currentQuestionSpeech",
"transformer": "ssmlToSpeech"
},
{
"inputPath": "currentQuestionSsml",
"outputName": "currentQuestionText",
"transformer": "ssmlToText"
}
]
}
};
}
Referenzquelle) https://github.com/alexa-labs/skill-sample-nodejs-level-up-riddles/blob/master/Step%203%20-%20Add%20APL/lambda/custom/index.js # L461-L487
Wenn Sie JSON entwickeln, sollten Sie in der Lage sein, verschiedene Dinge herauszubringen
Es fällt mir schwer, über die Unterstützung visueller Informationen und Touchpanels nachzudenken und gleichzeitig die Individualität von VUI zu nutzen. Ich wollte nicht nur mit Ingenieuren, sondern auch mit verschiedenen Menschen zusammenarbeiten, um herauszufinden, wie man sie mit Smartphones richtig einsetzt.
Smart Speaker Adventskalender 2019 Es gibt einen freien Speicherplatz. Bitte posten Sie, wenn Sie interessiert sind: sonnig: