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设置为truecallback会触发:
rtvtClient.on("recognizedResult", data);
  • 当有翻译结果时,如果transResult设置为truecallback会触发:
rtvtClient.on("translatedResult", data);
  • 当有临时识别结果时,如果asrRseult设置为true,且tempResult设置为truecallback会触发:
rtvtClient.on("recognizedTempResult", data);
  • 当有翻译结果时,如果transResult设置为true,且tempResult设置为truecallback会触发:
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