首先需要到科大讯飞官网开发者控制台创建一个应用,创建成功后获得服务接口认证信息,我们只需用到其中的AppID。
其次需要下载自己的SDK,一些小伙伴非常擅长在网上找资源,把别人的拿过来,然后发现调用不起来,注意一定要下载自己的SDK使用,因为其中的AppID是对应的。
将SDK导入到Unity工程中,在bin文件夹下可以看到dll动态库,我们在脚本中使用DllImport调用动态库中的接口。
封装MSCDLL类:
代码语言:javascript复制using System;
using System.Runtime.InteropServices;
public class MSCDLL
{
#region msp_cmn.h 通用接口
/// <summary>
/// 初始化msc 用户登录 user login.
/// 使用其他接口前必须先调用MSPLogin,可以在应用程序启动时调用
/// </summary>
/// <param name="usr">user name. 此参数保留 传入NULL即可</param>
/// <param name="pwd">password. 此参数保留 传入NULL即可</param>
/// <param name="parameters">parameters when user login. 每个参数和参数值通过key=value的形式组成参数对,如果有多个参数对,再用逗号进行拼接</param>
/// 通用 appid 应用ID: 于讯飞开放平台申请SDK成功后获取到的appid
/// 离线 engine_start 离线引擎启动: 启用离线引擎 支持参数: ivw:唤醒 asr:识别
/// 离线 [xxx]_res_path 离线引擎资源路径: 设置ivw asr引擎离线资源路径
/// 详细格式: fo|[path]|[offset]|[length]|xx|xx
/// 单个资源路径示例: ivw_res_path=fo|res/ivw/wakeupresource.jet
/// 多个资源路径示例: asr_res_path=fo|res/asr/common.jet;fo|res/asr/sms.jet
/// <returns>return 0 if sucess, otherwise return error code. 成功返回MSP_SUCCESS,否则返回错误代码</returns>
[DllImport("msc_x64", CallingConvention = CallingConvention.StdCall)]
public static extern int MSPLogin(string usr, string pwd, string parameters);
/// <summary>
/// 退出登录 user logout.
/// 本接口和MSPLogin配合使用 确保其他接口调用结束之后调用MSPLogout,否则结果不可预期
/// </summary>
/// <returns>如果函数调用成功返回MSP_SUCCESS,否则返回错误代码 return 0 if sucess, otherwise return error code.</returns>
[DllImport("msc_x64", CallingConvention = CallingConvention.StdCall)]
public static extern int MSPLogout();
/// <summary>
/// 用户数据上传 upload data such as user config, custom grammar, etc.
/// </summary>
/// <param name="dataName">数据名称字符串 should be unique to diff other data.</param>
/// <param name="data">待上传数据缓冲区的起始地址 the data buffer pointer, data could be binary.</param>
/// <param name="dataLen">数据长度(如果是字符串,则不包含'