加入频道开始实时转录翻译

更新时间不可用

启动实时转录翻译任务。

POST
https://api.agora.io/api/speech-to-text/v1/projects/{appid}/join

你可以通过该方法设置是否需要启用字幕录制、字幕翻译功能。

鉴权

Basic Auth

HTTP 基本认证:每次发送 HTTP 请求时,都必须在请求 Header 部填入 Authorization 字段。关于如何生成该字段的值,请参考实现 HTTP 基本认证。

路径参数

appidstring
必填

你的项目的 App ID,可在声网控制台获取。

请求 Body

字段
languagesarray<string>
必填

必选,实时转录翻译需要识别的语种,最多支持 4 种语言。 可参考支持识别的语言进行设置。

可选,配置指定用户 ID 的转写语种。最多支持 5 个配置项。

maxIdleTimeinteger

可选,最大频道空闲时间,单位为秒。

  • 取值范围 [0,259200],默认为 30 秒。
  • maxIdleTime=0 表示禁用空闲自动结束。
  • 超出最大频道空闲时间后,任务会自动结束。

注意

  • 频道空闲:直播频道内无任何主播,或通信频道内无任何用户。
  • 平台还会限制单次任务的最长运行时间,上限为 72 小时(259200 秒)。任务达到该上限后会被强制结束,即使 maxIdleTime 为 0 也不例外。

必选,实时字幕配置。将用户语音转为文字后,可以把文本信息作为字幕推送至频道内以配合 UI 实时显示。

channelNamestring
必填

必选,需要进行转写的频道名。

subBotUidstring
必填

必选,订阅音视频流的机器人 ID。

注意

该字段已废弃。

subBotTokenstring

可选,订阅音视频流的机器人使用的 Token,用于加入频道时鉴权。 如果你的项目启用了 App 证书,你需要在你的 Token 服务器上生成一个 Token 然后传入该字段, 详见使用 Token 鉴权。

注意

该字段已废弃。

pubBotUidstring
必填

必选,把字幕信息推送至频道内的机器人 ID。

pubBotTokenstring

推送字幕的机器人使用的 Token,用于加入频道时鉴权。 如果你的项目启用了 App 证书,你需要在你的 Token 服务器上生成一个 Token 然后传入该字段, 详见使用 Token 鉴权。

subscribeAudioUidsarray<string>

可选,用户 ID。如果你需要指定订阅某些用户的音频流,可以设置该字段。 数组长度不得超过 32。如果没有指定,默认订阅频道内所有用户的音频流。

注意

该字段和 unSubscribeAudioUids 只能设一个。

unSubscribeAudioUidsarray<string>

可选,用户 ID。如果你想要指定不订阅某些用户的音频流,可以设置该字段。 数组长度不得超过 5。

cryptionModeinteger

可选,加解密模式。启用该字段后,拉流会使用解密模式,推送字幕至频道内会使用加密模式。

  • 0:不加密。
  • 1:AES_128_XTS 加密模式。128 位 AES 加密,XTS 模式。
  • 2:AES_128_ECB 加密模式。128 位 AES 加密,ECB 模式。
  • 3:AES_256_XTS 加密模式。256 位 AES 加密,XTS 模式。
  • 4:SM4_128_ECB 加密模式。128 位 SM4 加密,ECB 模式。
  • 5:AES_128_GCM 加密模式。128 位 AES 加密,GCM 模式。
  • 6:AES_256_GCM 加密模式。256 位 AES 加密,GCM 模式。
  • 7:AES_128_GCM2 加密模式。128 位 AES 加密,GCM 模式。相比于 AES_128_GCM 加密模式,AES_128_GCM2 加密模式安全性更高且需要设置密钥和盐。
  • 8:AES_256_GCM2 加密模式。256 位 AES 加密,GCM 模式。相比于 AES_256_GCM 加密模式,AES_256_GCM2 加密模式安全性更高且需要设置密钥和盐。

注意

  • 该字段已废弃。
  • 解密方式必须与频道设置的加密方式一致。
secretstring

可选,与加解密相关的密钥。仅需在 cryptionMode 非 0 时设置。

saltstring

可选,与加解密相关的盐。Base64 编码、32 位字节。仅需在 cryptionMode 为 7 或 8 时设置。

enableJsonProtocolboolean

可选,推送至频道内的字幕数据的编码格式。

  • true:使用 JSON 格式推送字幕,数据经过 gzip 压缩(带宽更小,但需解码)。
  • false:使用 Protobuf 格式推送字幕(默认)。数据体积更小,适合对传输效率要求高的场景。

使用 Soniox 供应商时,同一次更新可能同时包含已稳定的前缀片段和仍会变化的后缀片段。JSON 和 Protobuf 两种协议格式都可能在单条消息中携带多个片段。详见解析转写数据。

可选,字幕翻译配置。

可选,字幕录制配置。

keywordsarray<string>

可选,热词列表。用于提升转写时对特定词汇的识别准确率。最多支持 500 个词。

namestring
必填

必选,服务的唯一标识,长度在 64 个字符以内。

注意

相同标识不可重复创建。

响应

如果返回的状态码为 200,表示请求成功。

响应 Body

agent_idstring

服务的 ID。

create_tsinteger

服务创建时的 Unix 时间戳(秒)。

statusstring

服务的状态:

  • STARTING:服务开始启动。
  • RUNNING:服务进行中。
  • STOPPING:服务退出中。
  • STOPPED:服务退出成功。
  • RECOVERING:服务恢复中。
  • FAILED:服务退出失败。

请求示例

Example Request
curl --request POST \
  --url "https://api.agora.io/api/speech-to-text/v1/projects/:appid/join" \
  --header 'Authorization: Basic <credentials>' \
  -H 'Content-Type: application/json' \
  -d '{
  "languages": [
    "zh-CN"
  ],
  "keywords": [
    "声网",
    "Agora",
    "实时互动"
  ],
  "name": "agora-test",
  "maxIdleTime": 50,
  "rtcConfig": {
    "channelName": "agora-test",
    "subBotUid": "47091",
    "pubBotUid": "88222"
  },
  "translateConfig": {
    "languages": [
      {
        "source": "zh-CN",
        "target": [
          "en-US",
          "ar-SA",
          "id-ID",
          "fr-FR",
          "ja-JP"
        ]
      }
    ]
  },
  "captionConfig": {
    "sliceDuration": 60,
    "storage": {
      "accessKey": "test-oss",
      "secretKey": "test-oss",
      "bucket": "test-oss",
      "vendor": 11,
      "region": 0
    },
    "extensionParams": {
      "endpoint": "http://host:9002",
      "type": "s3",
      "provider": "Minio"
    }
  }
}'

响应示例

{
  "agent_id": "1NT29X11GQSxxxxx80BEIN56XF",
  "create_ts": 1735035893,
  "status": "STARTING"
}