When building speech applications we're often asked, "How many ports or channels can I run on a given machine?"
In general, the number of simultaneous speech sessions that can be reliably run varies with the capacity of the machine and the type of speech recognition being performed. For instance, recognizing a single digit is computationally less "expensive" than recognizing a full street address from a complex grammar.
Also, grammar complexity is often not simply the number of words present within a grammar, but also how the grammar rules themselves are structured. Rules that have variable phrases, or recursion for example are more computationally complex than rules containing simply one or two words.
There are a number of factors that influence the overall performance of speech applications, and generally, no two applications are alike, so coming up with some standardized metric that works for all applications is impossible.
The main contributors to the amount of CPU and memory resources needed by a speech application can be summarized by factoring in things like the complexity of grammars used, the number of concurrent calls, the ratio of speech recognition to prompt playback or DTMF processing within an application, the average call duration and also the average number of ASR operations within a call.
All of these factors affect the overall sizing calculation, so it is virtually impossible to be completely certain of a maximum number of channels a given system can run without actually performing some tests using the actual application and measuring system memory and CPU use under load.
We also understand that from a design perspective, users need to have some "ballpark" idea of what a given machine can provide, or as is more often the case, what type machine specification would be needed in order to handle a certain type of application.
To provide some sizing estimates for users that allow them to get a reasonable idea of the type of performance from certain machine specifications, we created an ASR Sizing Tool and a TTS Sizing Tool, which are freely available on our LVDN site and provide some guidance, however we always recommend performing some testing against the production application in order to get actual performance metrics.
Please contact LumenVox for more information if you require specialized assistance in configuring large or unusual server configurations, including high performance or high-availability clusters.
It is also important to remember that the LumenVox product architecture is designed to be distributed, allowing several LumenVox servers to be configured into clusters, allowing modular scalability and redundancy within designs if needed. Also, LumenVox is continuously developing new methods to allow this scaling to be done more efficiently, so please be sure to review the latest versions of LumenVox products when sizing a new application.
© 2017 LumenVox, LLC. All rights reserved.