Android 架构 JAVA API,灵云SDK开发手册(Java API)

司马英才
2023-12-01

1. 兼容性

支持Android 2.1 及以上系统。

支持arm、arm-v7a、x86架构处理器。

2. 开发环境搭建

开发者可以自行选择Android开发环境,下面主要是针对Eclipse开发环境下进行编写的。

1) 安装JDK

编者采用的版本是jdk1.6.0_20,开发者可以从以下Oracle 官网下载所需的版本:http://www.oracle.com/technetwork/java/javase/downloads/index.html

2) 安装Eclipse Java IDE

编者采用的版本是Eclipse3.4,开发者可以从以下官网下载所需的版本:http://www.eclipse.org/

3) 安装Android SDK

编者采用的版本是Android 2.2,开发者可以去从以下Android 官方网站下载所需的版本:http://developer.android.com/sdk/

4) 安装ADT插件

启动Eclipse后,点击Eclipse的 Help->soft update->find and install->search for new features to install->new remote site->name: https://dl-ssl.google.com/android/eclipse/,完成安装后重启Eclipse;

5) 安装Android DDMS和Android Development Tools

至此,您已经完成了Android开发环境的搭建,更多Android了解请参考SDK的开发指导文档。

3. 引入SDK文件

在开发应用前,需要将灵云SDK中的Jar包文件(.jar)和相应的动态运行库(.so)引入到工程中。

1) 在工程中创建libs文件夹,将相应的jar文件拷贝到libs根目录下,将相应的so文件拷贝到libs\armeabi(或libs\armeabi-v7a)目录下。

2) 通过菜单 Project->Properties->Java Build Path->Libraries->Add JARS或ADD External JARS引入相应的Jar包。

具体需要引入的文件和开发者所需要使用的能力有关。

3.1 ASR能力

jar包文件

hcicloud-5.0.0.jar

so文件

必选模块

libstlport_shared.so

libhci_curl.so

libhci_sys.so

libhci_sys_jni.so

libhci_asr.so

libhci_asr_jni.so

云端识别

libhci_asr_cloud_recog.so

libjtspeex.so 或者 libjtopus.so (根据所使用的编解码格式进行选择)

本地语法识别

libhci_asr_local_recog.so

本地资源文件:

使用本地语音识别能力,需要相应的资源文件。具体可参照 ASR能力描述 进行选择。

使用ASR录音机,需要增加 jar包文件

hcicloud_recorder-5.0.0.jar

3.2 TTS能力

jar包文件

hcicloud-5.0.0.jar

so文件

必选模块

libstlport_shared.so

libhci_curl.so

libhci_sys.so

libhci_sys_jni.so

libhci_tts.so

libhci_tts_jni.so

云端合成

libhci_tts_cloud_synth.so

libjtspeex.so 或者 libjtopus.so (根据所使用的编解码格式进行选择)

本地合成

libhci_tts_local_synth.so

libhci_tts_local-v5_synth.so(不支持VFP选项适配版本)

本地资源文件:

使用本地语音合成能力,需要相应的资源文件。具体可参照 TTS能力描述 进行选择。

使用TTS播放器,需要增加 jar包文件

hcicloud_player-5.0.0.jar

3.3 HWR能力

jar包文件

hcicloud-5.0.0.jar

so文件

必选模块

libstlport_shared.so

libhci_curl.so

libhci_sys.so

libhci_sys_jni.so

libhci_hwr.so

libhci_hwr_jni.so

云端识别

libhci_hwr_cloud_recog.so

本地识别

libhci_hwr_local_recog.so

联想功能

libhci_hwr_associate.so

拼音功能

libhci_hwr_pinyin.so

笔形功能

libhci_hwr_penscript.so

本地资源文件:

使用本地手写识别能力,需要相应的资源文件。具体可参照 HWR能力描述 进行选择。

3.4 OCR能力

jar包文件

hcicloud-5.0.0.jar

so文件

必选模块

libstlport_shared.so

libjtz.so

libhci_curl.so

libhci_sys.so

libhci_sys_jni.so

libhci_ocr.so

libhci_ocr_jni.so

云端识别

libhci_ocr_cloud_recog.so

本地识别

libhci_ocr_local_recog.so

本地模板识别

libhci_ocr_local_recog_template.so

本地名片识别

libhci_ocr_local_recog_bizcard.so

本地资源文件:

使用本地光学字符识别能力,需要相应的资源文件。具体可参照 OCR能力描述 进行选择。

如果使用拍图器,需要增加 jar包文件

hcicloud_capture-5.0.0.jar

3.5 MT能力

jar包文件

hcicloud-5.0.0.jar

so文件

必选模块

libstlport_shared.so

libhci_curl.so

libhci_sys.so

libhci_sys_jni.so

libhci_mt.so

