web-chat - 有没有办法识别天气输入到 Bot 是来自麦克风还是文本输入?
问题描述
在我的 BOT 中,我想记录向 BOT 提供语音输入的时间。有没有办法在我的 BOT 框架解决方案中识别它。
解决方案
当用户在网络聊天中与机器人交谈时,发送给机器人的生成活动将包含一个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'
}
希望有帮助!