J'ai également participé aux Alexa Developer Skill Awards cette année. Trois volontaires en interne effectuent un développement intensif à court terme comme un hackathon, ["Conversion de termes industriels"](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).
Les gens les gens les gens les gens les gens les gens les gens > Zagin de Shisu: sushi: <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
Compétence globale @daisukeArk Partie analyse morphologique @ryosukeeeee Pièce APL @ sr-mtmt
J'ai décidé de toucher APL car c'était une opportunité de rattrapage technique. De plus, lorsque j'ai créé la compétence Alexa auparavant, je l'ai écrite dans Node.js (TypeScript), Cette fois, j'ai décidé de l'écrire en Python.
Alexa et d'autres assistants vocaux commencent enfin à avoir des écrans Il est désormais possible de fournir également des informations visuelles.
Langue de présentation Alexa (APL) Éléments visuels comprenant des animations, des graphiques, des images, des diaporamas et des vidéos Vous pouvez créer divers effets en le modifiant en fonction de l'échange de compétences.
Par exemple, la compétence de PIZZA SALVATORE CUOMO est exposée lors de l'événement Alexa. Vous ne pouvez essayer que le fonctionnement de la compétence sans l'acheter dans la version d'essai.
Au fait, pour la version Node.js, j'ai fait référence à cette série. https://qiita.com/Mount/items/72d9928ff2c0ae5de737
Comment utiliser l'écran de la console de développement de compétences et l'histoire de JSON sont les mêmes pour Python, je vais donc l'omettre.
#Poignée de demande de lancement
def handle(self, handler_input):
# type: (HandlerInput) -> Response
session_attr = AttributesManager.session_attributes
logger.info(session_attr)
speak_output = "Bienvenue.\n Convertissez vos paroles en celles des gens de l'industrie.\n Veuillez demander "Qu'est-ce que" Sushi à Ginza "?""
builder = (
handler_input.response_builder
.speak(speak_output)
.ask(speak_output)
)
#Ajouter des informations APL au générateur uniquement pour les appareils compatibles APL
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
#Récupérer un fichier JSON contenant des informations APL
class GetAplJsonBase(object):
_document_type = None
@classmethod
def get_apl_json(cls, intent_name):
#Notez qu'il s'agit d'un chemin absolu vu de Lambda, et non d'un chemin relatif depuis l'emplacement de ce fichier.
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
Il a été souligné qu'il peut être plus facile d'utiliser le JSON des informations APL s'il est défini dans js au lieu d'un fichier texte. J'ai essayé diverses choses et le format n'a pas été décidé, donc cette fois j'ai lu JSON à partir d'un fichier texte et je le transmets.
Cliquez ici pour référence lors de la définition avec 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"
}
]
}
};
}
Source de référence) https://github.com/alexa-labs/skill-sample-nodejs-level-up-riddles/blob/master/Step%203%20-%20Add%20APL/lambda/custom/index.js # L461-L487
Avec cela, si vous concevez JSON, vous devriez être en mesure de sortir diverses choses
J'ai du mal à penser à la prise en charge des informations visuelles et des panneaux tactiles tout en profitant de l'individualité de VUI. Je voulais collaborer non seulement avec des ingénieurs mais aussi avec diverses personnes pour savoir comment les utiliser correctement avec les smartphones.
Calendrier de l'Avent Smart Speaker 2019 Il y a un espace libre, alors s'il vous plaît postez si vous êtes intéressé: ensoleillé:
Recommended Posts