Modelling and Data Analysis
2024. Vol. 14, no. 3, 135–148
doi:10.17759/mda.2024140308
ISSN: 2219-3758 / 2311-9454 (online)
Multithread Speech Recognition Service Development and Integration Using C#, C++ and Python
Abstract
This article discusses specificity of multithread industrial systems implementation using Python and its computation libraries. Article contains description of theory, including working principle of the Python’s Global Interpreter Locker (GIL), dependency management, multiprocessing library. The practical part of the article devoted to speech recognition service implementation. The implementation uses interprocess communication through shared memory based on "boost.interprocess" library. The result of integration architecture described by the article is reducing of CPU loading, in that case.
General Information
Keywords: software engineering, Python, C++, C#, boost, multithread applications, speech recognition
Journal rubric: Software
Article type: scientific article
DOI: https://doi.org/10.17759/mda.2024140308
Acknowledgements. The author is grateful for assistance in data about Python interpreter internals collection DevRel Evrone Grigory Petrov.
Received: 05.08.2024
Accepted:
For citation: Levonovich N.I. Multithread Speech Recognition Service Development and Integration Using C#, C++ and Python. Modelirovanie i analiz dannikh = Modelling and Data Analysis, 2024. Vol. 14, no. 3, pp. 135–148. DOI: 10.17759/mda.2024140308. (In Russ., аbstr. in Engl.)
References
- Tool recommendations [Elektronnyi resurs] // Python Packaging User Guide URL: https://packaging.python.org/en/latest/guides/tool-recommendations/ (Accessed 05.06.2024)
- virtualenv [Elektronnyi resurs] // virtualenv URL: https://virtualenv.pypa.io/en/latest/index.html (Accessed 05.06.2024)
- PyInstaller Manual [Elektronnyi resurs] // PyInstaller 6.8.0 documentation URL: https://pyinstaller.org/en/stable/ (Accessed 25.06.2024)
- Global'naja blokirovka interpretatora (GIL) i ejo vozdejstvie na mnogopotochnost' v Python [Elektronnyi resurs] // Хабр URL: https://habr.com/ru/companies/wunderfund/articles/586360/ (Accessed 07.06.2024) (In Russ.).
- multiprocessing — Process-based parallelism [Elektronnyi resurs] // Python 3.12.4 documentation URL: https://docs.python.org/3/library/multiprocessing.html (Accessed 07.06.2024)
- pickle — Python object serialization [Elektronnyi resurs] // Python 3.12.4 documentation URL: https://docs.python.org/3/library/pickle.html (Accessed 08.06.2024)
- Gorelick, Micha, and Ian Ozsvald. High Performance Python: Practical Performant Programming for Humans. O'Reilly Media, 2020.
- microsoft/IPC: IPC is a C++ library that provides inter-process communication using shared memory on Windows. A .NET wrapper is available which allows interaction with C++ as well. [Elektronnyi resurs] // GitHub URL: https://github.com/microsoft/IPC (Acessed 09.06.2024)
- Chapter 16. Boost.Interprocess - 1.85.0 [Elektronnyi resurs] // The Boost C++ Libraries URL: https://www.boost.org/doc/libs/1_85_0/doc/html/interprocess.html (Acessed 09.06.2024)
- pybind11 — Seamless operability between C++11 and Python [Elektronnyi resurs] // pybind11 documentation URL: https://pybind11.readthedocs.io/en/stable/ (Acessed 09.06.2024)
Information About the Authors
Metrics
Views
Total: 45
Previous month: 35
Current month: 10
Downloads
Total: 11
Previous month: 10
Current month: 1