将语音识别结果与话语相关联的保证方式?
Guaranteed way to associate speech recognition result with an utterance?
我将 Microsoft 的 C# API 用于认知服务(牛津项目)Bing 语音识别服务。具体来说,我使用的是 Microsoft.ProjectOxford.SpeechRecognition-x64 版本 0.4.10.2.
我将音频发送到传递给 OnResponseReceived
处理程序的 DataRecognitionClient
using the SendAudio
and EndAudio
methods, and wait for the final set of recognition hypotheses via the OnResponseReceived
event. The issue I'm running into is that it's easily possible to have more than one oustanding recognition request, and the SpeechResponseEventArgs
对象不包含任何信息告诉我它是对哪个请求的响应。
这是我实际发生过很多次的例子:
- 某人说了些什么,称之为话语 A,我通过
SendAudio
发送,然后在他们说完后呼叫 EndAudio
。
- 在等待获取话语 A 的
OnResponseReceived
事件时,此人说了其他话,称之为话语 B。我再次通过 SendAudio
发送它,然后调用 EndAudio
当他们说完。我还没有收到 OnResponseReceived
活动。
- 我终于得到了我的第一个
OnResponseReceived
活动。
- 我收到第二个
OnResponseReceived
事件。
如何正确地将响应与话语关联起来?
是否有顺序保证,如果我发送话语 A,然后发送话语 B,我总是会先得到话语 A 的响应?我没有在文档中看到该保证。
由于所有请求都是异步请求,因此无法保证 A 总是在 B 之后。我推荐的最佳方法是创建一个识别客户端池,并为每个识别使用一个客户端并管理依赖关系,
我将 Microsoft 的 C# API 用于认知服务(牛津项目)Bing 语音识别服务。具体来说,我使用的是 Microsoft.ProjectOxford.SpeechRecognition-x64 版本 0.4.10.2.
我将音频发送到传递给 OnResponseReceived
处理程序的 DataRecognitionClient
using the SendAudio
and EndAudio
methods, and wait for the final set of recognition hypotheses via the OnResponseReceived
event. The issue I'm running into is that it's easily possible to have more than one oustanding recognition request, and the SpeechResponseEventArgs
对象不包含任何信息告诉我它是对哪个请求的响应。
这是我实际发生过很多次的例子:
- 某人说了些什么,称之为话语 A,我通过
SendAudio
发送,然后在他们说完后呼叫EndAudio
。 - 在等待获取话语 A 的
OnResponseReceived
事件时,此人说了其他话,称之为话语 B。我再次通过SendAudio
发送它,然后调用EndAudio
当他们说完。我还没有收到OnResponseReceived
活动。 - 我终于得到了我的第一个
OnResponseReceived
活动。 - 我收到第二个
OnResponseReceived
事件。
如何正确地将响应与话语关联起来?
是否有顺序保证,如果我发送话语 A,然后发送话语 B,我总是会先得到话语 A 的响应?我没有在文档中看到该保证。
由于所有请求都是异步请求,因此无法保证 A 总是在 B 之后。我推荐的最佳方法是创建一个识别客户端池,并为每个识别使用一个客户端并管理依赖关系,