/**
* LfasrSDKDemo.Class
*/
package com.iflytek.lfasr.demo;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.iflytek.msp.lfasr.LfasrClient;
import com.iflytek.msp.lfasr.model.Message;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
public class LfasrSDKDemo {
private static final String APP_ID = "可用id";
private static final String SECRET_KEY = "对应的secret key";
//音频文件路径
//1、绝对路径:"C:/Users/WJL/Desktop/Java_lfasr4.1/target/classes/audio/lqh.mp3"
//2、相对路径:./resources/audio/lfasr.mp3
//3、通过classpath:
private static final String AUDIO_FILE_PATH = LfasrSDKDemo.class.getResource("/").getPath()+"/audio/lfasr.mp3";
public static void main(String[] args) throws InterruptedException {
standard();
//businessExtraParams();
}
/**
* 标准用法
*/
private static void standard() throws InterruptedException {
//1、创建客户端实例
LfasrClient lfasrClient = LfasrClient.getInstance(APP_ID, SECRET_KEY);
//2、上传
Message task = lfasrClient.upload(AUDIO_FILE_PATH);
String taskId = task.getData();
System.out.println("转写任务 taskId:" + taskId);
//3、查看转写进度
int status = 0;
while (status != 9) {
Message message = lfasrClient.getProgress(taskId);
JSONObject object = JSON.parseObject(message.getData());
status = object.getInteger("status");
System.out.println(message.getData());
TimeUnit.SECONDS.sleep(2);
}
//4、获取结果
Message result = lfasrClient.getResult(taskId);
System.out.println("转写结果: \n" + result.getData());
//退出程序
System.exit(0);
}
从结果来看,转化正确率100%
/**
* 有业务需求
* 设置参数
* @throws InterruptedException e
*/
private static void businessExtraParams() throws InterruptedException {
//1、创建客户端实例
LfasrClient lfasrClient = LfasrClient.getInstance(APP_ID, SECRET_KEY);
//2、上传
//2.1、设置业务参数
Map<String, String> param = new HashMap<>(16);
//是否开启分词:默认 false
//param.put("has_participle","true");
//转写结果中最大的候选词个数:默认:0,最大不超过5
//param.put("max_alternatives","2");
//是否开启角色分离:默认为false
//param.put("has_seperate","true");
//发音人个数,可选值:0-10,0表示盲分:默认 2
//param.put("speaker_number","3");
//角色分离类型 1-通用角色分离;2-电话信道角色分离:默认 1
//param.put("role_type","1");
//语种: cn-中文(默认);en-英文(英文不支持热词)
param.put("language", "cn");
//垂直领域个性化:法院-court;教育-edu;金融-finance;医疗-medical;科技-tech
//param.put("pd","finance");
Message task = lfasrClient.upload(
AUDIO_FILE_PATH
, param);
String taskId = task.getData();
System.out.println("转写任务 taskId:" + taskId);
//3、查看转写进度
int status = 0;
while (status != 9) {
Message message = lfasrClient.getProgress(taskId);
JSONObject object = JSON.parseObject(message.getData());
status = object.getInteger("status");
System.out.println(message.getData());
TimeUnit.SECONDS.sleep(2);
}
//4、获取结果
Message result = lfasrClient.getResult(taskId);
System.out.println("转写结果: \n" + result.getData());
//退出程序
System.exit(0);
}