public FixasrView Modify(TranscribeResponse transcript) { int MaxCharactersPerRecord = 40; FixasrView fixasr = new FixasrView(); string line = ""; int startTime = 0; fixasr.lastedit = 0; foreach (RspAlternative alternative in transcript.alternatives) { foreach (RspWord word in alternative.words) { if (line.Length + word.text.Length > MaxCharactersPerRecord) { AsrSegment segment = NewSegment(startTime, line); fixasr.asrsegments.Add(segment); line = ""; startTime = word.startTime; } line = line + ((line.Length == 0) ? word.text : " " + word.text); } } if (line != "") { AsrSegment segment = NewSegment(startTime, line); fixasr.asrsegments.Add(segment); } return(fixasr); }
AsrSegment NewSegment(int startTime, string line) { TimeSpan t = new TimeSpan(0, 0, 0, 0, startTime); string format = @"hh\:mm\:ss"; string start = t.ToString(format); AsrSegment segment = new AsrSegment(start, line); return(segment); }