// ignore: camel_case_types import 'dart:convert'; // ignore: camel_case_types class Xunfei_AudioToText_Result_Text_Item { final int sn; final String pgs; final List rg; final List ws; Xunfei_AudioToText_Result_Text_Item({ required this.sn, required this.pgs, required this.rg, required this.ws, }); } //同声翻译 返回的 文本结果处理对象 // ignore: camel_case_types class Xunfei_AudioToText_Result_Text { final Map results = {}; Xunfei_AudioToText_Result_Text(); void add(String result) { print("添加文本结果:$result"); var resultMap = json.decode(result); int sn = resultMap["sn"] as int; String pgs = resultMap["pgs"] as String; List rg = resultMap["rg"] != null ? List.from(resultMap["rg"]) : []; // 默认值为空列表 List ws = resultMap["ws"] as List; var item = Xunfei_AudioToText_Result_Text_Item(sn: sn, pgs: pgs, rg: rg, ws: ws); results[sn] = item; } String result() { if (results.isNotEmpty) { String resultStr = ""; Map _results = {}; var sortedKeys = results.keys.toList()..sort(); for (var key in sortedKeys) { var item = results[key]; if (item != null) { if (item.pgs == "rpl") { var start = item.rg[0]; var end = item.rg[1]; for (int i = start; i <= end; i++) { _results.remove(i); } } _results[item.sn] = item; } } var keys = _results.keys.toList()..sort(); for (var key in keys) { var item = results[key]; if (item != null) { for (var ws in item.ws) { var it = ws as Map; var cw = it["cw"] as List; for (var ct in cw) { resultStr += ct["w"] as String; } } } } return resultStr; } return ""; } }