Web (JavaScript)
更新时间:
概述
通过本文,您可以使用Web版本的云上曲率实时语音翻译SDK,来实现实时语音场景下的翻译业务。
SDK集成
服务开通
云上曲率实时语音翻译SDK的使用,需要在云上曲率官网(https://www.ilivedata.com/) 注册账号并创建实时语音翻译服务项目。完成后,获取到项目对应的参数,更新到SDK中,再进行集成使用。
使用要求
- 实时音频格式支持:只支持PCM格式音频
- 采样率:16K Hz
- 编码:16bit位深
- 声道:单声道
集成依赖
引入以下依赖库:
<script src="libs/msgpack.min.js"></script>
<script src="libs/md5.min.js"></script>
<script src="libs/int64.min.js"></script>
<script src="libs/crypto-js.min.js"></script>
<script src="libs/fpnn.min.js"></script>
<script src="dist/rtvt.sdk.min.js"></script>
初始化
let rtvtClient = new RTVTClient({
endpoint: endpoint,
pid: pid,
uid: uid,
});
参数
类型
说明
endpoint
string
控制台提供的SDK接入地址
pid
long
项目id,通过云上控制台获取
uid
string
用户id,业务侧自行生成,可选
登录
login(token, ts, callback);
参数
类型
说明
token
string
token生成方式参见下文
ts
int
时间戳,与生成token时使用的时间戳一致
开始实时语音翻译
createStream(srcLang, destLang, asrResult, tempResult, transResult, callback);
参数
类型
说明
srcLang
string
源语言
destLang
string
目标语言
asrResult
boolean
默认为false。控制是否返回识别结果
tempResult
boolean
默认为false。控制是否返回临时结果
transResult
boolean
默认为true。控制是否返回翻译结果
- 当有识别结果时,如果
asrRseult
设置为true
,callback
会触发:
rtvtClient.on("recognizedResult", data);
- 当有翻译结果时,如果
transResult
设置为true
,callback
会触发:
rtvtClient.on("translatedResult", data);
- 当有临时识别结果时,如果
asrRseult
设置为true
,且tempResult
设置为true
,callback
会触发:
rtvtClient.on("recognizedTempResult", data);
- 当有翻译结果时,如果
transResult
设置为true
,且tempResult
设置为true
,callback
会触发:
rtvtClient.on("translatedTempResult", data);
发送语音片段
rtvtClient.sendVoice(stream, seq, pcm);
参数
类型
说明
stream
long
语音流id
seq
long
语音片段序号(尽量有序)
pcm
byte
语音数据,默认640字节
停止翻译
stopAllStreams();
释放对象
destory();
注意,使用结束时调用。下次使用需要重新登录
Token生成
Token生成方式请参考以下代码示例:
var pid = pid;
var key = key;
var ts = parseInt(new Date().getTime() / 1000);
var coreString = pid + ":" + ts;
var token = CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA256(coreString, atob(key)));
SDK下载
SDK下载和更多说明请前往Github。
概述
通过本文,您可以使用Web版本的云上曲率实时语音翻译SDK,来实现实时语音场景下的翻译业务。
SDK集成
服务开通
云上曲率实时语音翻译SDK的使用,需要在云上曲率官网(https://www.ilivedata.com/) 注册账号并创建实时语音翻译服务项目。完成后,获取到项目对应的参数,更新到SDK中,再进行集成使用。
使用要求
- 实时音频格式支持:只支持PCM格式音频
- 采样率:16K Hz
- 编码:16bit位深
- 声道:单声道
集成依赖
引入以下依赖库:
<script src="libs/msgpack.min.js"></script>
<script src="libs/md5.min.js"></script>
<script src="libs/int64.min.js"></script>
<script src="libs/crypto-js.min.js"></script>
<script src="libs/fpnn.min.js"></script>
<script src="dist/rtvt.sdk.min.js"></script>
初始化
let rtvtClient = new RTVTClient({
endpoint: endpoint,
pid: pid,
uid: uid,
});
参数 | 类型 | 说明 |
---|---|---|
endpoint | string | 控制台提供的SDK接入地址 |
pid | long | 项目id,通过云上控制台获取 |
uid | string | 用户id,业务侧自行生成,可选 |
登录
login(token, ts, callback);
参数 | 类型 | 说明 |
---|---|---|
token | string | token生成方式参见下文 |
ts | int | 时间戳,与生成token时使用的时间戳一致 |
开始实时语音翻译
createStream(srcLang, destLang, asrResult, tempResult, transResult, callback);
参数 | 类型 | 说明 |
---|---|---|
srcLang | string | 源语言 |
destLang | string | 目标语言 |
asrResult | boolean | 默认为false。控制是否返回识别结果 |
tempResult | boolean | 默认为false。控制是否返回临时结果 |
transResult | boolean | 默认为true。控制是否返回翻译结果 |
- 当有识别结果时,如果
asrRseult
设置为true
,callback
会触发:
rtvtClient.on("recognizedResult", data);
- 当有翻译结果时,如果
transResult
设置为true
,callback
会触发:
rtvtClient.on("translatedResult", data);
- 当有临时识别结果时,如果
asrRseult
设置为true
,且tempResult
设置为true
,callback
会触发:
rtvtClient.on("recognizedTempResult", data);
- 当有翻译结果时,如果
transResult
设置为true
,且tempResult
设置为true
,callback
会触发:
rtvtClient.on("translatedTempResult", data);
发送语音片段
rtvtClient.sendVoice(stream, seq, pcm);
参数 | 类型 | 说明 |
---|---|---|
stream | long | 语音流id |
seq | long | 语音片段序号(尽量有序) |
pcm | byte | 语音数据,默认640字节 |
停止翻译
stopAllStreams();
释放对象
destory();
注意,使用结束时调用。下次使用需要重新登录
Token生成
Token生成方式请参考以下代码示例:
var pid = pid;
var key = key;
var ts = parseInt(new Date().getTime() / 1000);
var coreString = pid + ":" + ts;
var token = CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA256(coreString, atob(key)));
SDK下载
SDK下载和更多说明请前往Github。