首页 > 编程知识 正文

讯飞语音转文字结果转成srt字幕格式(Java源码)

时间:2023-05-06 17:54:18 阅读:255189 作者:4246

有时需要把讯飞语音识别结果转成srt字幕,通过下面的java代码即可实现。

import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import java.io.*;import java.text.SimpleDateFormat;import java.util.Locale;import java.util.TimeZone;public class Handle { public static final String date = "HH:mm:ss,SSS"; public static final SimpleDateFormat sdf = new SimpleDateFormat(date, Locale.ROOT); public static void main(String[] args) throws Throwable{ xunFeiYuYin2srt("xunfei.txt", "字幕.srt"); } private static void xunFeiYuYin2srt(String xunfeiFilePath, String srtFilePath) throws Throwable{ StringBuilder sb = new StringBuilder(); FileInputStream fis = new FileInputStream(xunfeiFilePath); byte[] bytes = new byte[9999999]; fis.read(bytes); String data = new String(bytes); sdf.setTimeZone(TimeZone.getTimeZone("GMT+00:00")); JSONArray array = JSONArray.parseArray(data.toString()); for (int i = 0; i < array.size(); i++) { JSONObject object = array.getJSONObject(i); String bg = object.getString("bg"); String ed = object.getString("ed"); long bgg = Long.valueOf(bg); long edd = Long.valueOf(ed); String startTime = sdf.format(bgg); String endTime = sdf.format(edd); String msg = object.getString("onebest"); sb.append(i + 1).append("n") .append(startTime) .append(" --> ") .append(endTime).append("n") .append(msg) .append("n").append("n"); } BufferedWriter out = new BufferedWriter(new FileWriter(srtFilePath)); out.write(sb.toString()); out.close(); fis.close(); }}

maven依赖

<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.67</version> <scope>compile</scope> </dependency>

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。