libhci_mt_jni.so

云端识别

libhci_mt_cloud_trans.so

本地识别(暂不支持)

libhci_mt_local_trans.so

3.6 NLU能力

jar包文件

hcicloud-5.0.0.jar

so文件

必选模块

libstlport_shared.so

libhci_curl.so

libhci_sys.so

libhci_sys_jni.so

libhci_nlu.so

libhci_nlu_jni.so

云端识别

libhci_nlu_cloud_recog.so

本地识别(暂不支持)

libhci_nlu_local_recog.so

3.7 KB能力

jar包文件

hcicloud-5.0.0.jar

so文件

必选模块

libstlport_shared.so

libhci_curl.so

libhci_sys.so

libhci_sys_jni.so

libhci_kb.so

libhci_kb_jni.so

云端识别(暂不支持)

libhci_kb_cloud_recog.so

本地识别

libhci_kb_local_recog.so

3.8 VPR能力

jar包文件

hcicloud-5.0.0.jar

so文件

必选模块

libstlport_shared.so

libhci_curl.so

libhci_sys.so

libhci_sys_jni.so

libhci_vpr.so

libhci_vpr_jni.so

云端识别

libhci_vpr_cloud_recog.so

libjtspeex.so 或者 libjtopus.so (根据所使用的编解码格式进行选择)

3.9 VPR能力

jar包文件

hcicloud-5.0.0.jar

so文件

必选模块

libstlport_shared.so

libhci_curl.so

libhci_sys.so

libhci_sys_jni.so

libhci_fpr.so

libhci_fpr_jni.so

云端识别

libhci_fpr_cloud_recog.so

本地识别

libhci_fpr_local_recog.so

3.10 注意

如果能确认终端支持硬浮点 (armv7a以上CPU)版本sdk,可以使用armeabi-v7a目录替代armeabi目录, 并拷贝SDK中armeabi-v7a目录下的.so文件,这样速度会更快。SDK的armeabi-v7a目录中不存在的so文件需从armeabi目录拷贝。

armeabi和armeabi-v7a两个目录也可以都存在,在apk包安装时会自动根据终端的CPU架构进行安装最合适的库, 但是这样会造成apk包较大。

libjtopus.so是opus编码库,libjtspeex.so是speex编码库,仅在使用云端ASR或者TTS时候用于音频压缩。 应用可以根据需要的编码方式(请参 音频编解码库 ),选择其中合适的编码库,这样可以减少应用包的大小.

4. 配置Manifest

在工程AndroidManifest.xml文件中添加如下权限:

5. 本地资源文件

当使用本地能力时,需要在本地存放资源文件。并在能力初始化时通过指定dataPath告知资源所在路径。

每种本地能力,所需要的资源文件并不相同,在实际使用时,可以只拷贝所使用能力对应的资源文件, 这样可以减少所占用的外部存储空间。具体每种本地能力所需要的本地资源文件,请参见 能力列表 。

本地资源文件的存放有如下两种方法。

5.1 存放在外部存储上

此种方式是将资源文件存放在外部存储上,在能力初始化时指定dataPath参数为资源文件的存放目录。 以/mnt/sdcard/HciCloudTtsPlayerExample/tts/data目录为例,其下存放了本地能力(tts.local.xiaokun)所需要的TTS资源文件:

XiaoKun.voclib

Letter_XiaoKun.voclib

开发者可以将这些库文件作为assets中的资源,并在程序启动时拷贝到外部存储上;也可以在发布时不带这些资源文件, 而是在运行时让用户下载到外部存储上。

如果外部存储发生故障(例如sd卡被拔出),则可能会影响对应本地能力的正常使用。

5.2 存放在内部存储上

为了便于应用的发布与管理,灵云SDK也支持将本地资源文件随应用安装在内部存储上, 但此种存放方法需要开发者满足以下要求,灵云SDK才能正常访问这些资源文件:

1) 对资源文件进行特殊命名。以本地能力(tts.local.xiaokun)所需要的TTS资源文件为例,以下示例了这种命名规则:

libXiaoKun.voclib.so(在原文件名前加lib前缀与.so后缀)

libLetter_XiaoKun.voclib.so(在原文件名前加lib前缀与.so后缀)

2) 将重新命名过的本地资源文件拷贝到libs根目录下。

3) 在能力初始化时,指定dataPath参数为 /data/data/appname/lib (appname为应用包的名称)

4) 在能力初始化时,指定fileFlag参数为android_so(默认为none)

所有需要的本地资源文件都需要按以上规则进行名字的改动,并拷贝到libs目录下。 通过这种方式,这些资源文件会被打包在APK中,并在安装时,被放在 /data/data/appname/lib 下。 通过指定fileFlag为android_so,灵云SDK就会按照特殊的命名方式来读取这些文件。

 类似资料: