首页 > 解决方案 > 有没有办法识别天气输入到 Bot 是来自麦克风还是文本输入?

问题描述

在我的 BOT 中,我想记录向 BOT 提供语音输入的时间。有没有办法在我的 BOT 框架解决方案中识别它。

标签: web-chat

解决方案


当用户在网络聊天中与机器人交谈时,发送给机器人的生成活动将包含一个channelData.speech属性。您可以将其用作标记,用于在机器人中确定活动是来自语音输入还是文本输入。speech从文本输入生成活动时,不会附加该属性。这适用于认知服务语音 (channelId: 'directline') 和 Direct Line Speech (channelId: 'directlinespeech')。

示例活动

  {
    type: 'message',
    id: '26WpGqt6CCz7M8uRN0ugo9-o|0000002',
    timestamp: 2021-01-28T23:12:10.281Z,
    serviceUrl: 'https://directline.botframework.com/',
    channelId: 'directline',
    from: { id: '<<REDACTED>>', name: '', role: 'user' },
    conversation: { id: '26WpGqt6CCz7M8uRN0ugo9-o' },
    recipient: { id: '<<REDACTED>>', name: '<<REDACTED>>' },    
    textFormat: 'plain',
    locale: 'en-US',
    text: 'Hello.',
    entities: [ [Object] ],
    channelData: {
      speech: {
        alternatives: [
          {
            confidence: 0.51567326,
            transcript: 'Hello.'
          }
        ]
      },
      clientActivityID: '1611875530186v9cv78togd',
      clientTimestamp: '2021-01-28T23:12:10.186Z'
    },
    rawTimestamp: '2021-01-28T23:12:10.2819155Z',
    callerId: 'urn:botframework:azure'
  }

希望有帮助!


推荐阅读