This version of the Speechly documentation is no longer actively maintained. For up-to-date documentation, see the latest version.

Configuration YAML

The configuration YAML contain definitions for SAL templates, entities, intents, imports and other settings.

The configuration YAML defines a dictionary of (key, value) pairs that contain definitions both for SAL templates and Entity Data Types as described below. Also, Imports and Lookups are configured within the same Configuration YAML.

Defining SAL templates

Templates are defined with key templates within a “Literal Block Scalar”:

templates: |
  SAL line 1
  SAL line 2

Defining Entity Data Types

Entity Data Types are defined with key entities that has a list of (name, type) pairs as its value:

 - name: entity1_name
   type: entity1_type
 - name: entity2_name
   type: entity2_type

Example configuration YAML

This is a simple example that shows what a complete configuration YAML with entity types and templates looks like:

 - name: product_name
   type: string
 - name: product_amount
   type: number
 - name: delivery_date
   type: date_future
templates: |
  product = [apples | oranges | bananas | grapefruits | mangoes | apricots | peaches]
  amount = [1..99]
  *add_to_cart {add} $amount(product_amount) $product(product_name)
  *set_delivery_date [{schedule} delivery for | delivery on] $SPEECHLY.DATE(delivery_date)  

Advanced settings

There are a number of advanced settings you can use to alter the behavior of your application.

These settings are also available in Dashboard by going to Application → Settings.


  • Type: number
  • Default: 0

Duration of silence in milliseconds that creates a new segment. Use increments of 60 for the best end result. Set to 0 to disable silence triggered segmentation.


  • Type: boolean
  • Default: false

Controls intent detection speed. When enabled, the system tries to detect intents faster at the cost of accuracy.


  • Type: boolean
  • Default: false

Controls NLU tagging accuracy. When enabled, the systems guarantees that if an utterance is present in the configuration, it should be tagged with greater accuracy.

This is an experimental feature.


  • Type: boolean
  • Default: false

Controls when intents and entities are returned by the system. By default, intents and entities are returned in a streaming manner while the user is speaking. When enabled, intents and entities are returned only once at the end of the audio stream. This may improve NLU accuracy with complex configurations.


  • Type: string

Specify which audio adaptation package should be used for audio adaptation.

Audio adaptation is available on Enterprise plans →

Last updated by Mathias Lindholm on August 29, 2022 at 14:42 +0300

Found an error on our documentation? Please file an issue or make a pull request