Docs & SDKs
Support
Speech Tiles HOME
Sign in
Join us
Speech Tiles Developers
Conversational Speech Frameworks
Speech Tiles
Developers
Docs & SDKs
Support
Speech Tiles HOME
Conversational Speech Frameworks
Conversational Speech Frameworks
Docs & SDKs
Support
Speech Tiles HOME
BZVoiceFlow Framework Reference
1.2.0
Voiceflow JSON Schema
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://speechtiles.com/draft/schemas/VoiceFlow.schema.json", "copyrightNotice": "© Speech Tiles LLC. 2023, All rights reserved.", "title": "Voice Flows Modules", "description": "Version 1.1; last updated 02/23/2024. This document contains JSON schema for Voiceflow which contains an array of Voiceflow modules interpreted and processed to execute speech-enabled conversational interactions between Programs and Users. Unless documented otherwise, value of properties that are of type \"string\" can be updated at runtime by an application if their value is entered as a field name wrapped by \"$[\" and \"]\". If a property is of a type other than \"string\", then an additional property of type \"string\" with the same property name appended with the string \"Runtime\" is added to have its value entered as a field name wrapped by \"$[\" and \"]\". This allows the application to set the value of the field name at runtime to be the value of the original non-runtime property. Valid values of runtime fields override the values of non-runtime properties.", "type": "array", "items": { "description": "List of Voice Flow Modules", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "id": { "description": "Unique ID of a Voice Flow Module. User defined. Use reserved IDs \"VF_START\" and \"VF_END\" with type \"node\" to define start and end Voice Flow Modules required in a Voice Flow. The value cannot be set at runtime.", "type": "string" }, "type": { "description": "Type of a Voice Flow Module. Values: \"node\", \"process\", \"pauseResume\", \"playAudio\", \"recordAudio\", \"audioDialog\", \"audioListener\", or \"runAEC\". The value cannot be set at runtime.", "type": "string" }, "name": { "description": "The name of a Voice Flow Module. User defined. The value cannot be set at runtime.", "type": "string" }, "processParams": { "description": "Specifies the parameters for a \"process\" type Voice Flow Module. \"processParams\" configuration is used in \"process\" type Voice Flow Module.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "languageCode": { "description": "The language locale folder name containing files retrieved by Voice Flow framework to support the particular language locale specified. Default: \"en-US\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "speakerEnabled": { "description": "Specifies whether the Voice Flow framework switches to use the device speaker for audio playback. Default: \"false\". The value can be set at runtime using the \"speakerEnabledRuntime\" property.", "type": "boolean" }, "speakerEnabledRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"speakerEnabled\" property. Example: \"$[SpeakerEnabled]\".", "type": "string" }, "setValueForFieldNameCollection": { "description": "Specifies dynamic field name/value pair parameters that are created, retrieved, updated or deleted during runtime by Voiceflow processing and by client program.", "type": "array", "items": { "description": "Array of field name/value pairs for the Voice Flow framework to create or update while processing this Voice Flow Module.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "name": { "description": "field name. Name of field is always enclosed with \"$[\" at beginning and with \"]\" at end. Example: \"name\": \"$[SleepModeReason]\".", "type": "string" }, "value": { "description": "Value of the field. Example: \"value\": \"UserRequested\". The value cannot be set at runtime.", "type": "string" } }, "required": ["name", "value"], "additionalProperties": false } }, "ssEngine": { "description": "the default speech synthesizer engine to use for processing text audio segments referenced by Audio Prompt Modules configured in this Voice Flow Module. Values: \"flite\" or \"apple\". Default: \"flite\" or \"apple\" depending which was initialized last and if both flite and apple speech synthesizers are active. This applies globally to all VoiceFlows. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "ssVoiceParams": { "$ref": "#/$defs/ssVoiceParams" }, "pocketSphinxSRCustomDictionary": { "$ref": "#/$defs/pocketSphinxSRCustomDictionary" }, "pocketSphinxSRTaskCollection": { "description": "Specifies an array of speech recognition tasks for Pocket Sphinx to load.", "type": "array", "items": { "$ref": "#/$defs/pocketSphinxSRTask" } }, "pocketSphinxSRPronunciateWord": { "description": "Specifies a word to send to Pocket Sphinx in order for Pocket Sphinx to pronunciate. Pocket Sphinx sends back a speech recognition pronunciation and a speech synthesis pronunciation which can be used in Flite Speech synthesizer.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "word": { "description": "Specifies the word to send to Pocket Sphinx for pronunciation. Example: \"word\": \"meemzee\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "saveSRPronResult": { "description": "Specifies the key that will hold the speech recognition pronunciation value. Example: \"saveSRPronResult\": \"$[SRPron]\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "saveSSPronResult": { "description": "Specifies the key that will hold the speech synthesis pronunciation value. Example: \"saveSSPronResult\": \"$[SSPron]\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" } }, "required": ["word", "saveSRPronResult", "saveSSPronResult"], "additionalProperties": false }, "fliteCustomLexicon": { "description": "Specifies a list of custom and manually generated lexicons to send to Flite speech synthesizer ion order for Flite to speech synthesize the words as indicated in the lexicons.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "loadCustomLexicon": { "description": "Specifies whether to have Flite speech synthesizer load custom lexicon. Default: \"false\". The value can be set at runtime using the \"loadCustomLexiconRuntime\" property.", "type": "boolean" }, "loadCustomLexiconRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"loadCustomLexicon\" property. Example: \"$[LoadCustomLexicon]\".", "type": "string" }, "customLexiconEntryList": { "description": "Contains a list of custom lexicon entries separated by '|' as a delimiter. Example: \"dana : d aa1 n ah0|mounir : m uw0 n iy1 r\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "customLexiconFileName": { "description": "File name containing the list of custom lexicon entries. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "customLexiconFileLocation": { "description": "URL or location of folder containing the custom lexicon file. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" } }, "required": [], "additionalProperties": false }, }, "required": [], "additionalProperties": false }, "audioInterruptTransitionParams": { "description": "Specifies the parameters for transitioning Voice Flow processing to a Voice Flow Module after Audio Session interruption ends. \"audioInterruptTransitionParams\" configuration is used in all Voice Flow Modules but more relevant when used in Voice Flow Modules that perform audio playback: \"playAudio\", \"recordAudio\", \"audioDialog\" and \"audioListener\". \"audioInterruptTransitionParams\" configured in \"process\" type Voice Flow Module will set the default audio interruption transition for the Voice Flow. \"audioInterruptTransitionParams\" configured in other type Voice Flow Modules will set the audio interruption transition for those specifc Voice Flow Modules and will override the default one set for the Voice Flow.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "transitionType": { "description": "The transition type. Values: \"resume\", \"repeat\", \"goto\", or \"end\". Default: \"end\" if no default is set for Voice Flow. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "goToVoiceFlowModuleID": { "description": "The ID of a Voice Flow Module ID in current Voice Flow to transition to. Use with \"goto\" transition type. Default: \"VF_END\" if no default is set for Voice Flow. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "rewindCurrentAudioSegmentMs": { "description": "Value is number of Milliseconds to rewind the audio segment playback from the time position it was interrupted at. Use with \"resume\" transition type. Default: 0 if no default is set for Voice Flow. The value can be set at runtime using the \"rewindCurrentAudioSegmentMsRuntime\" property.", "type": "integer" }, "rewindCurrentAudioSegmentMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"rewindCurrentAudioSegmentMs\" property. Example: \"$[RewindCurrentAudioSegmentMs]\".", "type": "string" }, "restartCurrentAudioSegment": { "description": "Specifies whether to play current audio segment that was interrupted from the beginning. Default: \"false\" if no default is set for Voice Flow. The value can be set at runtime using the \"restartCurrentAudioSegmentRuntime\" property.", "type": "boolean" }, "restartCurrentAudioSegmentRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"restartCurrentAudioSegment\" property. Example: \"$[RestartCurrentAudioSegment]\".", "type": "string" }, }, "required": [], "additionalProperties": false }, "playAudioParams": { "description": "Specifies the parameters for a \"playAudio\" type Voice Flow Module. \"plauAudioParams\" configuration is used in \"playAudio\" type Voice Flow Module.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "style": { "description": "Specifies the style or method for processing the Audio Prompt Modules configured for audio playback. Values: \"single\", \"select\", or \"combo\". Default: \"single\" if \"promptID\" is configured or \"combo\" if \"promptCollection\" is configured. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "_promptID": { "description": "Placeholder for documenting or noting other prompt IDs. Voice Flow processing ignores this property.", "type": "string" }, "promptID": { "description": "The ID of an Audio Prompt Module to process for audio playback. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "promptCollection": { "description": "An array that represents a collection or a group of Audio Prompt Module IDs to process for audio playback.", "type": "array", "items": { "description": "List of Audio Prompt Module IDs to process for audio playback.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "_promptID": { "description": "Placeholder for documenting or noting other prompt IDs. Voice Flow processing ignores this property.", "type": "string" }, "promptID": { "description": "The ID of an Audio Prompt Module to process for audio playback. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" } }, "required": ["promptID"], "additionalProperties": false } }, "ssEngine": { "description": "the default speech synthesizer engine to use for processing text audio segments referenced by Audio Prompt Modules configured in this Voice Flow Module. Values: \"flite\" or \"apple\". Default: \"flite\" or \"apple\" depending which was initialized last and if both flite and apple speech synthesizers are active. This applies to the Voice Flow Module. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "ssVoiceParams": { "$ref": "#/$defs/ssVoiceParams" } }, "required": [], "additionalProperties": false }, "_recordAudioParams": { "$ref": "#/$defs/recordAudioParams" }, "recordAudioParams": { "$ref": "#/$defs/recordAudioParams" }, "recognizeAudioParams": { "description": "Specifies the parameters for speech recognition of audio. \"recognizeAudioParams\" configuration is used in Voice Flow Modules of types \"audioDialog\" and \"audioListener\".", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "_srEngine": { "description": "Placeholder for documenting or noting other srEngine. Voice Flow processing ignores this property.", "type": "string" }, "srEngine": { "description": "the default speech recognition engine to use for recognizing speech in audio. Values: \"pocketSphinx\" or \"apple\". Default: \"pocketSphinx\" if both pocketSphinx and apple speech recognizers are active and a specific engine is not requested using this property. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "languageCode": { "description": "The language locale folder name created that contains the speech recognition task files or data specific to language locale used for speech recognition. Default: \"en-US\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "appleSRSessionParams": { "description": "Specifies the speech recognition parameters for the Apple speech recognition session.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "taskID": { "description": "An ID assigned to the speech recognition task. User defined. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "taskHint": { "description": "A value that indicates the type of speech recognition being performed (from Apple developer documentation) Values: \"dictation\", \"search\", \"confirmation\" or \"unspecified\". Default: \"unspecified\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "enablePartialResults": { "description": "Specifies whether intermediate results are returned for each utterance (from Apple developer documentation). Default: \"false\". The value can be set at runtime using the \"enablePartialResultsRuntime\" property.", "type": "boolean" }, "enablePartialResultsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enablePartialResults\" property. Example: \"$[EnablePartialResults]\".", "type": "string" }, "onDeviceSR": { "description": "Specifies whether a speech recognition request must keep its audio data on the device, however, on-device requests won’t be as accurate (from Apple developer documentation). Default: \"false\". The value can be set at runtime using the \"onDeviceSRRuntime\" property.", "type": "boolean" }, "onDeviceSRRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"onDeviceSR\" property. Example: \"$[OnDeviceSR]\".", "type": "string" }, "nBestCount": { "description": "Not implemented. Not supported by Apple speech recognizer. The value can be set at runtime using the \"nBestCountRuntime\" property.", "type": "integer" }, "nBestCountRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"nBestCount\" property. Example: \"$[NBestCount]\".", "type": "string" }, "loadContextualPhrases": { "description": "Not implemented. Until implementation, Apple SR will load contextual phrases from \"contextualPhrasesFileName\" if property is configured. The value can be set at runtime using the \"loadContextualPhrasesRuntime\" property.", "type": "boolean" }, "loadContextualPhrasesRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"loadContextualPhrases\" property. Example: \"$[LoadContextualPhrases]\".", "type": "string" }, "contextualPhrasesList": { "description": "Not implemented. Until implementation, Apple SR will load contextual phrases from \"contextualPhrasesFileName\" if property is configured. Specifies an array of phrases that should be recognized, even if they are not in the system vocabulary (from Apple developer documentation).", "type": "array", "items": { "description": "List of key/value pairs for Voice Flow framework to create or update while processing this Voice Flow Module. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" } }, "contextualPhrasesFileName": { "description": "File name that contains the list of contextual phrases for Apple SR. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "contextualPhrasesFileLocation": { "description": "URL or location of folder where \"contextualPhrasesFileName\" is located. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, }, "required": [], "additionalProperties": false }, "pocketSphinxSRSessionParams": { "description": "Specifies the speech recognition parameters for the Pocket Sphinx speech recognition session.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "reloadTask": { "description": "Specifies whether Pocket Sphinx reloads a task that was already loaded. Default: \"false\". The value can be set at runtime using the \"reloadTaskRuntime\" property.", "type": "boolean" }, "reloadTaskRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"reloadTask\" property. Example: \"$[ReloadTask]\".", "type": "string" }, "enableContinuousSR": { "description": "Specifies whether Pocket Sphinx speech recognition executes in continuous mode. Default: \"false\"The value can be set at runtime using the \"enableContinuousSRRuntime\" property. ", "type": "boolean" }, "enableContinuousSRRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enableContinuousSR\" property. Example: \"$[EnableContinuousSR]\".", "type": "string" }, "enablePartialResults": { "description": "Specifies whether Pocket Sphinx recognizer returns intermediate results for each utterance. Default: \"false\". The value can be set at runtime using the \"enablePartialResultsRuntime\" property.", "type": "boolean" }, "enablePartialResultsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enablePartialResults\" property. Example: \"$[EnablePartialResults]\".", "type": "string" }, "nBestCount": { "description": "Specifies the number of speech recognition candidates for Pocket Sphinx recognizer to produce. Default: 1. Maximum is 4. The value can be set at runtime using the \"nBestCountRuntime\" property.", "type": "integer" }, "nBestCountRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"nBestCount\" property. Example: \"$[NBestCount]\".", "type": "string" }, "pocketSphinxSRTask": { "$ref": "#/$defs/pocketSphinxSRTask" }, "pocketSphinxSRCustomDictionary": { "$ref": "#/$defs/pocketSphinxSRCustomDictionary" } }, "required": [], "additionalProperties": false }, "saveUtteranceParams": { "description": "Specifies an ID for the task of recording audio. User Defined.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "saveUtterance": { "description": "Specifies whether to save the audio utterance sent to speech recognizer: Default: \"false\". The value can be set at runtime using the \"saveUtteranceRuntime\" property.", "type": "boolean" }, "saveUtteranceRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"saveUtterance\" property. Example: \"$[SaveUtterance]\".", "type": "string" }, "utteranceFileName": { "description": "Base file name that will contain the recorded audio utterance. Default: \"BZAudioSaved\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "utteranceFileLocation": { "description": "URL or location of folder where \"utteranceFileName\" containing the recorded audio utterance will be located. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "requestorID": { "description": "Specifies an ID that can be used to distinguish recorded utterance files from others. User Defined. \"requestorID\" is included in the name of the \"utteranceFileName\". Default: \"\" (an empty string is inserted in the filename). The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "fileType": { "description": "Specifies the audio file type. Default: \"wav\". Only file type \"wav\" is currently supported. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "includeTimeStamp": { "description": "Specifies whether to include a time stamp as part of the recorded utterance audio file name. Default: \"false\". The value can be set at runtime using the \"includeTimeStampRuntime\" property.", "type": "boolean" }, "includeTimeStampRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"includeTimeStamp\" property. Example: \"$[IncludeTimeStamp]\".", "type": "string" }, }, "required": [], "additionalProperties": false }, "recognizeUtteranceFile": { "description": "Specifies whether the speech recognition task is to recognize a recorded audio utterance. Default: \"false\". The value can be set at runtime using the \"recognizeUtteranceFileRuntime\" property.", "type": "boolean" }, "recognizeUtteranceFileRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"recognizeUtteranceFile\" property. Example: \"$[RecognizeUtteranceFile]\".", "type": "string" }, "recognizeUtteranceFileParams": { "description": "Specifies an ID for the task of recording audio. User Defined.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "utteranceFileName": { "description": "File name that contains the recorded audio utterance to be sent to a speech recognizer. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "utteranceFileLocation": { "description": "URL or location of folder where \"utteranceFileName\" containing the recorded audio utterance is located. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "offlineMode": { "description": "Specifies whether the speech recognition task will be executed in offline mode which means a recorded audio utterance will be sent in large blocks to the speech recognizer or will be sent in streaming small packets similar to live streaming from a user. Default: \"false\". The value can be set at runtime using the \"offlineModeRuntime\" property.", "type": "boolean" }, "offlineModeRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"offlineMode\" property. Example: \"$[OfflineMode]\".", "type": "string" }, "startPosMs": { "description": "Time position in milliseconds in a recorded audio utterance to start speech recognition from. Default: 0. The value can be set at runtime using the \"startPosMsRuntime\" property.", "type": "integer" }, "startPosMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"startPosMs\" property. Example: \"$[StartPosMs]\".", "type": "string" }, "stopPosMs": { "description": "Time position in milliseconds in a recorded audio utterance to stop speech recognition at. Default: 0. The value can be set at runtime using the \"stopPosMsRuntime\" property.", "type": "integer" }, "stopPosMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"stopPosMs\" property. Example: \"$[StopPosMs]\".", "type": "string" }, "audioFormat": { "$ref": "#/$defs/audioFormat" }, "audioCodec": { "$ref": "#/$defs/audioCodec" }, }, "required": [], "additionalProperties": false }, }, "required": [], "additionalProperties": false }, "audioDialogParams": { "description": "Specifies the parameters for an \"audioDialog\" type Voice Flow Module. \"audioDialogParams\" configuration is used in an \"audioDialog\" type Voice Flow Module.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "dialogPromptCollection": { "description": "An array of Audio Prompt Module groups that define all audio playbacks throughout the execution of an interactive dialog.", "type": "array", "items": { "description": "Array of Audio Prompt Module groups that define all audio playbacks to Users throughout the execution of an interactive dialog.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "type": { "description": "Specifies the type of the Audio Prompt group. Values: \"preInitial\", \"initial\", \"garbage\", \"timeout\", or \"sr_error\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "style": { "description": "Specifies the style, method or sequence of selecting an Audio Prompt Module configured in an Audio Prompt Module group. Values: \"single\", \"select\", \"combo\", or \"serial\". Default: \"combo\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "recognizeWhilePlay": { "description": "Specifies if speech recognition is active during audio playback so User can barge-in instead of speech recognition starting after audio playback ends. Default: \"false\". The value can be set at runtime using the \"recognizeWhilePlayRuntime\" property.", "type": "boolean" }, "recognizeWhilePlayRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"recognizeWhilePlay\" property. Example: \"$[RecognizeWhilePlay]\".", "type": "string" }, "playInitialAfter": { "description": "Specifies whether the \"initial\" type Audio Prompt Module group will be re-processed for audio playback after \"garbage\", \"timeout\" or \"sr_error\" type Audio Prompt Module group has completed its processing for audio playback. Default: \"false\". The value can be set at runtime using the \"playInitialAfterRuntime\" property.", "type": "boolean" }, "playInitialAfterRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"playInitialAfter\" property. Example: \"$[PlayInitialAfter]\".", "type": "string" }, "_promptID": { "description": "Placeholder for documenting or noting other prompt IDs. Voice Flow processing ignores this property.", "type": "string" }, "promptID": { "description": "ID of Audio Prompt Module to process for audio playback. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "promptCollection": { "description": "Specifies an array of Audio Prompt Module IDs to be processed for audio playback according to the \"style\" of the Audio Prompt Module group.", "type": "array", "items": { "description": "List of Audio Prompt Module IDs to be processed for audio playback.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "_promptID": { "description": "Placeholder for documenting or noting other prompt IDs. Voice Flow processing ignores this property.", "type": "string" }, "promptID": { "description": "ID of a Audio Prompt Module. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" } }, "required": ["promptID"], "additionalProperties": false } } }, "required": ["type"], "additionalProperties": false } }, "dialogMaxRetryCount": { "description": "Specifies the parameters for maximum retry counts in a dialog to collect input from a User that translates to a valid SR Hypothesis or a valid User Intent.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "timeout": { "description": "Maximum threshold count of retries for no input or silence from User. The value can be set at runtime using the \"timeoutRuntime\" property.", "type": "integer" }, " timeoutRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"timeout\" property. Example: \"$[Timeout]\".", "type": "string" }, "garbage": { "description": "Maximum threshold count of retries for invalid or unreceognizable input from User. The value can be set at runtime using the \"garbageRuntime\" property.", "type": "integer" }, "garbageRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"garbage\" property. Example: \"$[Garbage]\".", "type": "string" }, "sr_error": { "description": "Maximum threshold count of retries for errors encountered with speech recognition. The value can be set at runtime using the \"sr_errorRuntime\" property.", "type": "integer" }, "sr_errorRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"sr_error\" property. Example: \"$[SR_error]\".", "type": "string" }, "totalRetry": { "description": "Maximum threshold count of total retries inclusive of retry counts from \"garbage\", \"timeout\" and \"sr_error\". The value can be set at runtime using the \"totalRetryRuntime\" property.", "type": "integer" }, "totalRetryRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"totalRetry\" property. Example: \"$[totalRetry]\".", "type": "string" }, }, "required": ["timeout", "garbage", "sr_error", "totalRetry"], "additionalProperties": false } }, "required": [], "additionalProperties": false }, "audioListenerParams": { "description": "Specifies the parameters for a \"audioListener\" type Voice Flow Module. \"audioListenerParams\" configuration is used in \"audioListener\" type Voice Flow Module.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "_promptID": { "description": "Placeholder for documenting or noting other prompt IDs. Voice Flow processing ignores this property.", "type": "string" }, "promptID": { "description": "ID of Audio Prompt Module to process for audio playback. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", } }, "required": ["promptID"], "additionalProperties": false }, "runAECParams": { "description": "Specifies the parameters for a \"runAEC\" type Voice Flow Module. \"runAECParams\" configuration is used in \"runAECParams\" type Voice Flow Module.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "id": { "description": "ID of the Acoustic Echo Cancelation (AEC) task. User defined. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "renderPromptID": { "description": "ID of Audio Prompt Module processed for audio playback on Device which generated acoustic echo. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "captureFileName": { "description": "File name for recorded audio containing acoustic echo generated by audio playback. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "captureFileLocation": { "description": "URL or location of folder where \"captureFileName\" is located. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "resultFileName": { "description": "File name for resulting processed recorded audio containing audio data with canceled acoustic echo. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "resultFileLocation": { "description": "URL or location of folder where \"resultFileName\" will be located. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "languageCode": { "description": "The language locale folder name, containing the AEC files for AEC task, to be added to the \"captureFileLocation\". Also the language locale folder name is added to the \"resultFileLocation\" to store the \"resultFileName\" at. Default: \"en-US\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "audioFormat": { "$ref": "#/$defs/audioFormat" }, "vadParams": { "$ref": "#/$defs/vadParams" }, "aecParams": { "$ref": "#/$defs/aecParams" }, "adaptAEC": { "description": "Specifies whether this \"runAEC\" Voice Flow Module will be used to run multiple AEC tasks to collect AEC statistics that help determine the optimal AEC parameters for best AEC performance. Default: \"false\". The value can be set at runtime using the \"adaptAECRuntime\" property.", "type": "boolean", }, "adaptAECRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"adaptAEC\" property. Example: \"$[AdaptAEC]\".", "type": "string" }, "aecAdaptParams": { "description": "Specifies the parameters for executing multiple AEC tasks and collect AEC statistics for each task if \"adaptAEC\" is set to \"true\".", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "initialDelayOffsetMs": { "description": "Specifies initial delay offset duration in milliseconds. Default: 0. The value can be set at runtime using the \"initialDelayOffsetMsRuntime\" property.", "type": "integer", }, "initialDelayOffsetMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"initialDelayOffsetMs\" property. Example: \"$[InitialDelayOffsetMs]\".", "type": "string" }, "finalDelayOffsetMs": { "description": "Specifies final delay offset duration in milliseconds. Default: 0. Example: \"finalDelayOffsetMs\" = 75. The value can be set at runtime using the \"finalDelayOffsetMsRuntime\" property.", "type": "integer", }, "finalDelayOffsetMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"finalDelayOffsetMs\" property. Example: \"$[FinalDelayOffsetMs]\".", "type": "string" }, "delayOffsetIncrementMs": { "description": "Specifies delay offset duration increment in milliseconds. Default: 5. The value can be set at runtime using the \"delayOffsetIncrementMsRuntime\" property.", "type": "integer", }, "delayOffsetIncrementMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"delayOffsetIncrementMs\" property. Example: \"$[DelayOffsetIncrementMs]\".", "type": "string" }, "resultDataFileName": { "description": "File name containing the AEC data and statistics results generated by executing the AEC tasks. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "resultDataFileLocation": { "description": "URL or location of folder where \"resultDataFileName\" will be located. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", } }, "required": [], "additionalProperties": false } }, "required": [], "additionalProperties": false }, "goTo": { "description": "Specifies the next Voice Flow Module ID to transition to for processing. Voice Flow Module IDs to transition to can be static or can be assigned dynamically to a Key and retrieved at runtime if noted as $[Key]", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "DEFAULT": { "description": "Specifies default Voice Flow Module ID to transition to if no other configured transition rules apply. Example: \"DEFAULT\": \"VF_END\" transitions processing to the Voice Flow Module VF_END which is a reserved Voice Flow Module ID for last Voice Flow Module to process in a Voice Flow. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "maxTimeoutCount": { "description": "Specifies the Voice Flow Module ID to transition to if a maximum timeout retry count is reached when processing \"audioDialog\" type Voice Flow Module. Default: value of \"DEFAULT\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "maxGarbageCount": { "description": "Specifies the Voice Flow Module ID to transition to if a maximum garbage retry count is reached when processing \"audioDialog\" type Voice Flow Module. Default: value of \"DEFAULT\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "maxSRErrorCount": { "description": "Specifies the Voice Flow Module ID to transition to if a maximum speech recognition error retry count is reached when processing \"audioDialog\" type Voice Flow Module. Default: value of \"DEFAULT\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "maxTotalRetryCount": { "description": "Specifies the Voice Flow Module ID to transition to if a maximum total retry count is reached when processing \"audioDialog\" type Voice Flow Module. Default: value of \"DEFAULT\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "loadPromptFailure": { "description": "Specifies the Voice Flow Module ID to transition to if an Audio Prompt Module failed to process for audio playback when processing \"playAudio\", \"audioDialog\", or \"audioListener\" type Voice Flow Modules. Default: value of \"DEFAULT\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "internalFailure": { "description": "Specifies the Voice Flow Module ID to transition to if an internal failure is detected when processing a Voice Flow Module. Default: value of \"DEFAULT\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string", }, "userInputCollection": { "description": "Specifies an array of Voice Flow Module IDs to transition to as a result of comparing a speech hypothesis to entries in list of valid user inputs.", "type": "array", "items": { "description": "List of Voice Flow Module IDs to transition to if a speech hypothesis compares and matches to an entry from list of valid user inputs.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "enablePartialSRHypothsis": { "description": "Specifies whether comparing partial SR hypotheses to entries in a valid user input list is enabled. Default: \"false\". The value cannot be set at runtime.", "type": "boolean" }, "comparator": { "description": "Specifies type of comparison executed between SR hypothesis and entries in a valid user input list. Values: \"equals\", \"starts\", or \"contains\". Default: \"equals\". SR Hypothesis is compared to determine if it equals, starts with or contains an entry in a valid user input list. Comparisons are case insensitive. The value cannot be set at runtime.", "type": "string" }, "input": { "description": "specifies an entry from a valid user input list. The value cannot be set at runtime.", "type": "string" }, "goTo": { "description": "Specifies the Voice Module ID to transition to if comparing speech hypothesis to value of \"input\" results in a match. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" } }, "required": ["input", "goTo"], "additionalProperties": false } }, "userIntentCollection": { "description": "Specifies an array of Voice Flow Module IDs to transition to as a result of Client classifying a speech hypothesis to a User intent that matches an entry in a list of valid user intents.", "type": "array", "items": { "description": "List of Voice Flow Module IDs to transition to if Client classifies a speech hypothesis to an entry from a list of valid user intents.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "enablePartialSRHypothsis": { "description": "Specifies whether to enable classification of partial SR hypotheses to entries in a valid user intent. Default: \"false\". The value cannot be set at runtime.", "type": "boolean" }, "intent": { "description": "specifies an entry from a valid user intent list. Value of \"intent\" may reference a Key with its value updated by Client at runtime. Example: \"intent\": \"$[Key]\". The value cannot be set at runtime.", "type": "string" }, "goTo": { "description": "Specifies the Voice Module ID to transition to if a speech hypothesis is classified to a user intent that matches value of \"input\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" } }, "required": ["intent", "goTo"], "additionalProperties": false } }, "stopRecordReason": { "description": "Specifies the Voice Flow Module IDs to transition to depending on the reason that caused audio recording to stop.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "unknownError": { "description": "Unknown error. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "writeToStreamError": { "description": "Write to stream error. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "alreadyRecording": { "description": "Audio recording did not start because audio recording is already active. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "recordingFileError": { "description": "Recording to file error. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "audioFormatError": { "description": "Audio Format error. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "unknown": { "description": "Unknown reason. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "stopRequest": { "description": "Received a stop audio recording request. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "maxAudioExceeded": { "description": "Audio recorded in file exceeded maximum duration threshold. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "maxRecordingExceeded": { "description": "Audio read from audio source to be processed and recorded exceeded maximum duration threshold. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "maxPreSpeechSilenceExceeded": { "description": "Pre-speech silence duration exceeded maximum pre-speech duration threshold. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "maxPostSpeechSilenceExceeded": { "description": "Post-speech silence duration exceeded maximum post-speech duration threshold. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "maxSpeechExceeded": { "description": "Speech duration exceeded maximum speech duration threshold. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "reachedEndOfFile": { "description": "Reached end of file. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" } }, "required": [], "additionalProperties": false } }, "required": ["DEFAULT"], "additionalProperties": false } }, "required": ["id", "type", "name"], "additionalProperties": false }, "$defs": { "recordAudioParams": { "description": "Specifies the parameters for recording audio. \"recordAudioParams\" configuration is used in Voice Flow Modules of types \"recordAudio\", \"audioDialog\" and \"audioListener\".", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "id": { "description": "Specifies an ID form the audio recording task. User Defined. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "_promptID": { "description": "Placeholder for documenting or noting other prompt IDs. Voice Flow processing ignores this property.", "type": "string" }, "promptID": { "description": "The ID of an Audio Prompt Module to process for audio playback either after or during audio recording, or to process as the source of the audio data to be recorded. This property is used only in a \"recordAudio\" type Voice Flow VFM. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "recordFromPrompt": { "description": "Specifies if audio data source for the audio recording is the audio content of an Audio Prompt Module if \"promptID\" is defined and configured. Default: \"false\" which means that Audio Prompt Module will be processed for audio playback. This property is used only in a \"recordAudio\" type Voice Flow VFM. The value can be set at runtime using the \"recordFromPromptRuntime\" property.", "type": "boolean" }, "recordFromPromptRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"recordFromPrompt\" property. Example: \"$[RecordFromPrompt]\".", "type": "string" }, "recordWhilePlay": { "description": "Specifies if audio recording will occur at the same time as audio playback if \"promptID\" is configured and \"recordFromPrompt\" is \"false\". Default: \"false\" which means that audio recording will start after audio playback ends. This property is used only in a \"recordAudio\" type Voice Flow VFM. The value can be set at runtime using the \"recordWhilePlayRuntime\" property.", "type": "boolean" }, "recordWhilePlayRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"recordWhilePlay\" property. Example: \"$[RecordWhilePlay]\".", "type": "string" }, "stopPlayAudioWhenSpeechDetected": { "description": "Specifies if audio playback should automatically stop if speech is detected during audio recording. Default: \"false\". if \"true\" then this requires \"vadParams\" to be also configured. The value can be set at runtime using the \"stopPlayAudioWhenSpeechDetectedRuntime\" property.", "type": "boolean" }, "stopPlayAudioWhenSpeechDetectedRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"stopPlayAudioWhenSpeechDetectedRuntime\" property. Example: \"$[StopPlayAudioWhenSpeechDetectedRuntime]\".", "type": "string" }, "stopPlayAudioWhenValidSRHypothesis": { "description": "Specifies if audio playback should automatically stop if a valid Speech Recognition hypothesis is recognized during audio recording. Default: \"false\". Requires \"stopPlaySRHypothesisList\" to be configured. This property is used only in \"audioDialog\" and \"audioListener\" Voice Flow Module types. The value can be set at runtime using the \"stopPlayAudioWhenValidSRHypothesisRuntime\" property.", "type": "boolean" }, "stopPlayAudioWhenValidSRHypothesisRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"stopPlayAudioWhenValidSRHypothesis\" property. Example: \"$[StopPlayAudioWhenValidSRHypothesis]\".", "type": "string" }, "enableStopPlaySRHypothesisPartial": { "description": "Specifies if audio playback should automatically stop if a partial Speech Recognition hypothesis is recognized during audio recording. Default: \"false\". This property is used only in \"audioDialog\" and \"audioListener\" Voice Flow Module types. The value can be set at runtime using the \"enableStopPlaySRHypothesisPartialRuntime\" property.", "type": "boolean" }, "enableStopPlaySRHypothesisPartialRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enableStopPlaySRHypothesisPartial\" property. Example: \"$[EnableStopPlaySRHypothesisPartial]\".", "type": "string" }, "stopPlaySRHypothesisList": { "description": "String containing multiple SR Hypotheses separated by \"|\" delimiter. Audio recording will automatically stop if SR hypothesis matches any hypothesis in the list. This property is used only in \"audioDialog\" and \"audioListener\" Voice Flow Module types. Example: \"stopPlaySRHypothesisList\": \"hey veronica | Go to sleep | wake up\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "_fileName": { "description": "Placeholder for documenting or noting other filenames. Voice Flow processing ignores this property.", "type": "string" }, "fileName": { "description": "File name that will contain the recorded audio. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "_fileLocation": { "description": "Placeholder for documenting or noting other file locations. Voice Flow processing ignores this property.", "type": "string" }, "fileLocation": { "description": "URL or location of folder where \"fileName\" containing the recorded audio will be located.The value can be set at runtime using \"$[
]\" entry convention. ", "type": "string" }, "languageCode": { "description": "Specifies the name of the folder specific to language locale. This folder name is used as part of \"fileLocation\" for the final location to save \"fileName\" at. Default: \"en-US\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "notifyPosMs": { "description": "Time duration in milliseconds for, when audio recording is reached, a notification is sent to Client. Default: 0. The value can be set at runtime using the \"notifyPosMsRuntime\" property.", "type": "integer" }, "notifyPosMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"notifyPosMs\" property. Example: \"$[NotifyPosMs]\".", "type": "string" }, "audioFormat": { "$ref": "#/$defs/audioFormat" }, "audioCodec": { "$ref": "#/$defs/audioCodec" }, "vadParams": { "$ref": "#/$defs/vadParams" }, "aecParams": { "$ref": "#/$defs/aecParams" }, "stopRecordParams": { "description": "Specifies the recording audio thresholds, which when reached, result in record audio to stop automatically.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "maxRecordLengthMs": { "description": "Specifies the maximum recording duration threshold in milliseconds of audio recorded to destination. Record audio ends when this threshold is reached. Default: 0 (disabled). The value can be set at runtime using the \"maxRecordLengthMsRuntime\" property.", "type": "integer" }, "maxRecordLengthMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"maxRecordLengthMs\" property. Example: \"$[MaxRecordLengthMs]\".", "type": "string" }, "maxAudioLengthMs": { "description": "Specifies the maximum audio duration threshold in milliseconds of audio captured at a source to be processed and recorded. if VAD is filtering silence from recorded audio then recorded audio duration would be less than duration of audio captured at source. Record audio ends when this threshold is reached. Default: 0 (disabled). The value can be set at runtime using the \"maxAudioLengthMsRuntime\" property.", "type": "integer" }, "maxAudioLengthMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"maxAudioLengthMs\" property. Example: \"$[MaxAudioLengthMs]\".", "type": "string" }, "maxSpeechLengthMs": { "description": "Specifies the maximum speech duration threshold in milliseconds in recorded audio. Record audio ends when this threshold is reached. Default: 0 (disabled). The value can be set at runtime using the \"maxSpeechLengthMsRuntime\" property.", "type": "integer" }, "maxSpeechLengthMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"maxSpeechLengthMs\" property. Example: \"$[MaxSpeechLengthMs]\".", "type": "string" }, "maxPreSpeechSilenceLengthMs": { "description": "Specifies the maximum pre-speech silence duration threshold in milliseconds. Record audio ends when this threshold is reached. Default: 0 (disabled). The value can be set at runtime using the \"maxPreSpeechSilenceLengthMsRuntime\" property.", "type": "integer" }, "maxPreSpeechSilenceLengthMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"maxPreSpeechSilenceLengthMs\" property. Example: \"$[MaxPreSpeechSilenceLengthMs]\".", "type": "string" }, "maxPostSpeechSilenceLengthMs": { "description": "Specifies the maximum post-speech silence duration threshold in milliseconds. Record audio ends when this threshold is reached. Default: 0 (disabled). The value can be set at runtime using the \"maxPostSpeechSilenceLengthMsRuntime\" property.", "type": "integer" }, "maxPostSpeechSilenceLengthMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"maxPostSpeechSilenceLengthMs\" property. Example: \"$[MaxPostSpeechSilenceLengthMs]\".", "type": "string" }, }, "required": [], "additionalProperties": false } }, "required": [], "additionalProperties": false }, "audioFormat": { "description": "Audio format of raw audio. Use if audio format from source is not available or cannot be automatically detected. Values: \"pcm_8khz\", \"pcm_16khz\", \"pcm_32khz\", \"pcm_48khz\", \"wav\", \"compressed\" (experimental), \"preencoded\" (experimental), \"media\", or \"raw\". Default: \"pcm_16khz\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "audioCodec": { "description": "(Experimental) The audio codec parameters to use for audio playback and audio recording if one is not specified or supported in \"audioFormat\" property. Example: \"payloadType\": 93, \"payloadName\": \"L16\", \"payloadFrequency\": 16000, \"audioPacketSizeBytes\": 160, \"numberChannelsPerAudioSample\": 1, \"sampleRateBitsPerSecond\": 256000.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "payloadType": { "description": "Type of payload. Examples: 0 for PCMU; 8 for PCMA; 9 for G&22; 120 foe OPUS, etc. The value can be set at runtime using the \"payloadTypeRuntime\" property.", "type": "integer" }, "payloadTypeRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"payloadType\" property. Example: \"$[PayloadType]\".", "type": "string" }, "payloadName": { "description": "Name of audio codec payload. Examples: \"PCMU\", \"PCMA\", \"G722\", \"OPUS\". etc. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "payloadFrequency": { "description": "Sampling rate: number of samples per second. Examples: 8000, 16000, 320000, 48000, etc. The value can be set at runtime using the \"payloadFrequencyRuntime\" property.", "type": "integer" }, "payloadFrequencyRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"payloadFrequency\" property. Example: \"$[PayloadFrequency]\".", "type": "string" }, "audioPacketSizeBytes": { "description": "Size of an audio frame packet. Example: sampling rate divided by 100 for a 10ms frame and multiplied by number of bytes per sample. The value can be set at runtime using the \"audioPacketSizeBytesRuntime\" property.", "type": "integer" }, "audioPacketSizeBytesRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"audioPacketSizeBytes\" property. Example: \"$[AudioPacketSizeBytes]\".", "type": "string" }, "numberChannelsPerAudioSample": { "description": "Number of channels. Values: 1 for mono or 2 for stereo. The value can be set at runtime using the \"numberChannelsPerAudioSampleRuntime\" property.", "type": "integer" }, "numberChannelsPerAudioSampleRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"numberChannelsPerAudioSample\" property. Example: \"$[NumberChannelsPerAudioSample]\".", "type": "string" }, "sampleRateBitsPerSecond": { "description": "Bit rate per second. Example: sampling rate multiplied by number of bytes per sample multiplied by number of bits per byte. The value can be set at runtime using the \"sampleRateBitsPerSecondRuntime\" property.", "type": "integer" }, "sampleRateBitsPerSecondRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"sampleRateBitsPerSecond\" property. Example: \"$[SampleRateBitsPerSecond]\".", "type": "string" }, }, "required": ["payloadType", "payloadName", "payloadFrequency", "audioPacketSizeBytes", "numberChannelsPerAudioSample", "sampleRateBitsPerSecond"], "additionalProperties": false }, "vadParams": { "description": "Specifies the Voice Activity Detection (VAD) parameters used for processing recorded audio.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "enableVAD": { "description": "Specifies if Voice Activity Detection will be enabled on the recorded audio. Default: \"false\". The value can be set at runtime using the \"enableVADRuntime\" property.", "type": "boolean" }, "enableVADRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enableVAD\" property. Example: \"$[EnableVAD]\".", "type": "string" }, "trimSilence": { "description": "Specifies if silence to be trimmed from the recorded audio. Default: \"false\". The value can be set at runtime using the \"trimSilenceRuntime\" property.", "type": "boolean" }, "trimSilenceRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"trimSilence\" property. Example: \"$[TrimSilence]\".", "type": "string" }, "savePreTrimAudio": { "description": "Specifies if the original recorded audio should also be saved in its own file if \"trimSilence\" is \"true\". Default: \"false\". if \"true\", this will result in another file to be recorded with base file name containing \"preTrim\" string. The value can be set at runtime using the \"savePreTrimAudioRuntime\" property.", "type": "boolean" }, "savePreTrimAudioRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"savePreTrimAudio\" property. Example: \"$[SavePreTrimAudio]\".", "type": "string" }, "vadLikelihood": { "description": "Specifies the likelihood category of VAD which impacts the sensitivity of VAD. Values: \"very low\", \"low\", \"moderate\", \"high\", or \"custom\". Default: \"custom\". \"custom\" value requires \"vadCustomLikelihoodParams\" to be configured. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "vadCustomLikelihoodParams": { "description": "Specifies the custom likelihood parameters for VAD which determines the VAD sensitivity.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "minSpeechToDetectMs": { "description": "Specifies the minimum duration in milliseconds of speech energy for VAD to declare that speech is detected. Default: 200. The value can be set at runtime using the \"minSpeechToDetectMsRuntime\" property.", "type": "integer" }, "minSpeechToDetectMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"minSpeechToDetectMs\" property. Example: \"$[MinSpeechToDetectMs]\".", "type": "string" }, "minSilenceToDetectMs": { "description": "Specifies the minimum duration in milliseconds of silence for VAD to declare that silence is detected. Default: 500. The value can be set at runtime using the \"minSilenceToDetectMsRuntime\" property.", "type": "integer" }, "minSilenceToDetectMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"minSilenceToDetectMs\" property. Example: \"$[MinSilenceToDetectMs]\".", "type": "string" }, "localThreshold": { "description": "Specifies speech energy local threshold. Default: 82. The value can be set at runtime using the \"localThresholdRuntime\" property.", "type": "integer" }, "localThresholdRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"localThreshold\" property. Example: \"$[LocalThreshold]\".", "type": "string" }, "globalThreshold": { "description": "Specifies speech energy global threshold. Default: 285. The value can be set at runtime using the \"globalThresholdRuntime\" property.", "type": "integer" }, "globalThresholdRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"globalThreshold\" property. Example: \"$[GlobalThreshold]\".", "type": "string" }, }, "required": [], "additionalProperties": false } }, "required": [], "additionalProperties": false }, "aecParams": { "description": "Specifies the Acoustic Echo Cancelation (AEC) parameters used for processing recorded audio.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "enableAEC": { "description": "Specifies if AEC will be enabled during concurrent audio recording and audio playback. Default: \"true\". The value can be set at runtime using the \"enableAECRuntime\" property.", "type": "boolean" }, "enableAECRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enableAEC\" property. Example: \"$[EnableAEC]\".", "type": "string" }, "delayOffsetMs": { "description": "Specifies delay offset duration window in milliseconds during which AEC will cancel the delayed echo of an audio playback successfully. Default: 0. Range is 0-100. The value can be set at runtime using the \"delayOffsetMsRuntime\" property.", "type": "integer" }, "delayOffsetMsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"delayOffsetMs\" property. Example: \"$[DelayOffsetMs]\".", "type": "string" }, "aecMobile": { "description": "Specifies if AEC for mobile device should be used. Default: \"false\". The value can be set at runtime using the \"aecMobileRuntime\" property.", "type": "boolean" }, "aecMobileRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"aecMobile\" property. Example: \"$[AECMobile]\".", "type": "string" }, "aecMobileMode": { "description": "Specifies AEC mobile mode if \"aecMobile\" is \"true\". Values: 0 (quiet ear piece or headset), 1 (ear piece), 2 (loud ear piece), 3 (speaker phone) or 4 (loud speaker phone). Default: 3. The value can be set at runtime using the \"aecMobileModeRuntime\" property.", "type": "integer" }, "aecMobileModeRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose integer value can be set at runtime by an application. If the value of the field is a valid integer, then it will replace the value entered in the \"aecMobileMode\" property. Example: \"$[AECMobileMode]\".", "type": "string" }, "enableAECMobileComfortNoise": { "description": "Specifies that comfort noise replaces suppressed background noise to maintain a consistent signal level. Default: \"true\". The value can be set at runtime using the \"enableAECMobileComfortNoiseRuntime\" property.", "type": "boolean" }, "enableAECMobileComfortNoiseRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enableAECMobileComfortNoise\" property. Example: \"$[EnableAECMobileComfortNoise]\".", "type": "string" }, "enableDriftCompensation": { "description": "Specifies if drift compensation to be enabled. Default: \"false\". The value can be set at runtime using the \"enableDriftCompensationRuntime\" property.", "type": "boolean" }, "enableDriftCompensationRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enableDriftCompensation\" property. Example: \"$[EnableDriftCompensation]\".", "type": "string" }, "enableAECCoreDataDump": { "description": "Specifies if all AEC Core Data is to be dumped into files. Default: \"false\". The value can be set at runtime using the \"enableAECCoreDataDumpRuntime\" property.", "type": "boolean" }, "enableAECCoreDataDumpRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enableAECCoreDataDump\" property. Example: \"$[EnableAECCoreDataDump]\".", "type": "string" }, "enableECDataDump": { "description": "Specifies if all Echo Canceler Data is to be dumped into files. Default: \"false\". The value can be set at runtime using the \"enableECDataDumpRuntime\" property.", "type": "boolean" }, "enableECDataDumpRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enableECDataDump\" property. Example: \"$[EnableECDataDump]\".", "type": "string" }, "enableAECLevelEstimator": { "description": "Specifies if AEC level estimator is to be enabled. Default: \"false\". Set to \"true\" to receive AEC statistics using media event notifications to Client. The value can be set at runtime using the \"enableAECLevelEstimatorRuntime\" property.", "type": "boolean" }, "enableAECLevelEstimatorRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"enableAECLevelEstimator\" property. Example: \"$[EnableAECLevelEstimator]\".", "type": "string" }, }, "required": [], "additionalProperties": false }, "pocketSphinxSRCustomDictionary": { "description": "Specifies custom dictionaries to be sent to Pocket Sphinx speech recognizer for more accurate speech recognition.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "loadCustomDictionary": { "description": "Specifies whether to have Pocket Sphinx load custom dictionary. Default: \"false\". The value can be set at runtime using the \"loadCustomDictionaryRuntime\" property.", "type": "boolean" }, "loadCustomDictionaryRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"loadCustomDictionary\" property. Example: \"$[LoadCustomDictionary]\".", "type": "string" }, "customDictionaryEntryList": { "description": "Contains a list of custom dictionary entries separated by '|' as a delimiter. Example: FORWARD F AO R W ER D | ababa AH B AA B AH The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "customDictionaryFileName": { "description": "File name containing the list of custom dictionary entries. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "customDictionaryFileLocation": { "description": "URL or location of folder containing the custom dictionary file. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" } }, "required": [], "additionalProperties": false }, "pocketSphinxSRTask": { "description": "Speech recognition task for Pocket Sphinx to load.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "taskID": { "description": "The ID of the task. User Defined. Example: \"GoForwardBackwardMeters\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "taskType": { "description": "The type of the task. Values: \"jsgf\", \"jsgfString\", \"allPhone\", \"lm\", \"keyPhrase\", \"kws\", \"fsg\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "taskFileName": { "description": "File name containing the task data. Example: \"taskFileName\": \"goforward.gram\". Example of a dymamic task file name specified by Client at runtime: \"taskFileName\": \"$[DynaGramName]\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "taskFileLocation": { "description": "URL or location of folder containing the task file. Example of a dymamic task file location specified by Client at runtime: \"taskFileLocation\": \"$[DynaGramLocation]\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "taskData": { "description": "The text string containing the task data. Example: \"taskData\": \"#JSGF V1.0;\n/**\n * JSGF Grammar for Turtle example \n*/\n\ngrammar goforward;\n\npublic
= go forward ten meters;\n\npublic
= go
[meter | meters];\n\n
= forward | backward;\n\n
= one | two | three | four | five | six | seven | eight | nine | ten;\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "taskRule": { "description": "The rule name of the task to activate. Example: \"taskRule\": \"move\". Example of a dymamic task rule specified by Client at runtime: \"taskRule\": \"$[DynaSRTaskRule]\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "autoResolveUnknownWords": { "description": "Specifies whether to have Pocket Sphinx automatically resolve unknown words or words not in Pocket Sphinx dictionary. Default: \"false\". The value can be set at runtime using the \"autoResolveUnknownWordsRuntime\" property.", "type": "boolean" }, "autoResolveUnknownWordsRuntime": { "description": "Contains the name of a field, as a string wrapped between \"$[\" and \"]\", whose boolean value can be set at runtime by an application. If the value of the field is a valid boolean, then it will replace the value entered in the \"autoResolveUnknownWords\" property. Example: \"$[AutoResolveUnknownWords]\".", "type": "string" }, }, "required": ["taskID", "taskType"], "additionalProperties": false }, "ssVoiceParams": { "description": "Specifies the parameters of the voice used for Speech Synthesis. If declared in a \"processParams\" then this applies globally to all VoiceFlows. If declared in \"playAudioParams\" then this applies to the Voice Flow Module. if declared in an audio segment then this applies for that audio segment only.", "type": "object", "properties": { "_COMMENT_": { "description": "Placeholder for entering a comment. Voice Flow processing ignores this property.", "type": "string" }, "id": { "description": "ID of the voice, if known. Apple Example: \"com.apple.ttsbundle.Samantha-compact\". Flite example: \"slt-hts\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "name": { "description": "Name of the voice, if known. Apple Example: \"Samantha\". Flite example: \"slt-hts\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "gender": { "description": "Gender of the voice. Values: \"male\" or \"female\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "quality": { "description": "Voice quality. Values: \"compact\", \"enhanced\", \"premium\" or an empty string. The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, "languageCode": { "description": "Language locale of the voice. Example: \"en-US\". The value can be set at runtime using \"$[
]\" entry convention.", "type": "string" }, }, "required": [], "additionalProperties": false }, } }