这是可能的沃森 - 团结-SDK扬声器/用户进行区分,因为它似乎能够返回指出哪些话是由扬声器多的人交流发言数组,但我无法弄清楚如何执行它,特别是在我发送不同的话语(由不同的人使用)助理服务相应地得到回应的情况。
该代码段用于解析助理json
输出/响应以及OnRecognize
和OnRecognizeSpeaker
和SpeechRecognitionResult
和SpeakerLabelsResult
是有的,但我怎么当的话语是公认其意图提取沃森从服务器返回呢?
无论OnRecognize
和OnRecognizeSpeaker
都在Active
属性只能使用一次,所以它们都调用,但只有OnRecognize
没有语音到文本(副本)和OnRecognizeSpeaker
是从来没有发射...
public bool Active
{
get
{
return _service.IsListening;
}
set
{
if (value && !_service.IsListening)
{
_service.RecognizeModel = (string.IsNullOrEmpty(_recognizeModel) ? "en-US_BroadbandModel" : _recognizeModel);
_service.DetectSilence = true;
_service.EnableWordConfidence = true;
_service.EnableTimestamps = true;
_service.SilenceThreshold = 0.01f;
_service.MaxAlternatives = 0;
_service.EnableInterimResults = true;
_service.OnError = OnError;
_service.InactivityTimeout = -1;
_service.ProfanityFilter = false;
_service.SmartFormatting = true;
_service.SpeakerLabels = false;
_service.WordAlternativesThreshold = null;
_service.StartListening(OnRecognize, OnRecognizeSpeaker);
}
else if (!value && _service.IsListening)
{
_service.StopListening();
}
}
}
通常,助手(即它的结果)的输出是类似如下:
Response: {"intents":[{"intent":"General_Greetings","confidence":0.9962662220001222}],"entities":[],"input":{"text":"hello eva"},"output":{"generic":[{"response_type":"text","text":"Hey!"}],"text":["Hey!"],"nodes_visited":["node_1_1545671354384"],"log_messages":[]},"context":{"conversation_id":"f922f2f0-0c71-4188-9331-09975f82255a","system":{"initialized":true,"dialog_stack":[{"dialog_node":"root"}],"dialog_turn_counter":1,"dialog_request_counter":1,"_node_output_map":{"node_1_1545671354384":{"0":[0,0,1]}},"branch_exited":true,"branch_exited_reason":"completed"}}}
我已成立了intents
和entities
,由助理服务返回这个名单,但我不知道如何得到它还要考虑我的实体或如何得到当STT识别不同的扬声器也作出相应的反应。
我希望得到一些帮助,特别是如何通过统一的脚本做到这一点。