There are two main sides to speech application development: Dialog implementation and grammar development. While many speech application service creation environments can be of great help for dialog implementation, there has until now been nothing available to efficiently support grammar development.
The NuGram platform finally fills this very important gap by effectively addressing the main challenges of grammar development across the full grammar lifecycle, from development to deployment.
Unifying static and dynamic grammars
A complete grammar solution needs a unified approach for developing any grammar – static or dynamic – in a homogeneous and consistent way.
This unification is realized within the NuGram platform through two components:
- NuGram IDE – A powerful grammar development environment to author, debug, optimize and maintain static and dynamic grammars, whatever the target recognition engine.
- NuGram Server – Adds optional grammar runtime capabilities, for instance to generate grammars on-the-fly based on application data or to interpret text sentences.
These two components build upon two very important foundations:
- The ABNF Grammar Template Language – Essentially ABNF with dynamic grammar extensions, this provides a seamless transition from static to dynamic grammars.
- Grammar Services – A set of core capabilities used as the foundation for the powerful features found in NuGram IDE and NuGram Server.
A truly effective Grammar IDE
NuGram IDE is the product of years of development based on the input and feedback of some of the most demanding grammar developers. Designed to fully support the rigorous grammar development processes required in order to efficiently produce solid grammars, it:
- Enables the developer to author grammars using one single concise and legible format, regardless of the target speech recognition engines.
- Offers a full-featured editor, with syntax coloring, content-assist (code completion, quick fixes, code templates, etc.), sophisticated refactoring tools, and more.
- Provides powerful grammar analysis, visualization, and debugging tools.
- Provides tools to test grammar coverage and semantic interpretation correctness.
A universal dynamic grammar solution
The NuGram platform provides seamless and effective integration with the runtime environment used by any speech application, however it was developed.
This makes the NuGram platform a truly universal grammar solution.
Features and benefits
The NuGram platform provides the definitive solution to the challenge of grammar development and deployment for speech applications. Indeed:
- It supports all major speech engines — This means that a single authoring language and a single environment can be used for all speech projects, regardless of the target platform.
- It can be integrated with any application and service creation environment — This means that it will work for all your applications, whatever tools you use to develop them.
- It supports both static and dynamic grammars in a consistent, uniform manner — This finally enables the grammar developer to manage all application grammars, therefore allowing a cleaner separation of responsibilities between dialog implementation and grammar development. This is quite significant considering that these are two very different tasks involving very different skills sets.
- It greatly improves grammar reusability — By enabling the development of grammars that are both engine-agnostic and better decoupled from the application, it makes it possible to develop grammars that are much more portable and reusable.
- It provides semantic interpretation capabilities independent from that of the recognition engine — This for instance enables one to ignore engine-proprietary semantic interpretation languages and build grammars that will work with any recognition engine. Similarly, this makes it possible to easily add new semantic interpretation capabilities – for instance, based on robust parsing – that do not depend on proprietary engine features.
- It can be used with text-only applications — This makes it possible to easily test speech applications with text input. It also makes it possible to use the same infrastructure for different modalities, be it instant messaging, SMS, or HTML interfaces.
- It makes it possible to dynamically modify the generated grammars at runtime — For instance, the same instantiated template could one instant be used to generate a grammar for one engine and the next instant to generate a grammar for another engine. Similarly, in order to better control N‑best generation, we could use different semantic slots in the grammar used by the recognition engine than in the grammar used in the Grammar Server for semantic interpretation.