组合能力

组合能力 #

除单独调用单个能力外,中控还支持组合使用两种或三种能力。

ASR + NLP #

接收 PCM 音频,将 ASR 识别结果作为 NLP 的输入,返回 ASR 识别结果和 NLP 回复结果。

调用流程 #

sequenceDiagram
    participant Client
    participant CS as Control System
    Client-->>CS: Establish Connection
    activate CS
    Client->>CS: Request: Starter (ASR + NLP)
    loop
        Client->>CS: Request: ASR Data
        CS-->>Client: Response: ASR
        CS-->>Client: Response: NLP
    end
    Client-->>CS: Close Connection
    deactivate CS
 

ASR + TTS #

接收 PCM 音频,将 ASR 识别结果作为 TTS 的输入,返回 ASR 识别结果和 TTS 合成的音频。

调用流程 #

sequenceDiagram
    participant Client
    participant CS as Control System
    Client-->>CS: Establish Connection
    activate CS
    Client->>CS: Request: Starter (ASR + TTS)
    loop
        Client->>CS: Request: ASR Data
        CS-->>Client: Response: ASR
        CS-->>Client: Response: TTS
    end
    Client-->>CS: Close Connection
    deactivate CS
 

NLP + TTS #

接收 Query 文本包,将 NLP 回复结果作为 TTS 的输入,返回 NLP 回复结果和 TTS 合成的音频。

调用流程 #

sequenceDiagram
    participant Client
    participant CS as Control System
    Client-->>CS: Establish Connection
    activate CS
    Client->>CS: Request: Starter (NLP + TTS)
    loop
        Client->>CS: Request: NLP Query
        CS-->>Client: Response: NLP
        CS-->>Client: Response: TTS
    end
    Client-->>CS: Close Connection
    deactivate CS
 

ASR + NLP + TTS #

接收 PCM 音频,将 ASR 识别结果作为 NLP 的输入,对 NLP 回复结果进行 TTS 合成,返回 ASR 识别结果、 NLP 回复结果和 TTS 合成的音频。

调用流程 #

sequenceDiagram
    participant Client
    participant CS as Control System
    Client-->>CS: Establish Connection
    activate CS
    Client->>CS: Request: Starter (ASR + NLP + TTS)
    loop
        Client->>CS: Request: ASR Data
        CS-->>Client: Response: ASR
        CS-->>Client: Response: NLP
        CS-->>Client: Response: TTS
    end
    Client-->>CS: Close Connection
    deactivate CS
 

请求报文格式 #

Starter #

使用组合能力需要在 Starter 包的 Workflow Type 字段中指定使用的能力组合与服务引擎编号。格式为使用"+“拼接的服务引擎编号,例如"ASR5+NLP2”。

同时需要填写所使用能力对应的 ASR Config、NLP Config、TTS Config 字段。

Data #

Data 包格式不变,参考 ASR / NLP 文档。

返回报文格式 #

返回报文格式不变,中控会按顺序返回所有使用能力对应的返回报文。

实际流程样例解析 #

Case 1: ASR5+NLP2 #

Request: Starter

{
  "auth": "XSMLTGKQVVCPJCQHJZ4VEDMGIY",
  "type": "ASR5+NLP2",
  "session": "1fea3ef8-3f96-44cd-bfd0-73afb3843d6b",
  "asr": {
    "mic_volume": 0.67
  },
  "nlp": {
    "location": "江苏 无锡",
    "omit_meta": true,
    "omit_error": true
  }
}

Request: 二进制 Data 略

Request: EOF

{
  "signal": "eof",
  "trace": "7e9b9021-f960-47ab-af96-ccbeebd40338"
}

Response: 1

{
  "session": "1fea3ef8-3f96-44cd-bfd0-73afb3843d6b",
  "trace": "7e9b9021-f960-47ab-af96-ccbeebd40338",
  "asr": {
    "index": 1,
    "text": "有什么优惠活动?"
  }
}

Response: 2

{
  "status": "ok",
  "session": "1fea3ef8-3f96-44cd-bfd0-73afb3843d6b",
  "trace": "7e9b9021-f960-47ab-af96-ccbeebd40338",
  "nlp": {
    "index": 1,
    "query": "有什么优惠活动?",
    "answer": "目前我们商场有如下优惠活动哦,您可以告诉我您对哪个活动感兴趣吗?",
    "image": "https://dhcloud-aeon.softsugar.com/images/ccebbe40-c5d3-11ec-a821-0a580af0191f.png"
  }
}