0

我有这个代码:

 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 Speech 以便从音频文件中获取文本。

我在 Bot Framework 模拟器上对其进行了测试并且正在工作,但是当我尝试从网络聊天中上传文件时,它说无法发送我也收到此错误 - 将此消息发送到您的机器人时出错:HTTP 状态代码 GatewayTimeout

我想在 Skype 上部署这个机器人并上传音频文件或使用 microfon 并从中获取文本。

4

1 回答 1

0

似乎错误是因为我试图上传大于 15 秒的文件。我将相应的文件切成 10 秒的序列,现在我按预期工作。

- 我仍然不知道为什么机器人框架接受更大的文件,似乎在发送文件的中途停止,然后几秒钟后它从它停止的地方重新发送 -

于 2017-11-15T08:50:48.230 回答