# 语音指令模块

## 功能演示视频

{% embed url="<https://www.bilibili.com/video/BV1c8411U7sx/>?" %}

## 功能介绍

使用此模块，您可以通过语音控制 Petoi 机器人执行各种技能，无需唤醒词。目前，该模块支持两种语言（中文和英语）的 40 个固定语音命令和通过录制任何声音片段创建的 10 个自定义命令。

## NyBoard

### 硬件设置

<figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2F3aLq5lIyPN90mFLolQTy%2Fimage.png?alt=media&#x26;token=1295040a-cf05-4891-8569-9ad8d397e641" alt=""><figcaption></figcaption></figure>

该模块可以使用线缆连接到 NyBoard 的 Grove 接口（包含D8、D9两个引脚）：

<figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2Fqbw78JXhM4jqyBCBq0fT%2Fimage.png?alt=media&#x26;token=a9b538a6-ed9b-4d1a-bc2a-54e295fbdde9" alt=""><figcaption></figcaption></figure>

### 软件设置

#### 可以通过以下两种方式来进行软件设置：

#### 桌面应用程序

您可以使用 Petoi 桌面应用程序中的 [**固件上载**](https://docs.petoi.com/chinese/zhuo-mian-ying-yong/gu-jian-shang-zai) 上传程序。

<figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2Fyv90rIDYwVJ07xlXuMy8%2Fimage.png?alt=media&#x26;token=842903b6-e55f-4680-9257-ec2ab50b00f0" alt=""><figcaption></figcaption></figure>

#### Arduino IDE

您可以使用 [Arduino IDE](https://www.arduino.cc/en/software) 上传和修改源代码。

模块功能代码已集成到 [OpenCat ](https://github.com/PetoiCamp/OpenCat)项目中。如下图所示，在 OpenCat.ino 中将代码行 **`#define VOICE`** 的注释符去掉。然后将程序上传到机器人NyBoard主板上。机器人将工作在语音模式下。此程序将允许机器人根据语音指令进行操控。以**Bittle**为例，代码设置如下图所示：

<figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2Fwve4l9TFkiza0v30Rkcd%2Fimage.png?alt=media&#x26;token=ebac2870-5a15-4b3c-b2e0-e692cb3f7450" alt=""><figcaption></figcaption></figure>

## BiBoard

### 硬件设置

* BiBoard V0\
  此模块内置在 BiBoard V0 的扩展板中，如下图所示：<br>

  <figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2F3oz4KtPODyUOFrLmOjMq%2Fimage.png?alt=media&#x26;token=406c1b54-bde4-4f3d-9ff0-4c8349c5f639" alt=""><figcaption></figcaption></figure>
* BiBoard V1\
  此模块直接内置在BiBoard V1主板上，如下图所示：<br>

  <figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2Fz0YmN3u1wX2kZcWHvcih%2Fimage.png?alt=media&#x26;token=bd01e5de-ae69-487a-93fb-36f6f30262f8" alt=""><figcaption></figcaption></figure>

### 软件设置

#### 可以通过以下两种方式来进行软件设置：

#### 桌面应用程序

您可以使用 Petoi 桌面应用程序中[固件上载](https://docs.petoi.com/chinese/zhuo-mian-ying-yong/gu-jian-shang-zai)来上传程序。

请选择正确的产品类型、主板号和串口名称。模式选择**标准**，点击升级固件按钮。例如，Bittle、BiBoard\_V0\_2、COM3 如下：

<figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2FWLA3HSffuNuhmgnY5kPV%2Fimage.png?alt=media&#x26;token=dc3870b8-df1a-453f-a463-531ee7129b2f" alt=""><figcaption></figcaption></figure>

#### Arduino IDE

您也可以使用 [Arduino IDE](https://www.arduino.cc/en/software) 上传程序（***OpenCatEsp32.ino***）。

使用最新的 [`OpenCatESP32.ino`](https://github.com/PetoiCamp/OpenCatEsp32) 代码,激活与当前机器人相应的产品宏定义、主板型号宏定义，并将其他的产品宏定义，主板型号宏定义语句注释掉。如果机器人带有机械臂，请激活此行宏义语句：

```cpp
#define ROBOT_ARM                 // for attaching head clip arm
```

否则请用`//`将此行代码注释。

例如，当前机器人是Bittle, 主板型号是BiBoard\_V0\_2，不带机械臂，代码修改如下图所示：

<figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2FoifRs809r7A74IdcPZJ8%2Fimage.png?alt=media&#x26;token=7c9c5de6-0498-45be-ba90-7ccf7ced4c7e" alt=""><figcaption></figcaption></figure>

上传程序后，默认即为语音模式。打开[串口监视器](https://docs.petoi.com/arduino-ide/serial-monitor#biboard)后，可以输入串口指令“***X?***”后，按下回车键，查询当前所在工作模式。如果是其他模式，请并输入串口指令“ ***`XA`*** ”后，按下回车键，切换到语音模式。

## 玩转语音指令

### 常规用法

机器人每次重启之后，语音模块会自动恢复使用默认语言。机器人的出厂默认语言设置是英语。

{% hint style="info" %}
此功能只适用于主板是BiBoard的机器人。
{% endhint %}

1. 设置默认语言\
   可以通过以下两种方法设置默认语言：
   * 使用串口指令
     * 打开[串口监视器](https://docs.petoi.com/chinese/arduino-ide/chuan-kou-jian-shi-qi)：
       * 使用串口指令 ***`XAa`***&#x5C06;默认语言设置为英文
       * 使用串口指&#x4EE4;***`XAb`***&#x5C06;默认语言设置为中文
     * 在[手机App](https://docs.petoi.com/chinese/shou-ji-ying-yong/kong-zhi-mian-ban#chuang-jian-dan-ge-ming-ling)中：
       * 创建一个名为“英语”的命令按钮，使用代码：***`X65,97`***&#x5C06;默认语言设置为英文。
       * 创建一个名为“中文”的命令按钮，使用代码：***`X65,98`***&#x5C06;默认语言设置为中文。
   * 使用语音指令
     * 先说语音指令“**立正**”后，再说语音指令 "**冰-冰-**"将默认语言设置为英文。
     * 先说语音指令“**Attention**”后，再说语音指令 "**嘀-嘀-**"将默认语言设置为中文。
2. 临时切换语言模式

   * 说语音指令： “嘀-嘀-”，切换到中文
   * 说语音指令： “冰-冰-”，切换到英文

   注意，使用此方法，在机器人重启后，语音模块会自动恢复使用默认语言。因此，如果您是无意间切换了语言模式，可以通过重启机器人，使它恢复默认语言设置。<br>
3. 开启/关闭语音指令功能（语音响应+机器人动作响应）<br>

   开启语音指令功能的方式

   * 说语音指令：“打开音效”
   * 在手机App中[创建](https://docs.petoi.com/chinese/shou-ji-ying-yong/kong-zhi-mian-ban#chuang-jian-dan-ge-ming-ling)一个名为“启用语音指令”的命令按钮，使用代码： *`X65,99`*

   关闭语音指令功能的方式

   * 说语音指令：“安静点”
   * 在手机App中[创建](https://docs.petoi.com/chinese/shou-ji-ying-yong/kong-zhi-mian-ban#chuang-jian-dan-ge-ming-ling)一个名为“禁用语音指令”的命令按钮，使用代码： *`X65,100`*
4. 使用预定义的语音指令<br>

   您可以参考以下语音指令列表：

   <figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2FT9PInpg9ER9caw5r7GnT%2F%E4%B8%AD%E6%96%87%E7%89%88%E8%AF%AD%E9%9F%B3%E6%8C%87%E4%BB%A4%E5%88%97%E8%A1%A801.png?alt=media&#x26;token=6d442212-33cb-4727-87d5-6d6281fad643" alt=""><figcaption></figcaption></figure>
5. 串口指令

   有 7 个相关的串口配置命令；您可以在串口监视器中的文本框中输入上述命令后，按 回车键 将指令发送给机器人。

   <table><thead><tr><th width="123">串口命令</th><th width="229">手机App自定义命令代码</th><th width="390">功能</th></tr></thead><tbody><tr><td>XAa</td><td>X65,97</td><td>设置默认语言为英文</td></tr><tr><td>XAb</td><td>X65,98</td><td>设置默认语言为中文</td></tr><tr><td>XAc</td><td>X65,99</td><td>开启回复音并启用反应</td></tr><tr><td>XAd</td><td>X65,100</td><td>关闭回复音效并禁用反应</td></tr><tr><td>XAe</td><td>X65,101</td><td>进入自定义语音指令模式</td></tr><tr><td>XAf</td><td>X65,102</td><td>退出自定义语音指令模式</td></tr><tr><td>XAg</td><td>X65,103</td><td>删除所有自定义语音指令</td></tr></tbody></table>

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>为了避免意外触发机器人响应语音指令，例如在与其他人交谈时，您可以对机器人说“安静点”，禁用语音指令模块。</p><p>如果上述语音指令在中文模式下不起作用，请尝试使用手机App创建一个带有代码： <em><strong><code>X65,100</code></strong></em> 的自定义命令按钮；或者在串口监视器中输入 <em><strong><code>XAd</code></strong></em> 来禁用语音模块。</p><p><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2FxOJd6FkDp9KJ9TOtdxva%2Fimage.png?alt=media&#x26;token=56128bac-86d9-450c-9b6e-3ad6e01337e3" alt=""></p><p>您可以对机器人说“打开音效”，启用语音指令模块。也可以使用手机App创建一个带有代码： <em><strong><code>X65,99</code></strong></em> 的自定义命令按钮；或者在串口监视器中输入 <em><strong><code>XAc</code></strong></em> 以启用语音指令模块。</p><p><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2FJU6vmT2evTnq8yxnnpX5%2Fimage.png?alt=media&#x26;token=8f4b3f2f-ece6-4f0e-a18e-2366862fd134" alt=""></p></div>

{% hint style="success" %}
语音命令“爬上去”对你来说是一个挑战。你可以自行[设计行为](https://docs.petoi.com/chinese/zhuo-mian-ying-yong/ji-neng-chuang-zuo-fang)。然后，你可以在 [Petoi 论坛](https://www.petoi.camp/forum/challenge)挑战区发布，或者发送邮件至 <support@petoi.com>。我们可能会将其纳入官方固件，并送你一份礼物！

您也可以通过短视频社交媒体平台分享您设计的技能动作，比如：

{% embed url="<https://www.bilibili.com/video/BV1Ex4y137SQ/>?" %}
{% endhint %}

### 记录自定义语音指令

当机器人在中文模式下工作时，您可以说语音指令“**开始学习**”（或在串口监控器中输入 ***XAe***）进入到自定义语音指令模式，并根据语音提示依次录制您的语音指令，如需结束录入语音指令，请说语音指令“**结束学习**”（或在串口监控器中输入 ***XAf***），即可退出自定义语音指令模式。

{% hint style="info" %}
如果模块不在中文模式，您可以说 “嘀-嘀-”（或在串行监视器中输入序列命令 ***`XAb`*** ）以切换到中文模式。
{% endhint %}

您最多可以录制 10 个语音指令，<mark style="color:red;">每个指令不超过</mark><mark style="color:red;">**6**</mark><mark style="color:red;">个音节</mark>。

退出自定义语音指令模式后，说出其中一个已录制的语音命令以触发机器人做出反应技能。

说语音指令“**清除学习数据**”，将一次性删除所有的自定义语音指令。

在OpenCatEsp32工程代码中的 `voice.h`文件中，我们已定义好由10个字符串组成的技能列表（`customizedCmdList[]`）作为自定义语音指令的响应技能（比如对于产品 Bittle 只有前五个可以看到机器人的实际反应，因为它们是符合串口协议的串口指令）：

```
  "kpu1",                                                                  // single-handed pushups
  "m0 80 0 -80 0 0",                                                       // wave head
  "kmw",                                                                   // moonwalk
  "b14,8,14,8,21,8,21,8,23,8,23,8,21,4,19,8,19,8,18,8,18,8,16,8,16,8,14,4,\
  21,8,21,8,19,8,19,8,18,8,18,8,16,4,21,8,21,8,19,8,19,8,18,8,18,8,16,4,\
  14,8,14,8,21,8,21,8,23,8,23,8,21,4,19,8,19,8,18,8,18,8,16,8,16,8,14,4",  // twinkle star
  "T",                                                                     // call the last skill data sent by the Skill Composer
  "6th",
  "7th",
  "8th",
  "9th",
  "10th"  // define up to 10 customized commands.
```

比如：**`kpu1`** 是动作技能单手俯卧撑的串口指令， **`kmw`** 是动作技能滑步的串口指令，**`m0 80 0 -80`** 是一条控制关节动作（左右摇头）的串口指令，**`b14,8,14,8,21,8,21,8,23,8,23,8,21,4`** 是一条播放旋律串口指令。

如果想让机器人使用上述自定义回复，您需要说“**开始学习**”，进入自定义语音命令模式，录制5个语音指令，比如录入以下5条指令：“演示一下”（上一次从技能创作坊中导出的技能动作）、“单手俯卧撑”、“摇头”、“滑步”、“小星星”），然后说“**结束学习**”退出自定义语音命令模式。

如果您已录制语音命令，相应的响应技能字符串不是符合串口协议的串口指令。例如 **`6th`** ，则机器人没有实际技能演示效果；当您说出第6条语音指令时，它只会在串口监视器上打印出一条简单消息。

### 如何调试语音指令模块

在某些情况下，语音指令模块可能不会响应您的语音指令。请检查以下内容：

1. 如果是BiBoard V0主板，请将BiBoard 扩展板底部的拨动开关拨到语音命令（Voice command）侧。<br>

   <figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2FZLEI1X9GvDxxAXBD2xQn%2Fimage.png?alt=media&#x26;token=36c32cc4-7cc3-49a2-8947-09323c686a0f" alt=""><figcaption></figcaption></figure>
2. 说语音指令“**打开音效**”以检查机器人是否以 Do-Mi-So 旋律响应。有时，语音指令模块可能因 “**安静点**” 而意外设置为关闭状态。
3. 如果模块在播放声音时没有发出任何声音，请说出“嘀-嘀-”以切换到中文模式。您可以尝试不同的音调和速度说出“嘀-嘀-”。如果不在中文模式，机器人会响应“切换中文”。如果已经在中文模式，它就不会再做出语音响应了。
4. 如果语音模块仍然没有发出任何声音，您可以尝试使用我们的软件工具重置它。\
   **移动应用：**\
   从手机App 1.2.0 版本开始，您可以使用复合代码创建一个新按钮：

   ***`^X65,99;!1000;X65,97;!1000;X65,98`***\
   将语音模块重置为中文模式。<br>

   <figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2Fonfs07iYoZ8lvE7myaRR%2Fimage.png?alt=media&#x26;token=3569f0d0-01cf-422f-95f2-de56fe4b554e" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
***`X65,99`*** 或在串口监视器中输入 ***`XAc`*** 可启用语音模块。\ <img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2FJU6vmT2evTnq8yxnnpX5%2Fimage.png?alt=media&#x26;token=8f4b3f2f-ece6-4f0e-a18e-2366862fd134" alt="" data-size="original">

***`X65,98`*** 或在串口监视器中输入 ***`XAb`*** 等同于说“嘀-嘀-”，但排除了声音未被识别的可能性。然后您可以尝试再次说“打开音效”。\ <img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2FD6pZ6gORFgzV5XTmGgMK%2Fimage.png?alt=media&#x26;token=0ec2a4ed-e53c-4b17-904d-39bb72b7feeb" alt="" data-size="original">
{% endhint %}

&#x20;  **桌面应用程序：**\
&#x20;  从版本 1.2.1 开始，您可以使用**调试器**重置语音指令模块。

{% embed url="<https://docs.petoi.com/chinese/zhuo-mian-ying-yong/tiao-shi-qi>" %}

### 高级用法

#### 理解背后原理

1. 将语音指令模块中麦克风收集到的语音命令转换为串口指令。
2. 通过软串口端口 Serial2，发送串口指令到主控板 MCU 。
3. MCU收到串口指令后， 将其解析为相应的技能命令，最后根据技能命令，程序中反应模块控制机器人相应地做出反应。

#### 下载测试程序

* NyBoard\
  测试程序位于 GitHub 上的 OpenCat 项目仓库中（具体路径：OpenCat/ModuleTests/testVoiceCommander）。您可以访问我们的 GitHub 仓库 <https://github.com/PetoiCamp/OpenCat> 下载完整代码，如图所示：<br>

  <figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2FXonSuVg2fR3xclAuzLsI%2Fimage.png?alt=media&#x26;token=4527d5bc-9f0e-4e00-96f6-36505969dec1" alt=""><figcaption></figcaption></figure>
* BiBoard\
  测试程序位于 GitHub 上的 OpenCatEsp32 项目仓库中（具体路径：OpenCatEsp32/ModuleTests/testVoiceCommander）。您可以访问我们的 GitHub 仓库 <https://github.com/PetoiCamp/OpenCatEsp32> 下载完整代码，如图所示：<br>

  <figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2FZiiiTfDizW8nZASZvu4J%2Fimage.png?alt=media&#x26;token=c32cfb21-a454-411f-93c6-0c0e6e29c66b" alt=""><figcaption></figcaption></figure>

上传测试程序

测试程序 ***testVoiceCommander.ino***，可以用来查看发送到 MCU 的每个串口指令包括如果你已经录制了的自定义语音指令），以NyBoard为例，使用USB数据线及USB上载器连接电脑与主板，选择正确的串口名称，然后点击“上传”按钮为主板上传程序，如下图所示：

<figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2F036nrifXG8aKaP3RCZ2N%2Fimage.png?alt=media&#x26;token=d10094da-379d-44d1-a23b-e1b8a112f2d1" alt=""><figcaption></figcaption></figure>

您可以通过打开[串口监视器](https://docs.petoi.com/chinese/arduino-ide/chuan-kou-jian-shi-qi)来检查每个语音指令的原始返回值。

<figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2Fhm0QI3cDEdAYDt3Ff3O0%2Fimage.png?alt=media&#x26;token=7883812b-402b-4d24-a97a-ccc659113e30" alt=""><figcaption></figcaption></figure>

<figure><img src="https://201656985-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MQ6a951Q6Jn1Zzt5Ajr-3369173170%2Fuploads%2F3fruRUBdWAoBukoVkH5s%2Fimage.png?alt=media&#x26;token=5cc817b7-509d-4349-a418-27cef34e5e44" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
在您对机器人说出语音指令后，这些返回值（***`XA11`*** 或 ***`XA21kup`***）是发送到主控板 MCU 的相应串口指令。第三个数字（11 或 21）是一个不可见字符。为了理解它，我们将其转换为数值并打印出来。
{% endhint %}

#### 如何设计新的反应技能

为了提高语音模式中机器人的自定义语音控制命令利用率，您可以修改自定义指令字符串列表（`customizedCmdList[]`）为实际动作响应的技能名称。

* 使用任务队列创建动作序列，请参考以下源代码（`voice.h`） ：

  ```cpp
  "qc-2:0>kclap:1000>kpickF:1000>"   // 开头用q表示是任务队列；技能由串口指令和延时时长组成，
                                     // :前面串口指令，:后面是延时时长，单位是毫秒；
                                     // 技能与技能之间用 > 分隔
  ```
* 使用[**技能创作坊**](https://docs.petoi.com/chinese/zhuo-mian-ying-yong/ji-neng-chuang-zuo-fang)创作新技能，并将自定义语音指令绑定到新技能
  1. 使用 **技能创作坊** 设计新技能，然后将其[导出](https://app.gitbook.com/s/sH8LElvsjsHIa2uNVZzo/)到 [`InstinctX.h`](https://docs.petoi.com/chinese/ying-yong-shi-li/ji-neng-chuang-zuo#tiao-shi-ji-neng-dong-zuo) `（X表示产品名称，比如BittleESP, NybbleESP）`
  2. 修改 `voice.h`文件以将自定义语音命令绑定到新技能：将'`k`'加上新技能名称插入到字符串变量中（例如， `customizedCmdList[]`中的第一个字符串，对应您想绑定第一个自定义语音指令）


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.petoi.com/chinese/kuo-zhan-mo-kuai/yu-yin-zhi-ling-mo-kuai.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
