有没有办法找出亚马逊Lex听到的内容?

时间:2017-12-08 16:00:13

标签: amazon-web-services amazon-lex

我一直在对亚马逊Lex进行一些实验,但我根本无法让声音在控制台中工作。

我正在使用Flower bot演示,其中连接了相关的Python Lambda函数,并在Mac上运行的Chrome浏览器上使用文本(10.13.1)。

我能够从Lambda函数记录在控制台上输入测试机器人的任何文本以及事件的其余部分。

通过进入控制台中机器人的监控选项卡,我可以看到前几天的话语(似乎有一天延迟出现错过或检测到的话语,不知道为什么......)。

我昨天尝试使用语音作为单个空白条目出现在话语表中,计数为13,现在是第二天。我不确定这是否意味着音频没有送到Lex或者Lex无法理解我。

我是英语母语人士,具有通用的美国口音(很少有人可以识别出比美国更具体的地方),Siri对我的理解并不困难。

我怀疑是某些东西要么是在阻止音频之前阻塞或晃动音频,但我不知道如何找到Lex听到的音频来检查音频。

是否有我尚未找到的故障排除工具?有没有办法获得正在测试的机器人的实时饲料? (我在测试机器人中看到的只是检查响应部分,没有用于检查请求。)

3 个答案:

答案 0 :(得分:1)

关于话语出现延迟一天,根据AWS documentation

  

话语统计每天生成一次,通常在   晚间。你可以看到未被识别的话语,有多少   听到的时间,以及话语的最后日期和时间   听到。错过的话语可能需要长达24小时才会出现   控制台。

答案 1 :(得分:0)

除了@ sid8491的答案之外,您还可以在其返回的响应中收到Lex从您的演讲中解析的消息。使用Node SDK时,这位于data.inputTranscript字段中。

CoffeeScript示例:

AWS = require 'aws-sdk'

lexruntime = new AWS.LexRuntime 
        accessKeyId: awsLexAccessKey
        secretAccessKey: awsLexSecretAccessKey
        region: awsLexRegion
        endpoint: "https://runtime.lex.us-east-1.amazonaws.com"

params =
    botAlias: awsLexAlias
    botName: awsLexBot
    contentType: 'audio/x-l16; sample-rate=16000; channels=1'
    inputStream: speechData
    accept: 'audio/mpeg'

lexruntime.postContent params, (err, data) ->
    if err?
        log.error err
    else
        log.debug "Lex heard: #{data.inputTranscript}"

答案 2 :(得分:0)

在Amazon Lex控制台中转到Bot的Monitoring选项卡,单击“Utterances”,在那里您可以找到“Missed”和“Detected”话语的列表。从错过的话语表中,您可以将它们添加到任何意图中。