UNPKG

microsoft-cognitiveservices-speech-sdk

Version:
1 lines 3.54 kB
{"version":3,"sources":["src/common.speech/DynamicGrammarBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAGnD;;;GAGG;AACH,qBAAa,qBAAqB;IAE9B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,YAAY,CAAW;IAC/B,OAAO,CAAC,UAAU,CAAe;IAI1B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAa1C,YAAY,IAAI,IAAI;IAKpB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAarD,aAAa,IAAI,IAAI;IAKrB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAO/B,qBAAqB,IAAI,GAAG;CAuBtC","file":"DynamicGrammarBuilder.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { Dgi } from \"./ServiceMessages/Dgi/Dgi.js\";\r\nimport { GroupType } from \"./ServiceMessages/Dgi/Group.js\";\r\nimport { Item } from \"./ServiceMessages/Dgi/Item.js\";\r\n/**\r\n * Responsible for building the object to be sent to the speech service to support dynamic grammars.\r\n * @class DynamicGrammarBuilder\r\n */\r\nexport class DynamicGrammarBuilder {\r\n\r\n private privPhrases: string[];\r\n private privGrammars: string[];\r\n private privWeight: number = 1.0;\r\n\r\n // Adds one more reference phrases to the dynamic grammar to send.\r\n // All added phrases are generic phrases.\r\n public addPhrase(phrase: string | string[]): void {\r\n if (!this.privPhrases) {\r\n this.privPhrases = [];\r\n }\r\n\r\n if (phrase instanceof Array) {\r\n this.privPhrases = this.privPhrases.concat(phrase);\r\n } else {\r\n this.privPhrases.push(phrase);\r\n }\r\n }\r\n\r\n // Clears all phrases stored in the current object.\r\n public clearPhrases(): void {\r\n this.privPhrases = undefined;\r\n }\r\n\r\n // Adds one or more reference grammars to the current grammar.\r\n public addReferenceGrammar(grammar: string | string[]): void {\r\n if (!this.privGrammars) {\r\n this.privGrammars = [];\r\n }\r\n\r\n if (grammar instanceof Array) {\r\n this.privGrammars = this.privGrammars.concat(grammar);\r\n } else {\r\n this.privGrammars.push(grammar);\r\n }\r\n }\r\n\r\n // clears all grammars stored on the recognizer.\r\n public clearGrammars(): void {\r\n this.privGrammars = undefined;\r\n }\r\n\r\n // Sets the weight for the dynamic grammar.\r\n public setWeight(weight: number): void {\r\n this.privWeight = weight;\r\n }\r\n\r\n // Generates an object that represents the dynamic grammar used by the Speech Service.\r\n // This is done by building an object with the correct layout based on the phrases and reference grammars added to this instance\r\n // of a DynamicGrammarBuilder\r\n public generateGrammarObject(): Dgi {\r\n if (this.privGrammars === undefined && this.privPhrases === undefined) {\r\n return undefined;\r\n }\r\n\r\n const retObj: Dgi = {};\r\n retObj.referenceGrammars = this.privGrammars;\r\n\r\n if (undefined !== this.privPhrases && 0 !== this.privPhrases.length) {\r\n const retPhrases: Item[] = [];\r\n\r\n this.privPhrases.forEach((value: string): void => {\r\n retPhrases.push({\r\n text: value,\r\n });\r\n });\r\n\r\n retObj.groups = [{ type: GroupType.Generic, items: retPhrases }];\r\n retObj.bias = this.privWeight;\r\n }\r\n\r\n return retObj;\r\n }\r\n}\r\n"]}