使用说明
本文介绍如何在你的项目中集成和使用云上曲率实时语音转写&翻译(多语种)插件(以下简称云上曲率转写及翻译插件)。
技术原理
云上曲率转写及翻译插件是对云上曲率实时语音识别和实时翻译核心 API 的封装。通过声网 SDK v4.x 提供的 setExtensionProperty
方法,传入指定的 key
和 value
参数,你可以快速集成云上曲率的实时语音转写和翻译能力。
setExtensionProperty
方法的 key
参数与云上曲率的 API 名称完全对应,value
参数以 JSON 格式包装该 API 的部分或全部参数。因此,调用该方法时只要传入指定的 key
和 value
,就可以调用对应的云上曲率 API,实现实时语音转写和翻译的有关功能。
前提条件
Android 开发环境需满足以下要求:
- Android Studio 4.1 以上版本。
- 运行 Android 5.0 或以上版本的真机(非模拟器)。
示例项目
云上曲率转写及翻译插件提供了 GitHub 示例项目,你可以前往克隆或下载并进行体验。
平台 | 语言 | 示例代码 |
---|---|---|
Android | Java | rtvt-agora-marketplace |
iOS | Objective-C | rtvt-agora-marketplace |
运行步骤
参考以下步骤快速跑通示例项目:
-
克隆仓库:
Shellgit clone https://github.com/highras/rtvt-agora-marketplace.git
-
在 Android Studio 中打开示例项目。
-
将项目与 Gradle 文件同步。
-
连接一台 Android 真机(非模拟器),运行项目。
预期效果
运行成功后,示例项目会安装到你的设备上。按照如下步骤体验美化特效功能:
- 启动 App,在屏幕下方的输入框中填写频道名称,点击加入。成功加入频道后,加入按钮会变成离开按钮。
- 点击开始翻译,对着设备说话,你可以在屏幕上看到实时转写内容和翻译内容。
- 点击结束翻译,结束转写和翻译。
- 点击结束插件,停止使用插件。
集成和调用流程
1. 集成 SDK 和插件
开始前,你需要在项目中分别集成声网音频 SDK 和云上曲率转写及翻译插件。
1.1 集成声网音频 SDK
插件需要与 RTC SDK 搭配使用。参考以下文档集成 RTC SDK 并实现基础的音视频互动:
1.2 购买和激活插件
你需要进入声网控制台 > 云市场页面,按照提示购买云上曲率转写及翻译插件,保存好获取到的 appKey
和 appSecret
,后续初始化插件时需要用到。
1.3 集成插件
参考以下步骤集成插件:
-
进入声网控制台 > 云市场页面,下载云上曲率转写及翻译插件的 Android 插件包。解压后,将所有
.aar
文件保存到项目文件夹的/app/libs
路径。 -
打开
app/build.gradle
文件,在dependencies
中添加如下行:Javaimplementation fileTree(dir: "libs", include: ["*.jar", "*.aar"])
2. 启用插件
初始化 RtcEngine
时,调用 addExtension
加载插件,然后调用 enableExtension
启用插件。
RtcEngineConfig config = new RtcEngineConfig();
config.addExtension("agora-iLiveData-filter");
engine = RtcEngine.create(config);
engine.enableExtension("iLiveData", "RTVT", true);
3. 开始转写和翻译
调用 setExtensionProperty
指定 key
为 startAudioTranslation
,在 value
中以 JSON 格式传入 appKey
、appSecret
等参数。
JSONObject jsonObject = new JSONObject();
// 传入在声网控制台购买和激活插件后获取的 appKey
jsonObject.put("appKey", "80001000");
// 传入在声网控制台购买和激活插件后获取的 appSecret
jsonObject.put("appSecret", "qwerty");
// 传入源语言
jsonObject.put("srclang", "zh");
// 传入目标语言
jsonObject.put("dstLang", "en");
engine.setExtensionProperty(EXTENSION_VENDOR_NAME, EXTENSION_AUDIO_FILTER_VOLUME, "startAudioTranslation", jsonObject.toString());
4. 接收转写和翻译结果
初始化成功后,云上曲率转写及翻译插件会通过 onEvent
回调返回转写和翻译结果。返回结果的含义详见 onEvent 回调。
5. 结束使用插件
调用 setExtensionProperty
方法并指定 key
为 closeAudioTranslation
,结束云上曲率转写和翻译插件的使用。
engine.setExtensionProperty(EXTENSION_VENDOR_NAME, EXTENSION_AUDIO_FILTER_VOLUME, "closeAudioTranslation", "end");