// sherpa-onnx/python/csrc/offline-tts.cc // // Copyright (c) 2023 Xiaomi Corporation #include "sherpa-onnx/python/csrc/offline-tts.h" #include "sherpa-onnx/csrc/offline-tts.h" #include "sherpa-onnx/python/csrc/offline-tts-model-config.h" namespace sherpa_onnx { static void PybindGeneratedAudio(py::module *m) { using PyClass = GeneratedAudio; py::class_(*m, "GeneratedAudio") .def(py::init<>()) .def_readwrite("samples", &PyClass::samples) .def_readwrite("sample_rate", &PyClass::sample_rate) .def("__str__", [](PyClass &self) { std::ostringstream os; os << "GeneratedAudio(sample_rate=" << self.sample_rate << ", "; os << "num_samples=" << self.samples.size() << ")"; return os.str(); }); } static void PybindOfflineTtsConfig(py::module *m) { PybindOfflineTtsModelConfig(m); using PyClass = OfflineTtsConfig; py::class_(*m, "OfflineTtsConfig") .def(py::init<>()) .def(py::init(), py::arg("model")) .def_readwrite("model", &PyClass::model) .def("__str__", &PyClass::ToString); } void PybindOfflineTts(py::module *m) { PybindOfflineTtsConfig(m); PybindGeneratedAudio(m); using PyClass = OfflineTts; py::class_(*m, "OfflineTts") .def(py::init(), py::arg("config")) .def("generate", &PyClass::Generate, py::arg("text"), py::arg("sid") = 0); } } // namespace sherpa_onnx