文档中心>Serverless 应用中心>实践教程>部署互动直播间语音识别服务

部署互动直播间语音识别服务

最近更新时间:2022-12-22 11:24:24

我的收藏

使用场景

你画我猜:可以实时拉取房间内某个用户的音频进行实时识别,转换成文本之后回调给客户的业务服务器,进行业务逻辑判断
语音审核:和业务关联比较多的语音审核,可以采取该接口将数据流投递到语音识别接口进行语音识别,然后进行关键词过滤。
实时字幕:可以通过该接口实时识别房间音频数据,形成文本,在前端做呈现。

架构原理

具体流程如下图所示:
image



应用优势

实时返回:可以将 trtc 房间的语音数据实时识别返回,快速高效。
流程简单:深度融合 trtc 和 asr,数据流完全打通,不需要复杂接入流程。
使用灵活:数据返回给业务服务器之后,可以和业务逻辑实时关联。

注意事项

一般情况下,语音识别的处理时间较长是由于部署函数时开启了 异步执行
目前识别的结果将下发至业务服务器。暂不支持 websocket 的形式,无法下发至客户端。
默认的鉴权形式是 应用鉴权,测试时可更改为 无鉴权

使用流程

1. 开通服务

您需要开启腾讯云语音识别服务,操作详情见 开通语音识别服务

2. 部署函数服务

2. 单击新建应用,进入“新建应用”页面。如下图所示:
image


3. 选择直播房间实时语音识别服务,并进行基础配置。如下图所示:
image


应用名:自定义名称。
地域:根据实际情况进行选择。
密钥信息:您可在 API密钥管理 中查看腾讯云账号密钥信息。
4. 单击完成即可。已创建的应用详情界面如下图所示:


5. 单击云函数 > 函数名称进入函数详情页,在“触发管理”中获取访问路径。

3. 语音识别启动接口

proto: HTTPS
Method: POST
URL: https://service-xxx-xxxx.sh.apigw.tencentcs.com/release/asr_speech
请求参数:
参数
类型
必填
说明
SdkAppId
Int
应用 ID,用于区分不同 TRTC 应用。
RoomId
Int
整型房间号 ID,用于在一个 TRTC 应用中唯一标识一个房间。
StrRoomId
String
字符串房间号 ID,RoomId 与 StrRoomId 必须配置一项,如果 RoomId 与 StrRoomId 同时配置,使用 RoomId。
UserId
String
录制用户 ID,用于在一个 TRTC 应用中唯一标识一个用户。
UserSig
String
录制用户签名,用于对一个用户进行登录鉴权认证。
Callback
String
录制结束后的回调地址,并使用 POST 方式进行回调。
请求示例:
{
"SdkAppId": 1400000000,
"RoomId": 43474,
"UserId": "user_55952145",
"UserSig": "eJwtzNEKgkAUBNBxxxxxxx",
"Callback": "https:xxxxxxxx.com/post/xxx"
}

识别结果回调接口

回调参数说明:
参数
类型
必填
说明
SdkAppId
Int
应用 ID。
RoomId
int
整型房间 ID。
UserId
String
识别的用户 ID。
StrRoomId
String
字符串房间 ID。
Result
Array
语音识别结果 [{},{},{},{}]
Status
String
当前用户语言识别状态,normal/finished
Result 为数组类型,元素封装为 JSON 对象,封装格式如下:
参数名称
类型
必选
描述
Voice
String
当前一句话文本结果,编码为 UTF8。
Index
Integer
当前一句话结果在整个音频流中的序号,从 0 开始逐句递增。
StartTime
Integer
当前一句话结果在整个音频流中的起始时间。
EndTime
Integer
当前一句话结果在整个音频流中的结束时间。
Message
String
识别任务的执行结果。例如,识别结束,识别中,识别失败等。
结果示例:
{
"RequestID": "95941e2c85898384a95b81c2a5******",
"SdkAppId": 1400000000,
"RoomId": 43474,
"UserId": "user_55952145",
"Status": "recognizing/finished",
"Result": [{
"Voice": "实时语音识别",
"Index": 0,
"StartTime": 0,
"EndTime": 1024,
"Message": "success"
}]
}