2026/02/05 13:09:09
开始实时转录翻译
实时转录翻译服务可以订阅媒体流的音频内容,并将其实时转写为指定语言的文本。本文介绍如何使用基本的 RESTful API 方法来启动、停止和查询实时转录翻译服务。
注意
命令行示例仅用于演示目的。在生产环境中,请通过你的应用服务器发送 RESTful API 请求。
技术原理
以下流程图概述了实现实时转录翻译的流程:
该流程包括调用以下 RESTful API 方法:
start:调用该方法加入频道并开始转写。如果请求成功,你会在响应体中收到一个agent_id,用于标识当前的转写会话。update:在转写服务运行过程中,使用update方法修改转写或翻译语言,或更新启用转写的主播。query:在start后,调用query来查询服务状态。stop:调用该方法停止转写。
前提条件
开始前,清确保你的开发环境满足以下条件:
- 参考开通服务在声网控制台开通实时语音转写服务,并复制保存 App ID、临时 Token、客户 ID 和客户密钥,以供后续使用。
- 可以访问互联网的计算机。如果你的网络环境部署了防火墙,参考应对防火墙限制以正常使用声网服务。
- 集成并使用声网 实时互动 RTC SDK 搭建一个极简的实时音视频互动 App。
- 参考实现 HTTP 基本认证获取
Authorization值。
实现实时转录翻译
本节介绍调用 start、stop、update 和 query 实时转录翻译服务的示例 API 调用。
启用服务
调用 start 开始字幕录制和翻译。
请求成功时,你会在 HTTP 响应体中收到一个 agent_id。此 ID 是转写会话的唯一标识符。
请求示例
以下是启动实时转录翻译的简单请求示例。有关更多功能配置,请参考加密字幕、录制字幕和转写指定主播。
Shell
curl --request post \
--url https://api.sd-rtn.com/api/speech-to-text/v1/projects/:appid/join \
--header 'Authorization: Basic <credentials>' \
--data '
{
"languages": [
"en-US"
],
"name": "agora-test",
"maxIdleTime": 50,
"rtcConfig": {
"channelName": "agora-test",
"subBotUid": "47091",
"pubBotUid": "88222"
},
"translateConfig": {
"languages": [
{
"source": "en-US",
"target": [
"ar-SA",
"id-ID",
"fr-FR",
"ja-JP"
]
}
]
},
"captionConfig": {
"sliceDuration": 60,
"storage": {
"accessKey": "test-oss",
"secretKey": "test-oss",
"bucket": "test-oss",
"vendor": 2,
"region": 3
}
}
}'
注意
- 字符串 UID 仅在 128 主播环境中受支持,计划在不久的将来提供全面支持。
pubBotUid和subBotUid是int类型的 UID,必须不同以避免未知问题。
响应示例
-
成功
JSON{
"agent_id": "Agent ID.",
"create_ts": null,
"status": "RUNNING"
}
| 参数名称 | 类型 | 描述 |
|---|---|---|
agent_id | String | 服务的 ID。 |
createTs | Integer | 服务创建时的 Unix 时间戳(秒)。 |
status | String | 服务状态:
|
-
失败
JSON{
"detail": "Details of the request failure.",
"reason": "The reason why the request failed."
}
查询服务状态
调用 query 获取转写会话期间服务的状态。请求成功时,你会在响应体中收到当前状态和相关信息。
请求示例
Shell
curl --request get \
--url https://api.sd-rtn.com/api/speech-to-text/v1/projects/:appid/agents/:agentId \
--header 'Authorization: Basic <credentials>'
响应示例
-
成功
JSON{
"message": "Details of the request result.",
"agent_id": "Agent ID.",
"create_ts": null,
"status": "RUNNING"
} -
失败
JSON{
"message": "Details of the failed request.",
"agent_id": "Agent ID.",
"create_ts": null,
"status": "FAILED"
}
更新配置
详情请参考更新配置。
停止服务
调用 stop 停止转写。请求成功时,你会在响应体中收到转写会话的状态。
请求示例
Shell
curl --request post \
--url https://api.sd-rtn.com/api/speech-to-text/v1/projects/:appid/agents/:agentId/leave \
--header 'Authorization: Basic <credentials>'
参考信息
Demo 和源代码
你可以查看Demo 体验实时转录翻译并评估其准确性和延迟。
你也可以参考 Github 上的示例项目了解字幕和转写的实现方式。如需更多演示代码,请联系 support@agora.io。
REST API 中间件
Agora Go Backend Middleware 是一个开源微服务,它公开了一个 RESTful API,旨在简化与声网的交互。该项目使用 Golang 编写,由 Gin 框架驱动,作为中间件连接使用声网视频 SDK 或视频 SDK 的前端应用与声网的 RESTful API。