@hahnpro/ms-speech-sdk
Version:
Microsoft Cognitive Services Speech SDK for JavaScript
1 lines • 3.37 kB
Source Map (JSON)
{"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.\n// Licensed under the MIT license.\n\nimport { Dgi } from \"./ServiceMessages/Dgi/Dgi.js\";\nimport { GroupType } from \"./ServiceMessages/Dgi/Group.js\";\nimport { Item } from \"./ServiceMessages/Dgi/Item.js\";\n/**\n * Responsible for building the object to be sent to the speech service to support dynamic grammars.\n * @class DynamicGrammarBuilder\n */\nexport class DynamicGrammarBuilder {\n\n private privPhrases: string[];\n private privGrammars: string[];\n private privWeight: number = 1.0;\n\n // Adds one more reference phrases to the dynamic grammar to send.\n // All added phrases are generic phrases.\n public addPhrase(phrase: string | string[]): void {\n if (!this.privPhrases) {\n this.privPhrases = [];\n }\n\n if (phrase instanceof Array) {\n this.privPhrases = this.privPhrases.concat(phrase);\n } else {\n this.privPhrases.push(phrase);\n }\n }\n\n // Clears all phrases stored in the current object.\n public clearPhrases(): void {\n this.privPhrases = undefined;\n }\n\n // Adds one or more reference grammars to the current grammar.\n public addReferenceGrammar(grammar: string | string[]): void {\n if (!this.privGrammars) {\n this.privGrammars = [];\n }\n\n if (grammar instanceof Array) {\n this.privGrammars = this.privGrammars.concat(grammar);\n } else {\n this.privGrammars.push(grammar);\n }\n }\n\n // clears all grammars stored on the recognizer.\n public clearGrammars(): void {\n this.privGrammars = undefined;\n }\n\n // Sets the weight for the dynamic grammar.\n public setWeight(weight: number): void {\n this.privWeight = weight;\n }\n\n // Generates an object that represents the dynamic grammar used by the Speech Service.\n // This is done by building an object with the correct layout based on the phrases and reference grammars added to this instance\n // of a DynamicGrammarBuilder\n public generateGrammarObject(): Dgi {\n if (this.privGrammars === undefined && this.privPhrases === undefined) {\n return undefined;\n }\n\n const retObj: Dgi = {};\n retObj.referenceGrammars = this.privGrammars;\n\n if (undefined !== this.privPhrases && 0 !== this.privPhrases.length) {\n const retPhrases: Item[] = [];\n\n this.privPhrases.forEach((value: string): void => {\n retPhrases.push({\n text: value,\n });\n });\n\n retObj.groups = [{ type: GroupType.Generic, items: retPhrases }];\n retObj.bias = this.privWeight;\n }\n\n return retObj;\n }\n}\n"]}