Watson IBM Speech to Text c# api

Watson IBM Speech to Text c# api

我使用以下示例从音频中识别文本 https://gist.github.com/nfriedly/0240e862901474a9447a600e5795d500 但我还需要时间码,我在第 40 行添加了 "timestamps" : true,并删除了 "interim_results": true,因为我只需要最终结果。但是它坏了,在 {"state":"listening" } 消息之后需要一些时间并引发这样的异常
"Text" received message is invalid after the call Websocket.Closeasync. Websockets.In cases closeasync, so you should only use those when you do not expect to receive other data from the remote endpoint. Use"Websockets.CloseOutputAsync" to preserve the possibility of obtaining additional data, but to close the outgoing channel.

如果我设置 "continuous" : false,它只执行第一次语音迭代(暂停前几个第一个单词),然后重复 {"state":"listening" } 并冻结。

您能帮我吗,如何更新该示例以返回时间码?


continuous: false 的意思是"只转录到第一次暂停" - 所以它不是"冻结",它只是在你告诉它时停止。

服务然后发送最终结果,然后是第二个 {"state":"listening"} 消息,表明它已完成发送结果。示例代码在此之后关闭了连接,但听起来您在关闭连接后仍在尝试发送音频。

我不确定,但我认为 timestampsinterim_results 可能会在您设置 continuous: false 后按照您想要的方式工作。

不过,如果您只需要最终结果,那么 HTTP 接口可能更有意义。它比 WebSockets 简单得多。

最后,正如我在电子邮件中提到的,官方的 IBM Watson .net SDK 目前在开发分支中支持 Speech to Text,并且应该很快将其包含在一个版本中。