# 连续对话

说明

为了尽量避免由于设备吸收环境噪音造成的无效语义理解,在连续对话模式下,部分闲聊类的语音请求将无法得到结果。

【连续对话】功能也叫做【免唤醒交互】,可以支持用户在特定场景下,无需重复说出唤醒词也可以继续与设备进行语音交互。

在未开连续对话的情况下的交互场景

- 用户:蓝小飞,你在干什么?
- 设备:我在等你跟我聊天啊。
- 用户:蓝小飞,厦门在哪里啊?//需要重复唤醒
- 设备:厦门是福建省下辖的一个副省级城市,位于福建东南部。
- 用户:蓝小飞,厦门有什么好玩的?
- 设备:鼓浪屿、厦大、南普陀,推荐你一定要去玩。
- 用户:蓝小飞,厦门明天天气怎么样啊?
- 设备:明天厦门天气晴,气温22到32摄氏度,东北风微风。
- 用户:蓝小飞,后天呢?
- 设备:后天厦门天气晴,气温23到20摄氏度,西南风微风。

在打开连续对话的情况下的交互场景

- 用户:蓝小飞,你在干什么?
- 设备:我在等你跟我聊天啊。
- 用户:厦门在哪里啊?
- 设备:厦门是福建省下辖的一个副省级城市,位于福建东南部。
- 用户:那厦门有什么好玩的?
- 设备:鼓浪屿、厦大、南普陀,推荐你一定要去玩。
- 用户:厦门明天天气怎么样啊?
- 设备:明天厦门天气晴,气温22到32摄氏度,东北风微风。
- 用户:后天呢?
- 设备:后天厦门天气晴,气温23到20摄氏度,西南风微风。

从上面的例子我们可以看出来,在打开连续对话的情况下,用户与设备之间的语音交互更接近真实的人与人之间的聊天。

# 连续对话的配置

  1. 开发者操作:在设备接入平台 - 设备能力 处,打开连续对话的开关。在此处打开开关后,代表你的client支持连续对话模式。如果你的设备通过语音唤醒(而不是按键)开启录音,我们建议你打开这个开关。

  1. C端用户操作:在设备的关联APP - 设备详情页,打开连续对话的开关。在此处打开开关后,代表该device处于连续对话模式,用户可以在特定场景下进行免唤醒交互。

# 连续对话的流程

  1. device处于连续对话模式时,用户通过唤醒词开启录音,在设备回复语音请求后,用户可以直接发起请求,无需再次唤醒

在这个阶段设备会在云端有有效回复时,收到expect_reply,收到该返回时,设备应该自动开启录音。

建议

为了向用户更好的传达设备当前的状态,提供更好的用户体验,我们建议在追问时你的设备可以向用户传达”现在我在听你说“的信息。

  1. 若用户在30s左右内没有再次发起语音请求,或云端连续多次没有识别到有效的用户请求,设备将退出录音。下次交互需要使用唤醒词开启录音。

# 全双工连续对话

注意

  1. 全双工连续对话仅支持EVS协议。
  2. 版本最低要求audio_player.version = "1.1"recognizer.version = "1.1"

在全双工连续对话模式下,用户可以在设备播放TTS/音乐/闹钟时,直接发起语音请求,无需等待播放完毕

在不是全双工的连续对话的情况下的交互场景

- 用户:蓝小飞,我要看刘德华的电影
- 设备:为你找到多个结果,请问你要看哪一个?
- 用户:拆弹专家(用户需要等待TTS播完才可以发起语音请求)
- 设备:好的,为你播放拆弹专家
- 用户:蓝小飞,声音大一点(开始播放音视频后设备退出录音,用户需要重新唤醒)
- 设备:音量已调大。

在全双工的连续对话的情况下的交互场景

- 用户:蓝小飞,我要看刘德华的电影
- 设备:为你找到...
- 用户:拆弹专家(用户在播TTS的过程中发起语音请求)
- 设备:好的,为你播放拆弹专家
- 用户:声音大一点(用户在播放音视频的过程中发起语音请求)
- 设备:音量已调大。

当你的设备支持全双工连续对话时,设备将会收到如下两种不一样的response。详情可见audio_playerrecognizer

{
  "iflyos_responses": [
    ...,
    {
      "header": {
        "name": "audio_player.audio_out"
      },
      "payload": {
        "type": "TTS",
        "url": "https://tts.iflyos.cn/tts/sadf.mp3?token=xxxxxxxx",
        "behavior": "PARALLEL",//并行TTS,设备执行时,开始播放TTS,即可开始执行后续内容。
        "resource_id": "e52e7xxxxxxxxxxxe52e7"
      }
    },
    {
      "header": {
        "name": "recognizer.expect_reply"
      },
      "payload": {
        "reply_key": "xxxx",
        "background_recognize": true,//背景录音,设备执行时,该录音不占用音频焦点,不会打断其他内容的执行。
        "timeout": 8000
      }
    }
  ]
}

提示

  1. 如果你的设备配置拥有较好的设备回声消除降噪效果,我们建议你尽量支持全双工连续对话,为用户提供更好的语音交互体验。
  2. 为了向用户更好的传达设备当前的状态,提供更好的用户体验,我们建议在追问时你的设备可以向用户传达”现在我在听你说“的信息。