# Customization

You can customize the experience (interaction flow and contents) with Spoon character by configuring on the specific files, on the device, that are linked with your release.

All these files are located in the Conf folder in your release folder (by default it will be at C:/Program Files/SPooN/developers-1.0.0/release).

# Main configuration file for customization : release.conf

This file centralizes all the elements to customize the experience with your release. It has the JSON format.

{
    "profile": <string>,
    "robotName": <string>,
    "language": <LanguageEnum>,
    "availableLanguages": [
        <LanguageEnum>,
        ...
        <LanguageEnum>
    ],
    "databaseName": <string>,
    "specificContents": [
        <string>,
        ...
        <string>
    ],
    "specificDictationConstraints": [
        <string>,
        ...
        <string>
    ],
    "specificDictationResultsCorrections": [
        <string>,
        ...
        <string>
    ],
    "specificGrammarPronunciations": [
        <string>,
        ...
        <string>
    ],
    "specificPronunciations": [
        <string>,
        ...
        <string>
    ],
    "chatbotConfigurations": [
        <ChatbotConfiguration>,
        ...
        <ChatbotConfiguration>
    ],
    "engagementZonesConfiguration": {
        "inSocialZoneDistance": <float>,
        "outSocialZoneDistance": <float>,
        "inPersonalZoneDistance": <float>,
        "outPersonalZoneDistance": <float>
    },
    "blobDetectionZone":
    {
        "vertices": [
            [<float>, <float>],
            ...
            [<float>, <float>]
        ],
        "floorHeightThreshold": <float>
    },
    "welcomingSentence":
    {
        "fr_FR": <string>,
        "en_US": <string>
    },
    "overrideShowCursor": <bool>
}

# "profile"

  • description: corresponds to a specific configuration mode of the SDK
  • type: string

WARNING

DO NOT MODIFY NOR REMOVE, for internal use for the moment, will be deleted soon.

# "robotName"

  • description: name of the robot
  • usage: in all contents, the tag {ROBOT_NAME} will be replaced with this value
  • type: string

# Example:

"robotName": "Spoony"

# "language"

  • description: default language of the character at start
  • type: LanguageEnum
  • Possible values (if content is available for the language)
    • "en_US" (English)
    • "fr_FR" (French)
    • "ja_JP" (Japanese)
    • "zh_CN" (Chinese)

# Example:

"language": "fr_FR"

# "availableLanguages"

  • description: list of the available languages, in order to allow to change language for the interaction
  • type: List<LanguageEnum>
  • Possible values (if content is available for the language)
    • "en_US" (English)
    • "fr_FR" (French)
    • "ja_JP" (Japanese)
    • "zh_CN" (Chinese)

# Example:

"availableLanguages": [
    "en_US",
    "fr_FR"
]

# "databaseName"

  • description: name of local database for persistent data storage
  • type: string

WARNING

DO NOT MODIFY NOR REMOVE, for internal use for the moment, will be deleted soon.

# "specificContents"

  • description: list of SpecificContent files to be linked (see presentation of usage of SpecificContents)
  • type: List<string>
  • values: paths of the content files, relative to the Conf folder

# Example:

"specificContent": [
    "specificContent.csv",
    "Folder/specificContentInFolder.csv"
]

# "specificDictationConstraints"

  • description: list of SpecificDictationConstraints files to be linked (see presentation of usage of SpecificDictationConstraints)
  • type: List<string>
  • values: paths of the content files, relative to the Conf folder

# Example:

"specificDictationConstraints": [
    "specificDictationConstraint.csv",
    "Folder/specificDictationConstraintInFolder.csv"
]

# "specificGrammarPronunciations"

  • description: list of SpecificGrammarPronunciations files to be linked (see presentation of usage of SpecificGrammarPronunciations)
  • type: List<string>
  • values: paths of the content files, relative to the Conf folder

# Example:

