Announcement Systems

The real-time and public nature of automatic announcement and public address systems make them very natural extensions to the Solution Space software.


The Public Address Control and Monitoring System in the New Bangkok International Airport was developed and deployed in 2004. It combines the Solution Space software with Bosch’s Praesideo line of products. Back then, the only way to communicate with the Praesideo hardware was by means of a Windows API, and so PACAMS runs on a Windows .NET back-end. For inter-application communication we used Microsoft’s Remoting.

PACAMS allows operators to choose a set of PA zones to announce on. The system then prepares all of the site’s 28 Bosch Praesideo NCOs (network controllers) to route voice announcements to the correct target areas. The actual sound is communicated over a separate digital audio network (‘Cobranet’), which nonetheless shares the same infrastructure backbone.


A few years after PACAMS was commissioned at NBIA, the Phuket and Chiang Mai airports required PA systems as well. Besides basic PA functionality, these systems needed to be extended with automatic announcement modules. By this time, Bosch had made the specifications of its Praesideo OpenInterface network interface protocol available to us, and we could build our application on Linux servers instead of Windows. The front-end user applications are still Windows.

TAPAS (Thailand Automatic Public Announcement System) was designed to use pre-recorded human voice fragments and combine them into configurable sentences. The results sound quite natural. This technique in itself is not new, but the configurable nature of the system is.

In TAPAS, any number of languages can be configured and used. For each language, a sentence can be built up using a template of fragments, or references to data pertaining to database records. The Linguist module can stress syllables, add inflections, fall back to a robot-voice if no fragments exist and so on. The Linguist provides a set of localization functions to the announcement template designer, for example how to construct a natural number from digit fragments in a particular language.  A series of configurable rules determine which events need announcing, in which language(s) and how often.

The system operates hands-free; data streaming from the local FIDS provides the live-feed needed to automatically generate calls. A series of flexible timers and a queuing module allow the operator to manually cancel an announcement in case of a mistake made in FIDS. Finally, in case of a FIDS failure, a user interface is available to generate events as if they originated from the FIDS feed.

Praesideo OpenInterface and Linux

For our TAPAS project, we created a Linux C++ library that implements Bosch’s Praesideo OpenInterface specification. This allows us to communicate with Praesideo hardware from our Linux backend services.