加密字幕

更新时间不可用

了解如何在实时转录翻译中加密字幕,包括适用场景、配置步骤、实现要点和注意事项。

在某些安全场景下,音视频流会先进行加密。

此时,实时转录翻译会使用密钥解密音频流以完成转写,并在数据流负载中对字幕文本进行加密;客户端再使用同一密钥解密数据流负载,从而在本地解析出字幕文本。

本文介绍如何在你的应用中实现字幕文本加密。

前提条件

开始前,请确保你的开发环境满足以下条件:

  • 参考开通服务在声网控制台开通实时转录翻译服务,并复制保存 App ID、临时 Token、客户 ID 和客户密钥,以供后续使用。

  • 可以访问互联网的计算机。如果你的网络环境部署了防火墙,参考应对防火墙限制以正常使用声网服务。

  • 集成并使用声网 实时互动 RTC SDK 搭建一个极简的实时音视频互动 App。

  • 参考实现 HTTP 基本认证获取 Authorization 值。

  • 使用原生平台 v4.2.6.3 或 Web v4.20.1 及以上版本的 Video SDK,并支持 datastreamEncryptionEnabled。

实现方法

要对字幕进行加密,请按照快速开始中的 API 调用流程,并在 start 请求中加入加密参数,如下所示:

Shell
curl --location --request POST 'https://api.sd-rtn.com/cn/api/speech-to-text/v1/projects/{appId}/join' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <credentials>' \
--data '{
  "name": "unique-agent-id",
  "languages": [
    "en-US"
  ],
  "maxIdleTime": 50,
  "rtcConfig": {
    "channelName": "<YourChannelName>",
    "subBotUid": "<YourSubscribeUid>",
    "subBotToken": "<YourSubscribeToken>",
    "pubBotUid": "<YourPublishUid>",
    "pubBotToken": "<PublishToken-IfRequired>",
    "cryptionMode": 7,
    "secret": "32-byte-encryption-key",
    "salt": "base64-encoded-32-byte-salt-if-mode-7-or-8"
  }
}'

加密模式

cryptionMode 支持以下加密模式:

Code加密方式说明
0No Encryption不加密。
1AES_128_XTS128-bit AES 加密,XTS 模式。
2AES_128_ECB128-bit AES 加密,ECB 模式。
3AES_256_XTS256-bit AES 加密,XTS 模式。
4SM4_128_ECB128-bit SM4 加密,ECB 模式。
5AES_128_GCM128-bit AES 加密,GCM 模式。
6AES_256_GCM256-bit AES 加密,GCM 模式。
7AES_128_GCM2128-bit AES 加密,GCM 模式。需要设置 salt。
8AES_256_GCM2256-bit AES 加密,GCM 模式。需要设置 salt。
表格内容超出当前宽度,可横向滚动查看更多列。