System requirements

Techmo ASR requires an operating system that supports docker containerization (Docker Engine version 1.13.1 or newer). The program can be run in a virtual environment, but it is not obligatory.

In many practical uses such as helplines and voice assistants, a significant amount of sentences or their segments are played repeatedly (same greetings, marketing information, clauses in every conversation). For this purpose, the system uses a cache mechanism, that reuses ready-made audio files for entire sentences or their segments. It allows to highly reduce CPU consumption.

System architecture

The Techmo ASR system operates in a client-server architecture. The ASR service runs inside a docker container, providing a single selected port for communication with client applications via an API in the gRPC protocol. All external resources, (voice models, definitions of phonetic mappings and text normalization rules, pronunciation lexicons, etc.) are mounted to the container as a docker volume from the local file system, which allows users to easily make detailed changes to the service configuration. However, for immutable configurations, resources can optionally be embedded directly into the image.

The main system components and dependencies are shown in the following diagram:

ASR system components

Native service API is based on gRPC framework. In addition, to integrate with the IVR software, you can use an additional proxy service. This proxy service facilitates communication with the ASR service via the MRCPv2 protocol. In such a case, the proxy service runs on a separate Docker container, is independently configured, and produces its own logs.

Depending on the selected licensing mode, the ASR service can use a local licence file or connect to a remote licensing service.

Directory structure of the deployment package

The Techmo ASR is provided as a *.tar.gz. package containing the docker image along with all the necessary resources.

The content of the sample ASR service package is presented below:

techmo-asr-3.2.1
├── data
│   ├── log
│   └── pblog
├── docker-compose.yml
├── .env
├── licence
│   └── TechmoASR3.lic
├── resources
│   ├── grammars
│   ├── models
│   └── models_config.json
└── tls

To load docker image locally use command:

docker load -i techmo-asr-3.2.1-image.tar.gz

(in the command above use the actual version of service image)

When image loading completes successfully, a message similar to this one is printed:

Loaded image: techmo-asr-service:3.2.1