|
- // ignore: camel_case_types
- import 'dart:convert';
-
- class Xunfei_AudioTranslation_Result_Text_Item {
- final int sn;
- final String pgs;
- final List<int> rg;
- final List<dynamic> ws;
-
- Xunfei_AudioTranslation_Result_Text_Item({
- required this.sn,
- required this.pgs,
- required this.rg,
- required this.ws,
- });
- }
-
- //同声翻译 返回的 文本结果处理对象
- // ignore: camel_case_types
- class Xunfei_AudioTranslation_Result_Text {
- final Map<int, Xunfei_AudioTranslation_Result_Text_Item> results = {};
- Xunfei_AudioTranslation_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<int> rg = resultMap["rg"] != null
- ? List<int>.from(resultMap["rg"])
- : []; // 默认值为空列表
- List<dynamic> ws = resultMap["ws"] as List<dynamic>;
- var item = Xunfei_AudioTranslation_Result_Text_Item(
- sn: sn, pgs: pgs, rg: rg, ws: ws);
- results[sn] = item;
- }
-
- String result() {
- if (results.isNotEmpty) {
- String resultStr = "";
- Map<int, Xunfei_AudioTranslation_Result_Text_Item> _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<String, dynamic>;
- var cw = it["cw"] as List<dynamic>;
- for (var ct in cw) {
- resultStr += ct["w"] as String;
- }
- }
- }
- }
- return resultStr;
- }
- return "";
- }
- }
|