本文档将详细指导开发者如何在Cocos Creator和Android环境中集成和使用MediaTek端侧大模型SDK,以便在应用中实现高效的文本生成、图像生成和语音识别功能。

开发环境

SDK及模型的下载地址:https://download.cocos.org/CocosPersona/GenAI/GenAi_SDK.zip

安卓文件配置下载地址:https://download.cocos.org/CocosPersona/GenAI/GenAI_Android.zip

Cocos工程下载地址:https://download.cocos.org/CocosPersona/GenAI/GenAi_CocosProject.zip

 

Cocos Creator 集成指南

步骤1:SDK管理脚本集成

在Cocos Creator项目中集成SDK,首先需要创建一个用于调用本地功能的管理类。以下是一个基本的SDK管理脚本示例,包括文本生成、图像生成和语音识别功能。

创建 GenAiMgr.ts 文件

在Cocos项目的合适位置创建一个新的TypeScript文件 GenAiMgr.ts,并添加以下内容:

import { _decorator, Component, native, Node, sys } from 'cc';

export class GenAiMgr {

// 文本生成函数

static genText(prompt: string) {

if (sys.os !== sys.OS.ANDROID || !sys.isNative) return;

native.bridge.sendToNative('mtkGenText', prompt);

}

// 图像生成函数

static genImage(prompt: string) {

if (sys.os !== sys.OS.ANDROID || !sys.isNative) return;

native.bridge.sendToNative('mtkGenImage', prompt);

}

// 开始语音识别

static startAsr() {

if (sys.os !== sys.OS.ANDROID || !sys.isNative) return;

native.bridge.sendToNative('mtkStartAsr');

}

// 结束语音识别

static endAsr() {

if (sys.os !== sys.OS.ANDROID || !sys.isNative) return;

native.bridge.sendToNative('mtkEndAsr');

}

}

步骤2:控制脚本实现

创建一个控制脚本,作为AI功能的调用入口。

创建 GenAiCtrl.ts 文件

在项目中创建一个新的TypeScript文件 GenAiCtrl.ts,用于管理从UI到SDK的所有调用:

import { _decorator, native, Node, sys } from 'cc';

import { GenAiMgr } from './GenAiMgr';

class GenAiCtrl {

// 异步调用AI回复生成

async genAiReply(question: string): Promise<void> {

if (sys.os !== sys.OS.ANDROID || !sys.isNative) return;

GenAiMgr.genText(question);

}

}

const genAICtrl = new GenAiCtrl();

export default genAICtrl;

步骤3:在项目中使用控制脚本

在你的项目逻辑中调用 genAiCtrl.genAiReply 方法来触发文本生成。确保在合适的UI组件或逻辑脚本中引用并使用 genAICtrl。

 

Android 端集成指南

步骤1:引入依赖

将提供的 mtklibrary-release-sd-qw2-1.5.aar 文件放入Android项目的 libs 文件夹中,并在 build.gradle 文件中添加以下依赖:

dependencies {

implementation files('libs/mtklibrary-release-sd-qw2-1.5.aar')

}

并配置PROP_MIN_SDK_VERSION=26

步骤2:配置 AndroidManifest.xml

在 AndroidManifest.xml 中添加所需库的使用说明:

<uses-native-library android:name="libapuwareutils_v2.mtk.so" android:required="false"/>

<uses-native-library android:name="libapuwareutils.mtk.so" android:required="false"/>

<uses-native-library android:name="libtflite_mtk.mtk.so" android:required="false"/>

<uses-native-library android:name="libneuronusdk_adapter.mtk.so" android:required="false"/>

步骤3:安装大模型和SD DLA 文件

通过ADB把文件夹下面的sd和llm_sdk 拷贝到手机的/data/local/tmp/目录下,也可以使用工具包内的install.bat/install.sh 脚本安装。

步骤4:实现Java端控制脚本

在Android Java代码中,创建一个类来管理与Cocos通过JsbBridge通信的逻辑。

创建 GenAiHelper.java 文件, 可以参考template模板里的案例

在适当的包下创建 GenAiHelper.java,并实现以下功能:

/**

* Initializes the GenAiHelper by setting up the JsbBridge callback.

* 通过设置 JsbBridge 回调来初始化 GenAiHelper。

*/

public static void init() {

JsbBridge.setCallback(new JsbBridge.ICallback() {

@Override

public void onScript(String arg0, String arg1) {

if (arg0.equals("mtkGenText")) {

genText(arg1);

} else if (arg0.equals("mtkGenImage")) {

genImage(arg1, 18);

} else if (arg0.equals("mtkStartAsr")) {

AbilityManager.ins().stopTTS();

AbilityManager.ins().startAsr();

} else if (arg0.equals("mtkEndAsr")) {

AbilityManager.ins().endAsr();

}

}

});

}

/**

* Generates text based on the provided prompt and handles the response.

* 根据提供的提示生成文本并处理响应。

*

* @param prompt The input prompt for text generation.

*/

public static void genText(String prompt) {

mtkGenText(prompt, response -> {

GenAiManager.createReplay(response);

AbilityManager.ins().speechText(response);

});

}

/**

* Generates an image based on the provided prompt and handles the image data.

* 根据提供的提示生成图像并处理图像数据。

*

* @param prompt The input prompt for image generation.

* @param step The number of steps for image generation.

*/

public static void genImage(String prompt, int step) {

mtkGenImage(prompt, step, imageData -> {

String base64Data = Base64.encodeToString(imageData, Base64.NO_WRAP);

GenAiManager.createImage(base64Data);

});

}

步骤5:初始化SDK

在您的主 Activity 或应用入口处调用 GenAiHelper.init() 来初始化SDK。

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

GenAiHelper.init();

}

}

通过遵循以上步骤,您可以在Cocos和Android环境中成功集成并使用MediaTek端侧大模型SDK,从而在您的应用中实现复杂的AI功能。

 

CPU检测

目前项目支持天玑9400系列处理器,可以使用genAiHelper 内提供的方法检测是否是天玑9400系列处理器。

/**

* Checks if the device's CPU is MediaTek (MTK) 9400.

* 检查设备的 CPU 是否为 MediaTek (MTK) 9400。

*

* @return true if the CPU is MTK 9400, false otherwise.

*/

public static boolean isMtkCpu9400() {

String cpuModel = getCpuModel();

return cpuModel != null && cpuModel.contains("mt6991");

}

/**

* Retrieves the CPU model of the device.

* 获取设备的 CPU 型号。

*

* @return The CPU model, or null if it cannot be determined.

*/

public static String getCpuModel() {

String cpuModel = null;

try {

cpuModel = Build.HARDWARE;

} catch (Exception e) {

e.printStackTrace();

}

return cpuModel;

}

超频控制:

可以使用cpuBoost启动,默认是关闭的。

// 1: 开启,0:关闭

MtkQw.cpuBoost(1);

 

天玑生成式AI功能目前支持天玑8300、8400、9300、9400。本案暂仅支持天玑9400;天玑8300、8400、9300可通过天玑NeuroPilot文档指导实现,详情请联系支持团队mdc@mediatek.com