"specificGrammarPronunciations": [
    "specificGrammarPronunciation.csv",
    "Folder/specificGrammarPronunciationInFolder.csv"
]

# "specificPronunciations"

  • description: list of SpecificPronunciations files to be linked (see presentation of usage of SpecificPronunciations)
  • type: List<string>
  • values: paths of the content files, relative to the Conf folder

# Example:

"specificPronunciations": [
    "specificPronunciation.csv",
    "Folder/specificPronunciationInFolder.csv"
]

# "keyboardCustomEmailAddresses"

  • description: list of email suffixes that will be added to the displayed keyboards for quick access
  • type: List<string>
  • limit: 4 values max

# Format:

"keyboardCustomEmailAddresses":
[
  "@address1",
  "@address2",
  ...
]

# Example:

"keyboardCustomEmailAddresses":
[
  "@spoon.ai",
  "@spoon-cloud.com"
]

# "welcomingSentence"

  • description: welcoming sentence said by the character at the beginning of the interaction (if the default Welcoming behavior has not been disabled or overwritten)
  • type: LocalizableString

# Format:

"welcomingSentence":
{
  "fr_FR": "<french_value>",
  "en_US": "<english_value>"
}

# Example:

"welcomingSentence":
{
    "en_US": "Welcome to Spoon Offices!",
    "fr_FR": "Bienvenue dans les bureaux de Spoon !"
}

# "chatbotConfiguration"

  • description: connection to chatbots for specific contents and scenarios
  • type: List<ChatbotConfiguration>
  • value: see Documentation about Chatbot connection

# "engagementZonesConfiguration"

  • description: distances of the different interaction zones (for entry and exit)
  • type: EngagementZonesConfiguration

Interaction Zones

# Format:

"engagementZonesConfiguration":
{
  "inSocialZoneDistance": float,
  "outSocialZoneDistance": float,
  "inPersonalZoneDistance": float,
  "outPersonalZoneDistance": float
}
  • inSocialZoneDistance: distance (in meters) to enter the Social Zone
  • outSocialZoneDistance: distance (in meters) to exit the Social Zone
    • value must be greater than inSocialZoneDistance to avoid an oscillation for a person that would be detected at a distance close to inSocialZoneDistance (as they might be detected in and out of the zone in an infinite loop)
  • inPersonnalZoneDistance: distance (in meters) to enter the Personal Zone
  • outPersonalDistance: distance (in meters) to exit the Personal Zone
    • value must be greater than inPersonnalZoneDistance to avoid an oscillation for a person that would be detected at a distance close to inPersonnalZoneDistance (as they might be detected in and out of the zone in an infinite loop)

# Example:

"engagementZonesConfiguration": {
  "inSocialZoneDistance": 4.0,
  "outSocialZoneDistance": 4.5,
  "inPersonalZoneDistance": 1.3,
  "outPersonalZoneDistance": 1.8
}

# "blobDetectionZone"

  • description: zone of detection of objects as users by the 3D camera
  • usage: all the elements detected in the zone defined in this field will be detected as users. This zone should be set in a restrictive manner to make sure so that it cannot include immobile objects (walls, furniture, etc...)
  • type: BlobDetectionZoneConfiguration

# Format:

"blobDetectionZone":
{
  "vertices": [[floatX, floatY],, [floatX, floatY]],
  "floorHeightThreshold": <float>
},
  • vertices: list of 2D points on the floor, corresponding to the contour of the detection zone
    • position [X, Y] is defined in meters, with respect to the center of the device on the floor
    • X-axis is parallel to the device, oriented to the left
    • Y-axis is perpendicular to the device, oriented forward
  • floorHeightThreshold: height (in meters) relative to the floor, under which detected elements will be considered as part of the floor and not detected as users

# Example:

  "blobDetectionZone":
  {
    "vertices": [[0.75, 0], [0.75, 1.5], [-0.75, 1.5], [-0.75, 0]],
    "floorHeightThreshold": 0.3
  },

