Configuring Speech Engine to utilize effectively the full power of underlying hardware can get challenging – one can easily get lost in all the strange terms like technologies, instances, slots, or workers… This article should shed some light in it.
Speech Engine is like post office
Thinking about Speech Engine, there is actually a very nice analogy with post office (or bank branch):
|Post office is a place providing different kinds of services – one can go there to send letters, send or pick up packages, get a POBox, get some financial services, insurance, etc.).||Speech Engine has various speech technologies configured – one can analyze the audio quality, extract voiceprints from recordings, compare voiceprints, transcribe audio to text, etc.|
|Different post offices may provide different (sets of) services – smaller offices may provide only small set of services, while big ones can have multiple floors with wide service portfolio.||Different Speech Engine installations may provide different (sets of) technologies – smaller installations can have like only single technology configured, while big ones can have wide set of various technologies configured.|
|There is one or more counter desks reserved for particular service in the post office.|
These counter desks are always there, taking up the office space, regardless of being actually opened (i.e. post office worker actually sitting there) or not.
|There is one or more instances configured of each particular technology in the Speech Engine installation.|
These instances are initialized at the start of Speech Engine, taking up a memory, regardless of being actually used for some processing.
|Customers are served by post office workers at counter desks providing a particular service.||Requests are served by processing workers assigned to an instance of particular technology.|
Speech Engine workers are like post office workers
Similar analogy exists between the post office staffing and the Speech Engine workers configuration:
|Some post office workers are trained only for certain types of services (e.g. postal services), while others are trained for other services (e.g. financial services).||Speech Engine has separate workers for file processing and for realtime stream processing.|
|They cannot provide other types of services than those which they were trained for.|
Staffing the post office should be then done accordingly – ideally, there should be enough workers to allow having all counter desks open all the time.
|File processing workers cannot process realtime streams, and vice versa.|
Configuration of Speech Engine workers should be then done accordingly – ideally, there should be enough workers of each type to allow processing by all technologies all the time.
|If there is less office workers than counter desks for each service type, some counter desks have to be temporarily closed and some clients have to wait until some of the office workers is free to serve the closed counters.||If there is less workers of certain type than initialized instances of technologies, some processing requests have to wait until a worker is free and can serve the waiting requests.|
|If there is more office workers than counter desks for each service type, the extra workers may “fight” for needed working tools with other workers and as a result, serving the clients is slowed down.||If there is more workers of certain type than initialized instances of technologies, the workers start “fighting” with each other for the processing power, which slows down the overall processing.|
If the above clarifies the relations between Speech Engine installations, technologies, instances and workers, you can continue reading in the How to configure Speech Engine workers article.