我有这段代码:
if (activity.Type == ActivityTypes.Message)
{
var audioAttachment = activity.Attachments?.FirstOrDefault(a => a.ContentType.Equals("audio/wav") || a.ContentType.Equals("application/octet-stream"));
if (audioAttachment != null)
{
var connector = new ConnectorClient(new Uri(activity.ServiceUrl));
var stream = await GetAudioStream(connector, audioAttachment);
var text = await this.speechService.GetTextFromAudioAsync(stream);
Activity reply = activity.CreateReply(text);
await connector.Conversations.ReplyToActivityAsync(reply);
}
else
{
await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());
}
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
当我输入内容时,它会检查是音频文件还是文本,如果是音频,它会发送到Bing语音,以便从音频文件中获取文本。
我在 Bot Framework 模拟器上测试了它并且正在工作,但是当我尝试从网络聊天上传文件时,它说无法发送,我也收到了此错误-- 向机器人发送此消息时出错:HTTP 状态代码网关超时
我想在 skype 上部署这个机器人并上传音频文件或使用 microfon 并从中获取文本。
似乎错误是因为我尝试上传大于 15 秒的文件。我将相应的文件剪切成 10 秒的序列,现在我按预期工作。
-- 我仍然不知道为什么机器人框架接受更大的文件,似乎在发送文件的中途停止,然后在几秒钟后它从停止的地方重新发送 -