Skip to content

Commit 10b8810

Browse files
ATILATostaATILATosta
authored andcommitted
fixed Observe method
1 parent 4deb861 commit 10b8810

File tree

2 files changed

+37
-13
lines changed

2 files changed

+37
-13
lines changed

src/IBM.WatsonDeveloperCloud.SpeechToText/v1/SpeechToTextService.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -415,9 +415,22 @@ public List<SpeechRecognitionEvent> ObserveResult(string sessionId, int? sequenc
415415
if (interimResults)
416416
request.WithArgument("interim_results", interimResults);
417417

418-
result =
419-
request.AsList<SpeechRecognitionEvent>()
418+
var strResult =
419+
request.AsString()
420420
.Result;
421+
var serializer = new JsonSerializer();
422+
423+
using (var jsonReader = new JsonTextReader(new StringReader(strResult)))
424+
{
425+
jsonReader.SupportMultipleContent = true;
426+
result = new List<SpeechRecognitionEvent>();
427+
428+
while (jsonReader.Read())
429+
{
430+
var speechRecognitionEvent = serializer.Deserialize<SpeechRecognitionEvent>(jsonReader);
431+
result.Add(speechRecognitionEvent);
432+
}
433+
}
421434
}
422435
catch (AggregateException ae)
423436
{

test/IBM.WatsonDeveloperCloud.SpeechToText.IntegrationTests/SpeechToTextServiceIntegrationTest.cs

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ public void t07_Recognize_WithSession_FormData_Sucess()
223223
Assert.IsNotNull(results.Results.First().Alternatives.First().Transcript);
224224
}
225225

226-
//[TestMethod]
226+
[TestMethod]
227227
public void t08_ObserveResult_Success()
228228
{
229229
SpeechToTextService service =
@@ -244,18 +244,29 @@ public void t08_ObserveResult_Success()
244244
PartContentType = audio.GetMediaTypeFromFile()
245245
};
246246

247-
var recognize =
248-
service.RecognizeWithSession(session.SessionId, audio.GetMediaTypeFromFile(), metadata, audio, "chunked", modelName);
247+
var taskObserveResult = Task.Factory.StartNew<List<SpeechRecognitionEvent>>(() =>
248+
{
249+
return service.ObserveResult(session.SessionId, interimResults: true);
250+
});
249251

250-
var results =
251-
service.ObserveResult(session.SessionId, interimResults: true);
252+
taskObserveResult.ContinueWith((antecedent) =>
253+
{
254+
var results = antecedent.Result;
252255

253-
Assert.IsNotNull(results);
254-
Assert.IsTrue(results.Count > 0);
255-
Assert.IsNotNull(results.First().Results);
256-
Assert.IsTrue(results.First().Results.Count > 0);
257-
Assert.IsTrue(results.First().Results.First().Alternatives.Count > 0);
258-
Assert.IsNotNull(results.First().Results.First().Alternatives.First().Transcript);
256+
Assert.IsNotNull(results);
257+
Assert.IsTrue(results.Count > 0);
258+
Assert.IsNotNull(results.First().Results);
259+
Assert.IsTrue(results.First().Results.Count > 0);
260+
Assert.IsTrue(results.First().Results.First().Alternatives.Count > 0);
261+
Assert.IsNotNull(results.First().Results.First().Alternatives.First().Transcript);
262+
});
263+
264+
var taskRecognizeWithSession = Task.Factory.StartNew(() =>
265+
{
266+
service.RecognizeWithSession(session.SessionId, audio.GetMediaTypeFromFile(), metadata, audio, "chunked", modelName);
267+
});
268+
269+
taskObserveResult.Wait();
259270
}
260271

261272
[TestMethod]

0 commit comments

Comments
 (0)