开发者接入指南

1. 开发者注册

登录中国移动开发者社区注册成为开发者

1.1 开发者注册流程

1.2 企业开发者注册流程


2. 应用接入

2.1 创建应用

开发者账号创建后,开发者社区将给您的注册邮箱发一封账号激活邮件,开发者通过邮箱激活账号并登录中国移动开发者社区。

在“管理中心”-“应用维护”中创建应用,点击能力配置,如下图


查看接口调用需要的AppID和AppKey,如下图。

添加“语音情感识别能力”,如下图。


3. 接口调用

HTTP请求url: http://dev.10086.cn/speechemo/emotion.ashx

HTTP请求方式: POST,有4个参数,请见下述说明。

3.1 接口请求参数说明

参数 参数类型 是否必填 说明
action string 填写"emo"
AppID string 调用接口的应用ID
AppKey string 调用接口的应用Key
Base64String string Wav文件转Base64格式的字符串

3.2 接口调用示例

c#代码:

      	string url = " http://dev.10086.cn/speechemo/emotion.ashx";
        string Base64String = Convert.ToBase64String(File.ReadAllBytes(@"D:\软件项目\HMS\EmoSDK\SZ23233.wav"));
        string param = "action=emo&AppID=312312345&AppKey=41351231671231231231312389&Base64String=" + Base64String;
        string result = CommonUtil.HttpHelper.Post(url, param);
        Response.Write(result);
      

返回结果result样例:

{"success":true,"code":0,"message":{"MainEmotionString":"平静","MainSexString":"男","MainYearString":"青年","AvgEnergy":516.39,"AvgYuSu":2.78,"AvgQingShang":55.53}}

3.3 接口返回参数说明

返回值为json格式字符串,如:

{"success":true,"code":0,"message":{"MainEmotionString":"平静","MainSexString":"男","MainYearString":"青年","AvgEnergy":516.39,"AvgYuSu":2.78,"AvgQingShang":55.53}}

返回参数 参数类型 说明
success bool true为调用成功,false为调用失败
code int 返回代码,0为正常,其它不正常,详见三、返回参数code说明
message string 调用成功或失败时提示的消息,当success为true时,message为语音情感识别的结果(json字符串)

3.4 返回参数code说明

状态码 说明
0 正常
1 登录失败,帐号或用户名不正确
2 参数不能为空
3 音量太小,无法识别
4 噪音过大,无法识别
-1 其它错误,错误内容查看message

3.5 识别结果参数说明

返回值为json格式字符串,如:

{"success":true,"code":0,"message":{"MainEmotionString":"平静","MainSexString":"男","MainYearString":"青年","AvgEnergy":516.39,"AvgYuSu":2.78,"AvgQingShang":55.53}}

返回参数 参数类型 说明
MainEmotionString string 值的范围为:喜、怒、哀、惧、平静
MainSexString string 值的范围为:男、女
MainYearString string 值的范围为:老年、中年、青年
AvgEnergy double 音量
AvgYuSu double 语速,单位为个字/秒
AvgQingShang double 情熵,代表情感的丰富程度,越高代表情感越丰富

3.6 后台Post方法代码

附示例中HttpHelper.Post方法代码,供参考:

         /// <summary>
        /// Post请求
        /// </summary>
        /// <param name="url">请求地址</param>
        /// <param name="param">参数</param>
        /// <param name="onComplete">完成后执行的操作(可选参数,通过此方法可以获取到HTTP状态码)</param>
        /// <returns>请求返回的结果</return>
        public static string Post(string url, string param, Action<HttpStatusCode, string> onComplete = null)
        {
            byte[] bufferBytes = Encoding.UTF8.GetBytes(param);

            var request = WebRequest.Create(url) as HttpWebRequest;//HttpWebRequest方法继承自WebRequest, Create方法在WebRequest中定义,因此此处要显示的转换
            request.Method = "POST";
            request.ContentLength = bufferBytes.Length;
            request.ContentType = "application/x-www-form-urlencoded";

            try
            {
                using (var requestStream = request.GetRequestStream())
                {
                    requestStream.Write(bufferBytes, 0, bufferBytes.Length);
                }
            }
            catch (WebException ex)
            {

                return ex.Message;
            }

            return HttpRequest(request, onComplete);
        }