# "overrideShowCursor"

  • description: allows to show the cursor of the computer mouse, when screen is not tactile
  • type: boolean
  • ossible values:
    • true: mouse cursor is visible (to be used on laptop and other non tactile screens)
    • false: mouse cursor is not visible (to be used on tactile screens)

# Specific configuration files

# Specific Contents

# Usage

It is possible to quickly define answers to a list of specific questions, that will be loaded from local configuration files on the device.

WARNING

These questions and answers are defined outside of the main interaction flow, so it could cause some understanding complication for the users. We recommend to use Chatbots instead to integrate specific questions/answers.

Specific content files are loaded only if they are linked in the release.conf file, using the "specificContents") field.

# Format & content

  • CSV format, with ";" as separator character
  • One line per entry
  • Each line has the following elements: Language;WordSpotting;Input;Output
    • Language: Language code of the content
    • WordSpotting: 0 or 1
      • 0: word spotting is disabled, the character answers with the Output only if the user says exactly the Input for
      • 1: word spotting is enabled the character answers with the Output only if the sentence said by the user contains the Input
  • Input: element to be said by the user for the character to react
  • Output: content of the reaction of the character in response to the input for long contents in Output, use "//" to split this Output in multiple sentences that are said sequentially by the character

# Example :

Language;WordSpotting;Input;Output
fr_FR;0;Parle moi de Jérome;C'est un mec génial // Je l'adore!
en_US;0;Tell me more about Jérome;He is such a cool guy // I love him
fr_FR;1;choucroute garnie;Ah tu parle de choucroute // J'adore ça moi!

# Specific Dictation Constraints

# Usage

You can help the speech recognition (dictation) to detect specific non-usual words or words with specific spelling (for example for brand or product names) using these configuration files.

Specific Dictations Constraints files are loaded only if they are linked in the release.conf file, using the "specificDictationConstraints" field (see above).

# Format & content:

  • CSV format, with ";" as separator character
  • One line per entry

# Example:

Dictation Constraints
Spoony
SpecificBrandName

# Specific Grammar Pronunciations

# Usage

You can help the speech recognition (grammar) to detect specific contents by providing their pronunciation using these configuration files.

Specific Grammar Pronunciation files are loaded only if they are linked in the release.conf file, using the "specificGrammarPronunciations" field.

# Format & content:

  • CSV format, with ";" as separator character
  • One line per entry
  • Each line has the following elements: Language;Input;Correction
    • Language: Language code of the content
    • Input: the text to be recognized
    • Correction: a more literal/phonetic spelling of the input in the chosen language to help the grammar based speech recognition

# Example:

Language;Input;Correction
fr_FR;Spoon;Spoun
fr_FR;Coony;Couny
fr_FR;Birdly®;beurdly
fr_FR;km/h;kilomètre heure
en_US;km/h;kilometer per hour
fr_FR;€;euros
en_US;€;euros

# Specific Pronunciations

# Usage

You can improve the pronunciation of specific words by the character by providing their phonetic spelling in these configuration files.

Specific Pronunciation files are loaded only if they are linked in the release.conf file, using the "specificPronunciations" field.

# Format & content:

  • CSV format, with ";" as separator character
  • One line per entry
  • Each line has the following elements: Language;VoiceName;Input;Pronunciation
    • Language: Language code of the content
    • VoiceName: name of the voice that will use this specific pronunciation (use "All" to apply the pronunciation for all the voices of the chosen language)
    • Input: the text for which the pronunciation is improved
    • Pronunciation: a more literal/phonetic spelling of the input in the chosen language for the pronunciation

# Example:

Language;VoiceName;Input;Pronunciation
fr_FR;All;&;et
fr_FR;All;Spoon;Spoun
fr_FR;All;streaming;striming
en_US;All;Tour Eiffel;tour hey fell