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。
概述
通过本文,您可以使用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。