java讯飞,百度录音转文字

1.讯飞语音转文字测试java’demo:直接下载讯飞官方文档SDk,官方demo导入项目编译就可以,是个maven项目
注意需要修改自己的ker scret等参数就可以,免费时长5个小时。

package com.iflytek.lfasr.demo;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.iflytek.msp.lfasr.LfasrClient;
import com.iflytek.msp.lfasr.model.Message;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

/**
 * <p>
 * Title : SDK 调用实例
 * </p>
 * <p>
 * Description :
 * </p>
 * <p>
 * Date : 2020/4/20
 * </p>
 *
 * @author : hejie
 */
public class LfasrSDKDemo {
	private static final String APP_ID = "在讯飞开发平台注册";
	private static final String SECRET_KEY = "在讯飞开发平台注册";

	// 音频文件路径
	// 1、绝对路径:D:\......\demo-3.0\src\main\resources\audio\lfasr.wav
	// 2、相对路径:./resources/audio/lfasr.wav
	// 3、通过classpath:
	// private static final String AUDIO_FILE_PATH =
	// LfasrSDKDemo.class.getResource("/").getPath()+"/audio/lfasr.wav";
	private static final String AUDIO_FILE_PATH = "E:\\讯飞语音\\audio\\95-125_1_30.mp3";
	private static final String AUDIO_FILE_PATH_61_92 = "E:\\讯飞语音\\audio\\61_92_1.mp3";

	/**
	 * 注意:同时只能执行一个 示例
	 *
	 * @param args
	 *            a
	 * @throws InterruptedException
	 *             e
	 */
	public static void main(String[] args) throws InterruptedException {
		// 示例-1:标准用法
		createFile("yuZw_61_92");
		standard();

		// 示例-2:使用扩展业务参数
		// businessExtraParams();

		// 示例-3:使用网络代理
		// netProxy();

		// 示例-4:使用性能调优参数
		// performance();
	}

	/**
	 * 简单 demo 样例
	 *
	 * @throws InterruptedException
	 *             e
	 */
	private static void standard() throws InterruptedException {
		// 1、创建客户端实例
		LfasrClient lfasrClient = LfasrClient.getInstance(APP_ID, SECRET_KEY);

		// 2、上传
		Message task = lfasrClient.upload(AUDIO_FILE_PATH_61_92);
		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());
		// 写入txt
		String msg = result.getData();
		if (msg.contains("onebest")) {
			JSONArray object = JSONArray.parseArray(msg);
			System.out.println("object:" + object);
			String onebestStr = object.getString(0);
			JSONObject objectonebest = JSON.parseObject(onebestStr);
			String onebest = objectonebest.getString("onebest");
			System.out.println("onebest:" + onebest);
			saveTxt(msg);
		}

		// 退出程序,关闭线程资源,仅在测试main方法时使用。
		System.exit(0);
	}

	/**
	 * 带有业务参数,调用样例
	 *
	 * @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());

		// 退出程序,关闭线程资源,仅在测试main方法时使用。
		System.exit(0);
	}

	/**
	 * 设置网络代理,调用样例
	 *
	 * @throws InterruptedException
	 *             e
	 */
	private static void netProxy() throws InterruptedException {
		// 1、创建客户端实例, 设置网络代理
		LfasrClient lfasrClient = LfasrClient.getInstance(APP_ID, SECRET_KEY, "http://x.y.z/");
		// LfasrClient lfasrClient = LfasrClient.getInstance(APP_ID,
		// SECRET_KEY);

		// 2、上传
		// 2.1、设置业务参数
		Map<String, String> param 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值