> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coze.cn/llms.txt
> Use this file to discover all available pages before exploring further.

本文介绍提高语音识别（ASR）准确性的方法，帮助开发者优化语音识别效果。
## 优化设备端音频采集 {#1a0abb87}
设备端的音频采集质量直接影响语音识别的效果，为便于问题定位与持续优化，设备端需具备本地音频 dump 功能，结合上行音频数据实现全链路分析。
**使用说明**：

* 需要实现设备端音频采集和存储功能，完整录制并保存原始音频数据。
* 需保障上行音频质量：优先选用带降噪、回声消除的麦克风，避免靠近扬声器。启用自动增益控制、环境噪声抑制等预处理，确保上行音频无明显杂音、断连或音量异常。

## 配置热词 {#acd9b883}
你可以结合 Agent 的使用场景，将产品名称、专业术语等配置为热词，以便提高这些关键词的识别率。例如扣子、硝酸甘油、宫保鸡丁等。
**使用限制**：

* 所有热词加起来最多100个Tokens，超出部分将自动截断。
* 不要将日常通用词设置为热词，例如你好、谢谢等。

**配置方法**：

* WebSocket 语音通话：
   在 `chat.update` 上行事件中，在 `data.asr_config.hot_words` 参数中配置热词，具体的事件说明可参考[更新对话配置](/developer_guides/streaming_chat_event#91642fa8)。
* RTC 语音通话：
   在 `session.update` 上行事件中，在 `data.asr_config.hot_words` 参数中配置热词，具体的事件说明可参考[更新房间配置](/developer_guides/signaling_uplink_event#bb460fb4)。

**示例代码：**
```JSON
{
  "data": {
    "asr_config": {
      "hot_words": [
        // 疾病与症状
        "心绞痛", "心肌梗死", "高血压", "心律失常", "胸闷", "气短", "心悸", "头晕",
        // 药物与治疗
        "硝酸甘油", "阿司匹林", "他汀", "β受体阻滞剂", "支架植入", "搭桥手术",
        // 身体部位与检查
        "冠状动脉", "心血管", "心电图", "心脏彩超", "CT血管成像"
      ]
    }
  }
}
```

## 配置上下文 {#7e94d9fa}
你可以配置上下文信息，为语音识别提供对话背景信息，以便模型结合上下文预测和理解当前语音内容，尤其适用于多轮对话场景。
**使用限制**：

* 最多输入 800 个 Tokens，超出部分将自动截断。
* 上下文内容应与当前对话内容相关。

**配置方法**：

* WebSocket 语音通话：
   在 `chat.update` 上行事件中，在 `data.asr_config.context` 参数中配置上下文信息，具体的事件说明可参考[更新对话配置](/developer_guides/streaming_chat_event#91642fa8)。
* RTC 语音通话：
    在 `session.update` 上行事件中，在 `data.asr_config.context` 参数中配置上下文信息，具体的事件说明可参考[更新房间配置](/developer_guides/signaling_uplink_event#bb460fb4)。

**示例代码：**
```JSON
{
  "data": {
    "asr_config": {
      "context": "顾客正在川菜馆点餐，已经点了水煮鱼和麻婆豆腐，现在在询问招牌菜和辣度选择。",
      "hot_words": ["麻辣香锅", "微辣", "中辣", "特辣", "招牌菜"],
      "enable_ddc": true,  // 可选，是否保留语气词（默认true，需保留时设为false）
      "enable_itn": true   // 可选，是否开启数字格式转换（默认true，需保留汉字数字时设为false）
    }
  }
}
```

## 采用单向流式模式 {#11d4d8c5}
在异步语音消息场景中，用户通过点击按钮开始录音，松开按钮结束并发送，识别结果无需逐字实时显示，只需最终准确转写。此时你可以设置为**单向流式模式**，该模式会整合整句音频信息做上下文分析，减少实时截断导致的误差，提升准确率，**且不会逐字返回结果，而是等整段语音结束后统一输出完整文本。**
**配置方法**：

* WebSocket 语音通话：
   在 `chat.update` 上行事件中，将 `data.asr_config.stream_mode` 参数设置为`output_no_stream`，具体的事件说明可参考[更新对话配置](/developer_guides/streaming_chat_event#91642fa8)。
* RTC 语音通话：
    在 `session.update` 上行事件中，将 `data.asr_config.stream_mode` 参数设置为`output_no_stream`，具体的事件说明可参考[更新房间配置](/developer_guides/signaling_uplink_event#bb460fb4)。

**示例代码：**
```JSON
"asr_config": {
    "stream_mode": "output_no_stream",
    "hot_words": ["会议纪要", "项目进度", "责任人"],  // 可选，场景相关热词，提升关键信息识别率
    "context": "当前正在进行项目周会，讨论上周完成情况及本周计划，参会人员包括产品、开发和测试团队",  // 可选，提供对话背景
    "enable_ddc": true,  // 可选，保留语气词（如"嗯""好的"），默认true
    "enable_itn": true   // 可选，开启数字格式转换（如"一百"转"100"），默认true
}
```

## 采用二次识别模式 {#8c72d18d}
当设置 stream_mode 为 `bidirectional_stream` 时，我们可以通过开启二次识别模式提升结果的识别准确率。
**配置方法**：

* WebSocket 语音通话：
   在 `chat.update` 上行事件中，将 `data.asr_config.enable_nostream` 参数设置为 `true`，具体的事件说明可参考[更新对话配置](/developer_guides/streaming_chat_event#91642fa8)。
* RTC 语音通话：
    在 `session.update` 上行事件中，将 `data.asr_config.enable_nostream` 参数设置为 `true`，具体的事件说明可参考[更新房间配置](/developer_guides/signaling_uplink_event#bb460fb4)。

**示例代码：**
```JSON
"asr_config": {
    "stream_mode": "bidirectional_stream",
    "enable_nostream": true, // 可选，开启二遍模式，默认为 false
}
```

## 指定识别语种 {#549ed24b}
通过参数指定需要识别的语种。具体请参见[更新对话配置](/developer_guides/streaming_chat_event#91642fa8)（WebSocket）或[更新房间模式](/developer_guides/signaling_uplink_event#b4bbd382)（RTC）上行事件中的 `user_language`。
## 常见问题 {#3f678cea}
### 语气词丢失问题 {#a153318f}
**问题描述**： "嗯嗯" 等语气词没有被识别。
**解决方案**：
在语音通话上行事件中，将 `data.asr_config.enable_ddc` 设置为 `false`，扣子编程将不会对语音识别结果中的语气词进行处理，识别结果会保留原始的语气词。事件详情请参见：

* WebSocket 语音通话场景：[更新对话配置](/developer_guides/streaming_chat_event#91642fa8)上行事件。
* RTC 语音通话场景：[更新房间配置](/developer_guides/signaling_uplink_event#bb460fb4)上行事件。

### 数字格式问题 {#855b77f1}
**问题描述**： 数字转换成阿拉伯数字而非汉语数字，例如`一百美元`被转换为 `$100`。
**解决方案**：
在语音通话上行事件中，将 `data.asr_config.enable_itn` 设置为 `false`，关闭文本规范化处理。事件详情请参见：

* WebSocket 语音通话场景：[更新对话配置](/developer_guides/streaming_chat_event#91642fa8)上行事件。
* RTC 语音通话场景：[更新房间配置](/developer_guides/signaling_uplink_event#bb460fb4)上行事件。

### 语音识别支持哪些语种？ {#e7577db1}
语音识别目前支持的语种如下，具体请参见[更新对话配置](/developer_guides/streaming_chat_event#91642fa8)（WebSocket）或[更新房间模式](/developer_guides/signaling_uplink_event#b4bbd382)（RTC）上行事件中的 `user_language`。

