登录    |    注册

语到开放平台--Android SDK

2021-02-21 14:27:19

1.接入说明

1.1 初始化

初始化前确定当前sdk运行的环境:

IolMtConfig.isDebug = false为正式环境,默认是true为debug环境。(建议在application中进行)

IolMt.getInstance().init(getApplicationContext(), "appKey", "appSecret");
appKey和appSecret事先申请好用于sdk认证的。

初始化完成后就可以进行翻译工作了。

创建IolMtClient实例——>设置语种方向——>执行对应的翻译方法

mtClient = IolMt.getInstance().create();
mClient.setLangCode(srcLangCode, tarLangCode);

srcLangCode:源语种代码(例如:zh、en);

tarLangCode:目标语种代码;

翻译结果是通过异步回调的形式进行(所有回调均在主线程中执行),返回结果通过ResultCode来判断是否成功;

ResultCode介绍:翻译结果的状态码,ResultCode.OK代表翻译成功。具体详细介绍查看后文code列表。

1.2 语种相关

LangBean:
code语种代码;
name语种名称。

获取支持文本翻译的语种列表:LangCodeMatcher.getTextMtSupportLangList();

获取支持图片翻译的语种列表:LangCodeMatcher.getImageMtSupportLangList();

获取支持语音文件翻译的语种列表:LangCodeMatcher.getAudioMtSupportLangList();

判断指定语种是否支持tts:LangCodeMatcher.isSupportTts(langCode);

判断指定语种是否支持实时语音翻译(识别中状态时原译文同时出结果):LangCodeMatcher.isSupportMsTrans(langCode)。

1.3 语音合成(TTS)

TtsUtil语音合成的工具类,在进行语音合成前,需要对语种进行判断,是否支持该语种的合成。

TtsUtil.synthetizeVoice(String text, String voiceFilePath, String langCode, OnTtsListener onTtsListener)

text:需要合成语音的文本;

voiceFilePath:合成语音文件的保存路径;

langCode:文本语种代码(zh、en等);

onTtsListener:合成结果的回调;

onSuccess(String filepath):合成成功,filePath合成的语音文件的路径;

onFail(String msg):合成失败,msg是表示失败的原因。

1.4.状态码

Code描述
ResultCode.OK翻译成功
ResultCode.FAILED翻译失败
ResultCode.ERROR_TIME_OUT请求超时
ResultCode.ERROR_NET_WORK_INTERRUPT超时未检测到有效输入
ResultCode.ERROR_IO_EXCEPTION音频文件写入流发生异常
ResultCode.ERROR_ASR_INTERRUPTASR识别中断
ResultCode.ERROR_ASR_NO_MATCHASR识别失败,一般是语音不清晰
ResultCode.ERROR_UN_KNOW未知错误
ResultCode.ERROR_IMG_SIZE图片超过1.0m
ResultCode.ERROR_FILE_PATH文件路径不对
ResultCode.ERROR_AUDIO_TIME_OVER音频文件时常超过60s
ResultCode.ERROR_LANG_NOT_SUPPORT所选语种不支持
ResultCode.ERROR_NOT_INITasr引擎未初始化
ResultCode.ERROR_NOT_SUPPORT_TTS所选语种不支持tts

2.文本翻译

mtClient.textMt(content, new MtResultEvent());

content:需要翻译的文本内容,最长不可超过5000字符;

MtResultEvent:文本翻译结果的回调类;

onMtResult(TextResult result):翻译无论成功还是失败都会回调onMtResult方法,result是结果的包装体,通过result.resultCode获取翻译结果的状态;

result.transText就是翻译成功后的译文结果。

3.图片翻译

说明:目前图片翻译,尽量保持图片上的文字和图片方向一致。

mtClient.imageMt(imageFilePath,new FileMtResultEvent());

imageFilePath:图片文件的绝对路径。注意图片大小不可超过1.0M;

FileMtResultEvent:图片翻译的回调;

onFileUploadProgress(int progress):图片上传进度回调;

onFileMtStart():图片上传成功后,识别开始的回调;

onMtResult(ImageResult result):识别完成的结果,result是原文和译文每一句话一一对照的结果列表。其中包含每一句话的在图片上的坐标位置,以图片的左上角为原点(0,0)。(便于用户可以在原图上进行译文的绘制)

4.语音文件翻译

说明:语音文件(wav)在进行翻译时,会实时识别语音成对应的文字,并且会自动断句。断句后会立刻进行该句的翻译,翻译成功后会将本句的译文进行语音合成为mp3音频文件并保存在设置好的目录下。

mtClient.setAudioFilePath(“译文合成的语音mp3文件路径”)
mtClient.audioMt(audioFilePath,new AudioMtResultEvent());

audioFilePath:源语音文件的绝对路径。注意文件格式为wav,时长不可超过60s;

AudioMtResultEvent:语音文件翻译的回调;

onRecognizing(AudioResult.AudioMt audioResult):语音文件识别的实时结果,也就是当前正在识别的那一句话的中间结果。audioResult.srcText为当前的原文实时文本;

onTranslated(AudioResult.AudioMt audioResult):识别到完整句子的时候的回调。audioResult.srcText该完整句子的原文,audioResult.transText该完整句子对应的译文;

onTranslatedAudio(AudioResult.AudioMt audioResult):识别到的完整句子的 译文成功合成语音后的回调。audioResult.srcText该完整句子的原文,audioResult.transText该完整句子对应的译文,audioResult.audioFilePath合成 的译文语音文件的路径;

onMtResult(AudioResult result):源语音文件识别翻译合成完成后的整体回调,result包含所有完整句子的结果列表。

5.语音实时翻译

说明:语音实时翻译是采集用户手机麦克风的声音,进行实时语音识别和即时翻译,即使是当前一句话非完整状态时也会进行翻译。

mtClient.startAudioTranslation(new AudioTranslatedCallback());//开始翻译
mtClient.stopAudioTranslation();//结束翻译

AudioTranslatedCallback:

onStart():实时语音翻译启动成功,此时麦克风已经开始采集用户声音了;

onRecognizing(AsrText srcResult, AsrText tarResult):实时识别到的中间原文和实时翻译到的译文结果;

onTranslated(AsrText srcResult, AsrText tarResult):完整句子的原文和译文结果,类似上面的语音文件翻译;

onError(int errorCode, String result):翻译出错,result是ResultCode类枚举名称,类似ERROR_NET_WORK_INTERRUPT等;

onStop():成功停止了语音翻译。

注:想要了解详细情况请访问语到开放平台

如果您有任何疑问,请联系asa.zhang@transn.com、james.li@transn.com、jane.dong@transn.com