Wilson Wongso
Committed by GitHub

Implemented tokens and timestamps in Python API (#205)

@@ -14,7 +14,12 @@ namespace sherpa_onnx { @@ -14,7 +14,12 @@ namespace sherpa_onnx {
14 static void PybindOnlineRecognizerResult(py::module *m) { 14 static void PybindOnlineRecognizerResult(py::module *m) {
15 using PyClass = OnlineRecognizerResult; 15 using PyClass = OnlineRecognizerResult;
16 py::class_<PyClass>(*m, "OnlineRecognizerResult") 16 py::class_<PyClass>(*m, "OnlineRecognizerResult")
17 - .def_property_readonly("text", [](PyClass &self) { return self.text; }); 17 + .def_property_readonly(
  18 + "text", [](PyClass &self) -> std::string { return self.text; })
  19 + .def_property_readonly(
  20 + "tokens", [](PyClass &self) -> std::vector<std::string> { return self.tokens; })
  21 + .def_property_readonly(
  22 + "timestamps", [](PyClass &self) -> std::vector<float> { return self.timestamps; });
18 } 23 }
19 24
20 static void PybindOnlineRecognizerConfig(py::module *m) { 25 static void PybindOnlineRecognizerConfig(py::module *m) {
@@ -149,6 +149,12 @@ class OnlineRecognizer(object): @@ -149,6 +149,12 @@ class OnlineRecognizer(object):
149 def get_result(self, s: OnlineStream) -> str: 149 def get_result(self, s: OnlineStream) -> str:
150 return self.recognizer.get_result(s).text.strip() 150 return self.recognizer.get_result(s).text.strip()
151 151
  152 + def tokens(self, s: OnlineStream) -> List[str]:
  153 + return self.recognizer.get_result(s).tokens
  154 +
  155 + def timestamps(self, s: OnlineStream) -> List[float]:
  156 + return self.recognizer.get_result(s).timestamps
  157 +
152 def is_endpoint(self, s: OnlineStream) -> bool: 158 def is_endpoint(self, s: OnlineStream) -> bool:
153 return self.recognizer.is_endpoint(s) 159 return self.recognizer.is_endpoint(s)
154 160