

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 了解 Amazon Chime SDK PTSN 音频服务的 VoiceFocus
<a name="voice-focus"></a>

能够将 Amazon Voice Focus 噪音抑制应用于公共交换电话网络 (PSTN) 调用的入站和出站调用分支。当您应用 Amazon Voice Focus 时，它可以在不影响人类语音的情况下减少背景噪音。这可以使当前发言人更容易被听见。

要创建入站调用分支，使用 [SIP 规则](https://docs.aws.amazon.com/chime/latest/ag/manage-sip-applications.html)，该规则可调用带有 `NewInboundCall` 事件的 AWS Lambda 函数。您可以使用 [CallAndBridge](call-and-bridge.md) 操作或使用 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_CreateSipMediaApplicationCall.html) API 操作创建出站调用分支。有关 Amazon Voice Focus 的更多信息，请参阅 [Amazon Chime SDK 的噪音消除工作原理](https://www.amazon.science/blog/how-amazon-chimes-challenge-winning-noise-cancellation-works)。

 Amazon Voice Focus 可减少不必要的非语音噪音，包括：
+ **环境噪音** — 风、风扇、自来水
+ **背景噪音** — 割草机、狗吠声
+ **前景噪音** — 打字、纸张哗啦声

**注意**  
当您使用 Amazon Voice Focus 时，会根据每个通话段的活跃通话分钟数和 SIP 媒体应用程序的每分钟使用量向您 AWS 收费。

此示例显示了一个典型的 `VoiceFocus` 操作。

```
{
    "SchemaVersion": "1.0",
    "Actions":[
        {
            "Type": "VoiceFocus",
            "Parameters": {
                "Enable": True|False,            // required
                "CallId": "call-id-1",           // required    
            }
        }
    ]
}
```

**Enable**  
*描述* — 启用或禁用 Amazon Voice Focus  
*允许的值* — `True` \$1 `False`  
*必填* — 是  
*默认值* – 无

**CallId**  
*描述* — CallId AWS Lambda 函数调用`CallDetails`中的参与者  
*允许的值* — 有效的调用 ID  
*必填* — 是  
*默认值* – 无

此示例显示了 `VoiceFocus` 操作的成功 `ACTION_SUCCESSFUL` 事件。

```
{
   "SchemaVersion": "1.0",
   "Sequence": 3,
   "InvocationEventType": "ACTION_SUCCESSFUL",
   "ActionData": {
      "Type": "VoiceFocus",
      "Parameters": {
         "Enable": True,
         "CallId": "call-id-1"
      }
   },
   "CallDetails":{
      .....
      .....
      "Participants":[
         {
            "CallId": "call-id-of-caller",
            .....   
            "Status": "Connected"
         },
         {
            "CallId": "call-id-of-callee",
            .....
            "Status": "Connected"
         }
      ]
   }
}
```

此示例显示了 `VoiceFocus` 操作的典型 `ACTION_FAILED` 事件。

```
{
   "SchemaVersion": "1.0",
   "Sequence":2,
   "InvocationEventType": "ACTION_FAILED",
      "ActionData":{
      "Type": "VoiceFocus",
      "Parameters": {
         "Enable": True,
         "CallId": "call-id-1"
      }
      },
      "ErrorType": "SystemException",
      "ErrorMessage": "System error while running action"
   },
   "CallDetails":{
      .....
      .....
      "Participants":[
         {
            "CallId": "call-id-of-caller",
            .....   
         }
      ]
   }
}
```

**错误处理**  
出于安全考虑，PSTN 音频操作的每个客户账户（CPS）的限制为每秒 5 个调用请求。当调用请求超过 5 个 CPS 限制时，操作会返回错误消息。此表列出了 `VoiceFocus` 操作返回的错误消息。


| 错误 | Message | Reason | 
| --- | --- | --- | 
| `ActionExecutionThrottled` | 运行操作失败。已达到每秒最大操作数。 | 每秒的 Voice Focus 操作请求数超过系统限制。 | 
| `MissingRequiredActionParameter` | 缺少必需操作参数。 | 运行操作时缺少一个或多个必需参数。 | 
| `SystemException` | 运行操作时出现系统错误。 | 运行操作时出现一个系统错误。 | 

**调用流**  
此图表显示了针对两个 PSTN 调用之间的 `CallAndBridge` 操作启用和禁用 Amazon Voice Focus 的调用流。

![\[当您为两个桥接的 PSTN 调用启用或禁用 Amazon Voice Focus 时的调用流。\]](http://docs.aws.amazon.com/zh_cn/chime-sdk/latest/dg/images/voice_focus-pstn1.png)


对于出站呼叫段，该 AWS Lambda 函数为呼叫者启用 Amazon Voice 焦点，并返回一组操作，包括`CallAndBridge`。桥接调用后，`VoiceFocus` 操作会返回一个 `ACTION_SUCCESSFUL` 事件，而 Lambda 函数会返回另一组事件，以为被呼叫者启用 Amazon Voice Focus。这组操作包括 `VoiceFocus`、`Enable`、`True` 以及调用者 ID。呼叫者挂断之前，不会进行任何操作。然后，Lambda 函数向 SIP 媒体应用程序发送 `Hangup` 操作。应用程序挂断被呼叫者，并将挂断函数发送回 Lambda 函数，Lambda 函数无需执行任何操作。