每20个左右的请求中,我不会得到完整的查询结果。我正在使用C#.NET建议的客户端库。
我得到:
{ \"recognitionResult\": { \"messageType\": \"TRANSCRIPT\", \"transcript\": \"yeah\" } }
{ \"recognitionResult\": { \"messageType\": \"TRANSCRIPT\", \"transcript\": \"yeah\" } }
{ \"recognitionResult\": { \"messageType\": \"END_OF_SINGLE_UTTERANCE\" } }
{ \"queryResult\": { \"languageCode\": \"en-AU\" } }
在Dialogflow历史记录选项卡中,它从不显示正在发出的请求。音频质量不佳时,似乎会出现此问题。在我的情况下,音频有时质量很差。发生这种情况时,不会引发gRPC错误。我假设这是语音转录的问题,因为没有recognitionResult
的{{1}}。最近的部分结果也是准确的。
什么可能导致这种行为?
我唯一的解决方法是仅使用文本和最近的部分结果重试请求吗?我的应用程序实时运行。在解决问题之前,我想尝试解决此问题。
答案 0 :(得分:0)
您可以看到收到了END_OF_SINGLE_UTTERANCE消息类型。这意味着语音已暂停/停止,或者至少看起来如此(由于音频质量差)。
我建议设置single_utterance flag to false,这可以帮助您获得更完整的成绩单。这是InputAudioConfig选项,以获取更多信息。