快速开始
警告
SDK 支持 arm64-v8a。
环境配置
SDK 使用以下编译参数:
- minSdk: 21
- targetSdk: 31
- compileSdk: 31
集成 SDK
- SDK 以 .aar 文件 的形式提供。下载后,请将其放入应用的
libs目录中,并在app/build.gradle中添加以下内容:
implementation fileTree(include: [ '*.jar' , '*.aar' ], dir: 'libs' )
- 声明权限:
<uses-permission android:name="android.permission.INTERNET" />
直接使用变声引擎
- 创建引擎实例。 此步骤仅创建实例,不会加载变声所需的资源。
val engine = DubbingEngine.EngineConfig(this)
.enableLog() // 打印日志
.enableTransformLog() // 打印变声日志
.token("xxx")
.sampleRate(mSampleRate) // 输入采样率,例如 48000
.engineCallback(object : DubbingCallback {
override fun onDownload(percent: Int, index: Int, count: Int) {
val str = "正在下载资源: $index / $count $percent %"
}
override fun onActionResult(action: DubbingAction, code: DubbingEngineCode, msg: String?) {
Toast.makeText(
context,
"${action.name} : $code ${msg ?: ""}",
Toast.LENGTH_SHORT
).show()
}
})
.build()
- 准备引擎资源。 该操作较为耗时,完成后会通过回调通知。
engine.prepare()
- 启动变声工作线程 并初始化引擎。
val success = action == DubbingAction.PREPARE && code == DubbingEngineCode.SUCCESS
- 获取音色列表。
engine.getVoiceList()
- 设置音色。
engine.setVoice(voice.id)
- 启动变声。
engine.start()
- 停止变声。
engine.stop()
- 语音变换。
engine.transform(data)
- 释放引擎。
engine.releaseEngine()
自采集 / 播放 / 文件转换
val bufferSize = sampleRate / 100 * 16 * bytes * channels