目录

Android


一 产品介绍/快速入门

AI面签通过机器人提问的形式取代真实的坐席,从【签里眼视频面签SaaS管理系统】抓取预先配置好的话术流程,基于客户的业务需求,通过TTS和ASR相关技术,进行问题提问和语义解析,并根据客户的回答内容进行判断以及后续流程节点的流转提问来实现整个面签过程的去人工化和自动化,并将全过程进行音视频录制留存。

实现的相关功能点如下:

            ✔ 音视频通话

            ✔ 云端录制

            ✔ 活体人脸核身

            ✔ ASR语义解析

            ✔ TTS语音合成

            ✔ 防出框比对

            ✔ 动态话术配置(含证件托举)

            ✔ 合同签名

二开发者手册

1. 请联系相关商务人员开通租户权限,获取【企业账号】。

1. (按需提供)发起人脸识别需要姓名、证件号、大头照的base64(可有可无)。如果业务系统已经有了人脸识别,需要提供人脸识别的结果和大头照的base64。

2. 需要在【签里眼视频面签SaaS管理系统】进行话术等相关数据配置,生成话术获取到话术ID

三接口开发手册

3.1 build.gradle配置

在app目录下的build.gradle文件中android块中配置相关的sourceSets标签,如果没有使用该标签则新增,代码如下

sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}

dependencies {
    implementation files('libs\\newlibrary-release.aar')
    implementation files('libs\\libspinner.aar')
    implementation files('libs\\loadLibrary.aar')
    implementation 'androidx.multidex:multidex:2.0.1'
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'com.qianwen:okhttp-utils:3.8.0'
    implementation 'com.squareup.okhttp3:okhttp:4.0.1'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.4.0-RC1'
    implementation 'com.squareup.retrofit2:retrofit:2.0.2'
    implementation 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
    implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
    implementation 'io.reactivex:rxandroid:1.1.0'
    implementation 'io.reactivex:rxjava:1.1.3'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'com.github.yalantis:ucrop:2.2.4'
    implementation 'com.google.android.material:material:1.0.0-rc01'
    implementation 'com.github.vondear:RxTools:v1.7.8.1'
    implementation 'com.tbruyelle.rxpermissions:rxpermissions:0.9.4@aar'
    implementation 'org.greenrobot:greendao:3.2.2'
    implementation 'com.qianwen:update-app:3.5.2'
    implementation files('libs\\WbCloudFaceReflectLiveSdk-v2.1.91-09c9fe1.aar')
    implementation files('libs\\WbCloudNormal-v4.0.0-9267e3d.aar')
}

如果有android.V4包冲突,请删除本项目中V4包的引用,升级为androidX中对应的引用更换为

implementation 'androidx.appcompat:appcompat:1.1.0'

3.2权限声明

添加权限声明到AndroidManifest.xml文件


<!-- 为了能使用OpenGLES 2.0 API,你必须在你的manifest中添加以下声明: -->
     <uses-feature android:glEsVersion="0x00020000" android:required="true" />
     <!-- 如果你的应用要使用纹理压缩功能,你必须还要声明设备需要支持什么样的压缩格式 -->
     <supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" />
     <supports-gl-texture android:name="GL_OES_compressed_paletted_texture" />
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.RECORD_AUDIO" />
     <uses-permission android:name="android.permission.RECORD_VIDEO" />
     <uses-permission android:name="android.permission.CAMERA" />
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />


3.2.1 开发环境中设置的compileSdkVersion高于23(Android6.0)时以上时,请注意添加相机,录音和内部存储空间的动态权限

     Manifest.permission.CAMERA
     Manifest.permission.RECORD_AUDIO
     Manifest.permission.WRITE_EXTERNAL_STORAGE
     Manifest.permission.READ_PHONE_STATE

3.2.2 检查是否开启动态权限


/** 查看是否权限 返回值为true代表权限已经全部开启**/
     public boolean checkPermission(String... permissions) {
        //如果android版本低于Android6.0,默认为开启权限(无危险权限)
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return true;
        PackageManager pm = contextWeakReference.get().getPackageManager();
        for(String permission : permissions) {
           if (PackageManager.PERMISSION_GRANTED !=
           pm.checkPermission(permission, contextWeakReference.get().getPackageName())) {
           return false;
           }
        }
        return true;
     }


3.2.3 添加缺省的动态权限


 / **  获取需要申请权限的列表 ** /
     private List<String> findDeniedPermissions(String[] permissions) {
        List<String> needRequestPermissionList = new ArrayList<>();
        for (String perm : permissions) {
            if (ContextCompat.checkSelfPermission(contextWeakReference.get(), perm)!=PackageManager.PERMISSION_GRANTED) {
               needRequestPermissionList.add(perm);
            } else {
               if (ActivityCompat.shouldShowRequestPermissionRationale(activityWeakReference.get(), perm)) {
                  needRequestPermissionList.add(perm);
               }
            }
         }
         return needRequestPermissionList;
     }


3.3 集成sdk Library

将sdk library集成到 本SDK 依赖到项目