Release GIL to support multithreading in websocket servers. (#451)

This commit is contained in:
Fangjun Kuang
2023-11-27 13:44:03 +08:00
committed by GitHub
parent 8dc08a9b97
commit 87a47d7db4
10 changed files with 87 additions and 47 deletions

View File

@@ -13,17 +13,21 @@ namespace sherpa_onnx {
void PybindVadModel(py::module *m) {
using PyClass = VadModel;
py::class_<PyClass>(*m, "VadModel")
.def_static("create", &PyClass::Create, py::arg("config"))
.def("reset", &PyClass::Reset)
.def_static("create", &PyClass::Create, py::arg("config"),
py::call_guard<py::gil_scoped_release>())
.def("reset", &PyClass::Reset, py::call_guard<py::gil_scoped_release>())
.def(
"is_speech",
[](PyClass &self, const std::vector<float> &samples) -> bool {
return self.IsSpeech(samples.data(), samples.size());
},
py::arg("samples"))
.def("window_size", &PyClass::WindowSize)
.def("min_silence_duration_samples", &PyClass::MinSilenceDurationSamples)
.def("min_speech_duration_samples", &PyClass::MinSpeechDurationSamples);
py::arg("samples"), py::call_guard<py::gil_scoped_release>())
.def("window_size", &PyClass::WindowSize,
py::call_guard<py::gil_scoped_release>())
.def("min_silence_duration_samples", &PyClass::MinSilenceDurationSamples,
py::call_guard<py::gil_scoped_release>())
.def("min_speech_duration_samples", &PyClass::MinSpeechDurationSamples,
py::call_guard<py::gil_scoped_release>());
}
} // namespace sherpa_onnx