Golang

概述

通过本文,您可以使用Golang版本的云上曲率实时语音翻译SDK,来实现实时语音场景下的翻译业务。

SDK集成

服务开通

云上曲率实时语音翻译SDK的使用,需要在云上曲率官网(https://www.ilivedata.com/) 注册账号并创建实时语音翻译服务项目。完成后,获取到项目对应的参数,更新到SDK中,再进行集成使用。

版本支持

支持 go 1.21.2 版本及以上。

使用要求

  • 实时音频格式支持:支持PCM OPUS格式音频
  • 采样率:16KHz
  • 字节:640byte
  • 编码:16bit位深
  • 声道:单声道

CreateRTVTClient

func CreateRTVTClient(endpoints string, callbacks RTVTCallback, logger RTVTLogger) *RTVTClient
参数 描述
endpoints RTVT的地址和端口 eg. rtvt.ilivedata.com:14001
callbacks 回调
logger 内部日志接口

Login

func (client *RTVTClient) Login(pid int32, timestamp int64, token string) bool
参数 描述
pid 项目Id eg. 81700001
timestamp 时间戳
token auth token

StartTranslate

func (client *RTVTClient) StartTranslate(asrResult bool, tempResult bool, transResult bool, srcLanguage string, srcAltLauguage []string, destLanguage string, userId string, vadSlienceTime int64, codec AudioCodec) (int64, error)
参数 描述
asrResult 设置是否需要语音识别结果。
tempResult 如果asrResult和temp Result都为true。您可以获得识别的结果。如果tempResult和transResult都为true,您可以获得翻译和识别的结果
transResult 设置是否需要翻译结果
srcLanguage 源语言
srcAltLanguage 源语言的备选语言,最多支持3个
destLanguage 目标语言
userId 用户id,可以为空
vadSlienceTime vad time. -1 表示不使用vad cut。200-2000表示使用vad cut sentence。(单位毫秒)
codec 音频编解码器

SendData

func (client *RTVTClient) SendData(streamId int64, data []byte, seq int64, timestamp int64) error
参数 描述
streamId 从 StartTranslate 得到的 streamId
data PCM 数据
seq 包序列号
timestamp 包时间戳

EndTranslate

func (client *RTVTClient) EndTranslate(streamId int64) error
参数 描述
streamId 从 StartTranslate 得到的 streamId

错误码

错误码 说明
800000 未知错误
800002 未验证的链接
800003 无效参数
800101 无效的系统时间
800102 token非法,无效编码
800103 无效的pid
800105 不支持的语言
800106 备选语言过多
800107 翻译流到达上限
800200 流id不存在

SDK下载

SDK下载和更多说明请前往Github