科大讯飞音频转文字使用(Java)

/**
 * 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);
    }

猜你喜欢

转载自blog.csdn.net/wjl__ai__/article/details/110870854
今日推荐