Multithread Speech Recognition Service Development and Integration Using C#, C++ and Python

12

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

  1. Tool recommendations [Elektronnyi resurs] // Python Packaging User Guide URL: https://packaging.python.org/en/latest/guides/tool-recommendations/ (Accessed 05.06.2024)
  2. virtualenv [Elektronnyi resurs] // virtualenv URL: https://virtualenv.pypa.io/en/latest/index.html (Accessed 05.06.2024)
  3. PyInstaller Manual [Elektronnyi resurs] // PyInstaller 6.8.0 documentation URL: https://pyinstaller.org/en/stable/ (Accessed 25.06.2024)
  4. 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.).
  5. multiprocessing — Process-based parallelism [Elektronnyi resurs] // Python 3.12.4 documentation URL: https://docs.python.org/3/library/multiprocessing.html (Accessed 07.06.2024)
  6. pickle — Python object serialization [Elektronnyi resurs] // Python 3.12.4 documentation URL: https://docs.python.org/3/library/pickle.html (Accessed 08.06.2024)
  7. Gorelick, Micha, and Ian Ozsvald. High Performance Python: Practical Performant Programming for Humans. O'Reilly Media, 2020.
  8. 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)
  9. 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)
  10. 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

Nikita I. Levonovich, student, Moscow State University of Psychology and Education (MSUPE), Moscow, Russia, ORCID: https://orcid.org/0000-0002-8580-0490, e-mail: levonikitatech@yandex.ru

Metrics

Views

Total: 51
Previous month: 13
Current month: 3

Downloads

Total: 12
Previous month: 1
Current month: 1