5c1b7e8fd32e7d15de061cf3d04799a7fbb3f3b027b19f2488ad62d074f8446d.json 29 KB

1
  1. {"ast":null,"code":"\"use strict\";\n\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IntentServiceRecognizer = void 0;\nconst Exports_js_1 = require(\"../common/Exports.js\");\nconst Exports_js_2 = require(\"../sdk/Exports.js\");\nconst Exports_js_3 = require(\"./Exports.js\");\n// eslint-disable-next-line max-classes-per-file\nclass IntentServiceRecognizer extends Exports_js_3.ServiceRecognizerBase {\n constructor(authentication, connectionFactory, audioSource, recognizerConfig, recognizer) {\n super(authentication, connectionFactory, audioSource, recognizerConfig, recognizer);\n this.privIntentRecognizer = recognizer;\n this.privIntentDataSent = false;\n }\n setIntents(addedIntents, umbrellaIntent) {\n this.privAddedLmIntents = addedIntents;\n this.privUmbrellaIntent = umbrellaIntent;\n this.privIntentDataSent = true;\n }\n processTypeSpecificMessages(connectionMessage) {\n let result;\n let ev;\n let processed = false;\n const resultProps = new Exports_js_2.PropertyCollection();\n if (connectionMessage.messageType === Exports_js_1.MessageType.Text) {\n resultProps.setProperty(Exports_js_2.PropertyId.SpeechServiceResponse_JsonResult, connectionMessage.textBody);\n }\n switch (connectionMessage.path.toLowerCase()) {\n case \"speech.hypothesis\":\n const speechHypothesis = Exports_js_3.SpeechHypothesis.fromJSON(connectionMessage.textBody);\n result = new Exports_js_2.IntentRecognitionResult(undefined, this.privRequestSession.requestId, Exports_js_2.ResultReason.RecognizingIntent, speechHypothesis.Text, speechHypothesis.Duration, speechHypothesis.Offset + this.privRequestSession.currentTurnAudioOffset, speechHypothesis.Language, speechHypothesis.LanguageDetectionConfidence, undefined, connectionMessage.textBody, resultProps);\n this.privRequestSession.onHypothesis(result.offset);\n ev = new Exports_js_2.IntentRecognitionEventArgs(result, speechHypothesis.Offset + this.privRequestSession.currentTurnAudioOffset, this.privRequestSession.sessionId);\n if (!!this.privIntentRecognizer.recognizing) {\n try {\n this.privIntentRecognizer.recognizing(this.privIntentRecognizer, ev);\n /* eslint-disable no-empty */\n } catch (error) {\n // Not going to let errors in the event handler\n // trip things up.\n }\n }\n processed = true;\n break;\n case \"speech.phrase\":\n const simple = Exports_js_3.SimpleSpeechPhrase.fromJSON(connectionMessage.textBody);\n result = new Exports_js_2.IntentRecognitionResult(undefined, this.privRequestSession.requestId, Exports_js_3.EnumTranslation.implTranslateRecognitionResult(simple.RecognitionStatus), simple.DisplayText, simple.Duration, simple.Offset + this.privRequestSession.currentTurnAudioOffset, simple.Language, simple.LanguageDetectionConfidence, undefined, connectionMessage.textBody, resultProps);\n ev = new Exports_js_2.IntentRecognitionEventArgs(result, result.offset, this.privRequestSession.sessionId);\n const sendEvent = () => {\n if (!!this.privIntentRecognizer.recognized) {\n try {\n this.privIntentRecognizer.recognized(this.privIntentRecognizer, ev);\n /* eslint-disable no-empty */\n } catch (error) {\n // Not going to let errors in the event handler\n // trip things up.\n }\n }\n // report result to promise.\n if (!!this.privSuccessCallback) {\n try {\n this.privSuccessCallback(result);\n } catch (e) {\n if (!!this.privErrorCallback) {\n this.privErrorCallback(e);\n }\n }\n // Only invoke the call back once.\n // and if it's successful don't invoke the\n // error after that.\n this.privSuccessCallback = undefined;\n this.privErrorCallback = undefined;\n }\n };\n // If intent data was sent, the terminal result for this recognizer is an intent being found.\n // If no intent data was sent, the terminal event is speech recognition being successful.\n if (false === this.privIntentDataSent || Exports_js_2.ResultReason.NoMatch === ev.result.reason) {\n // Advance the buffers.\n this.privRequestSession.onPhraseRecognized(ev.offset + ev.result.duration);\n sendEvent();\n } else {\n // Squirrel away the args, when the response event arrives it will build upon them\n // and then return\n this.privPendingIntentArgs = ev;\n }\n processed = true;\n break;\n case \"response\":\n // Response from LUIS\n ev = this.privPendingIntentArgs;\n this.privPendingIntentArgs = undefined;\n if (undefined === ev) {\n if (\"\" === connectionMessage.textBody) {\n // This condition happens if there is nothing but silence in the\n // audio sent to the service.\n return;\n }\n // Odd... Not sure this can happen\n ev = new Exports_js_2.IntentRecognitionEventArgs(new Exports_js_2.IntentRecognitionResult(), 0, this.privRequestSession.sessionId);\n }\n const intentResponse = Exports_js_3.IntentResponse.fromJSON(connectionMessage.textBody);\n // If LUIS didn't return anything, send the existing event, else\n // modify it to show the match.\n // See if the intent found is in the list of intents asked for.\n if (null !== intentResponse && !!intentResponse.topScoringIntent && !!intentResponse.topScoringIntent.intent) {\n let addedIntent = this.privAddedLmIntents[intentResponse.topScoringIntent.intent];\n if (this.privUmbrellaIntent !== undefined) {\n addedIntent = this.privUmbrellaIntent;\n }\n if (!!addedIntent) {\n const intentId = addedIntent === undefined || addedIntent.intentName === undefined ? intentResponse.topScoringIntent.intent : addedIntent.intentName;\n let reason = ev.result.reason;\n if (undefined !== intentId) {\n reason = Exports_js_2.ResultReason.RecognizedIntent;\n }\n // make sure, properties is set.\n const properties = undefined !== ev.result.properties ? ev.result.properties : new Exports_js_2.PropertyCollection();\n properties.setProperty(Exports_js_2.PropertyId.LanguageUnderstandingServiceResponse_JsonResult, connectionMessage.textBody);\n ev = new Exports_js_2.IntentRecognitionEventArgs(new Exports_js_2.IntentRecognitionResult(intentId, ev.result.resultId, reason, ev.result.text, ev.result.duration, ev.result.offset, undefined, undefined, ev.result.errorDetails, ev.result.json, properties), ev.offset, ev.sessionId);\n }\n }\n this.privRequestSession.onPhraseRecognized(ev.offset + ev.result.duration);\n if (!!this.privIntentRecognizer.recognized) {\n try {\n this.privIntentRecognizer.recognized(this.privIntentRecognizer, ev);\n /* eslint-disable no-empty */\n } catch (error) {\n // Not going to let errors in the event handler\n // trip things up.\n }\n }\n // report result to promise.\n if (!!this.privSuccessCallback) {\n try {\n this.privSuccessCallback(ev.result);\n } catch (e) {\n if (!!this.privErrorCallback) {\n this.privErrorCallback(e);\n }\n }\n // Only invoke the call back once.\n // and if it's successful don't invoke the\n // error after that.\n this.privSuccessCallback = undefined;\n this.privErrorCallback = undefined;\n }\n processed = true;\n break;\n default:\n break;\n }\n const defferal = new Exports_js_1.Deferred();\n defferal.resolve(processed);\n return defferal.promise;\n }\n // Cancels recognition.\n cancelRecognition(sessionId, requestId, cancellationReason, errorCode, error) {\n const properties = new Exports_js_2.PropertyCollection();\n properties.setProperty(Exports_js_3.CancellationErrorCodePropertyName, Exports_js_2.CancellationErrorCode[errorCode]);\n if (!!this.privIntentRecognizer.canceled) {\n const cancelEvent = new Exports_js_2.IntentRecognitionCanceledEventArgs(cancellationReason, error, errorCode, undefined, undefined, sessionId);\n try {\n this.privIntentRecognizer.canceled(this.privIntentRecognizer, cancelEvent);\n /* eslint-disable no-empty */\n } catch {}\n }\n if (!!this.privSuccessCallback) {\n const result = new Exports_js_2.IntentRecognitionResult(undefined,\n // Intent Id\n requestId, Exports_js_2.ResultReason.Canceled, undefined,\n // Text\n undefined,\n // Duration\n undefined,\n // Offset\n undefined,\n // Language\n undefined,\n // LanguageDetectionConfidence\n error, undefined,\n // Json\n properties);\n try {\n this.privSuccessCallback(result);\n this.privSuccessCallback = undefined;\n /* eslint-disable no-empty */\n } catch {}\n }\n }\n}\nexports.IntentServiceRecognizer = IntentServiceRecognizer;","map":{"version":3,"names":["Object","defineProperty","exports","value","IntentServiceRecognizer","Exports_js_1","require","Exports_js_2","Exports_js_3","ServiceRecognizerBase","constructor","authentication","connectionFactory","audioSource","recognizerConfig","recognizer","privIntentRecognizer","privIntentDataSent","setIntents","addedIntents","umbrellaIntent","privAddedLmIntents","privUmbrellaIntent","processTypeSpecificMessages","connectionMessage","result","ev","processed","resultProps","PropertyCollection","messageType","MessageType","Text","setProperty","PropertyId","SpeechServiceResponse_JsonResult","textBody","path","toLowerCase","speechHypothesis","SpeechHypothesis","fromJSON","IntentRecognitionResult","undefined","privRequestSession","requestId","ResultReason","RecognizingIntent","Duration","Offset","currentTurnAudioOffset","Language","LanguageDetectionConfidence","onHypothesis","offset","IntentRecognitionEventArgs","sessionId","recognizing","error","simple","SimpleSpeechPhrase","EnumTranslation","implTranslateRecognitionResult","RecognitionStatus","DisplayText","sendEvent","recognized","privSuccessCallback","e","privErrorCallback","NoMatch","reason","onPhraseRecognized","duration","privPendingIntentArgs","intentResponse","IntentResponse","topScoringIntent","intent","addedIntent","intentId","intentName","RecognizedIntent","properties","LanguageUnderstandingServiceResponse_JsonResult","resultId","text","errorDetails","json","defferal","Deferred","resolve","promise","cancelRecognition","cancellationReason","errorCode","CancellationErrorCodePropertyName","CancellationErrorCode","canceled","cancelEvent","IntentRecognitionCanceledEventArgs","Canceled"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/microsoft-cognitiveservices-speech-sdk/distrib/lib/src/common.speech/IntentServiceRecognizer.js"],"sourcesContent":["\"use strict\";\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IntentServiceRecognizer = void 0;\nconst Exports_js_1 = require(\"../common/Exports.js\");\nconst Exports_js_2 = require(\"../sdk/Exports.js\");\nconst Exports_js_3 = require(\"./Exports.js\");\n// eslint-disable-next-line max-classes-per-file\nclass IntentServiceRecognizer extends Exports_js_3.ServiceRecognizerBase {\n constructor(authentication, connectionFactory, audioSource, recognizerConfig, recognizer) {\n super(authentication, connectionFactory, audioSource, recognizerConfig, recognizer);\n this.privIntentRecognizer = recognizer;\n this.privIntentDataSent = false;\n }\n setIntents(addedIntents, umbrellaIntent) {\n this.privAddedLmIntents = addedIntents;\n this.privUmbrellaIntent = umbrellaIntent;\n this.privIntentDataSent = true;\n }\n processTypeSpecificMessages(connectionMessage) {\n let result;\n let ev;\n let processed = false;\n const resultProps = new Exports_js_2.PropertyCollection();\n if (connectionMessage.messageType === Exports_js_1.MessageType.Text) {\n resultProps.setProperty(Exports_js_2.PropertyId.SpeechServiceResponse_JsonResult, connectionMessage.textBody);\n }\n switch (connectionMessage.path.toLowerCase()) {\n case \"speech.hypothesis\":\n const speechHypothesis = Exports_js_3.SpeechHypothesis.fromJSON(connectionMessage.textBody);\n result = new Exports_js_2.IntentRecognitionResult(undefined, this.privRequestSession.requestId, Exports_js_2.ResultReason.RecognizingIntent, speechHypothesis.Text, speechHypothesis.Duration, speechHypothesis.Offset + this.privRequestSession.currentTurnAudioOffset, speechHypothesis.Language, speechHypothesis.LanguageDetectionConfidence, undefined, connectionMessage.textBody, resultProps);\n this.privRequestSession.onHypothesis(result.offset);\n ev = new Exports_js_2.IntentRecognitionEventArgs(result, speechHypothesis.Offset + this.privRequestSession.currentTurnAudioOffset, this.privRequestSession.sessionId);\n if (!!this.privIntentRecognizer.recognizing) {\n try {\n this.privIntentRecognizer.recognizing(this.privIntentRecognizer, ev);\n /* eslint-disable no-empty */\n }\n catch (error) {\n // Not going to let errors in the event handler\n // trip things up.\n }\n }\n processed = true;\n break;\n case \"speech.phrase\":\n const simple = Exports_js_3.SimpleSpeechPhrase.fromJSON(connectionMessage.textBody);\n result = new Exports_js_2.IntentRecognitionResult(undefined, this.privRequestSession.requestId, Exports_js_3.EnumTranslation.implTranslateRecognitionResult(simple.RecognitionStatus), simple.DisplayText, simple.Duration, simple.Offset + this.privRequestSession.currentTurnAudioOffset, simple.Language, simple.LanguageDetectionConfidence, undefined, connectionMessage.textBody, resultProps);\n ev = new Exports_js_2.IntentRecognitionEventArgs(result, result.offset, this.privRequestSession.sessionId);\n const sendEvent = () => {\n if (!!this.privIntentRecognizer.recognized) {\n try {\n this.privIntentRecognizer.recognized(this.privIntentRecognizer, ev);\n /* eslint-disable no-empty */\n }\n catch (error) {\n // Not going to let errors in the event handler\n // trip things up.\n }\n }\n // report result to promise.\n if (!!this.privSuccessCallback) {\n try {\n this.privSuccessCallback(result);\n }\n catch (e) {\n if (!!this.privErrorCallback) {\n this.privErrorCallback(e);\n }\n }\n // Only invoke the call back once.\n // and if it's successful don't invoke the\n // error after that.\n this.privSuccessCallback = undefined;\n this.privErrorCallback = undefined;\n }\n };\n // If intent data was sent, the terminal result for this recognizer is an intent being found.\n // If no intent data was sent, the terminal event is speech recognition being successful.\n if (false === this.privIntentDataSent || Exports_js_2.ResultReason.NoMatch === ev.result.reason) {\n // Advance the buffers.\n this.privRequestSession.onPhraseRecognized(ev.offset + ev.result.duration);\n sendEvent();\n }\n else {\n // Squirrel away the args, when the response event arrives it will build upon them\n // and then return\n this.privPendingIntentArgs = ev;\n }\n processed = true;\n break;\n case \"response\":\n // Response from LUIS\n ev = this.privPendingIntentArgs;\n this.privPendingIntentArgs = undefined;\n if (undefined === ev) {\n if (\"\" === connectionMessage.textBody) {\n // This condition happens if there is nothing but silence in the\n // audio sent to the service.\n return;\n }\n // Odd... Not sure this can happen\n ev = new Exports_js_2.IntentRecognitionEventArgs(new Exports_js_2.IntentRecognitionResult(), 0, this.privRequestSession.sessionId);\n }\n const intentResponse = Exports_js_3.IntentResponse.fromJSON(connectionMessage.textBody);\n // If LUIS didn't return anything, send the existing event, else\n // modify it to show the match.\n // See if the intent found is in the list of intents asked for.\n if (null !== intentResponse && !!intentResponse.topScoringIntent && !!intentResponse.topScoringIntent.intent) {\n let addedIntent = this.privAddedLmIntents[intentResponse.topScoringIntent.intent];\n if (this.privUmbrellaIntent !== undefined) {\n addedIntent = this.privUmbrellaIntent;\n }\n if (!!addedIntent) {\n const intentId = addedIntent === undefined || addedIntent.intentName === undefined ? intentResponse.topScoringIntent.intent : addedIntent.intentName;\n let reason = ev.result.reason;\n if (undefined !== intentId) {\n reason = Exports_js_2.ResultReason.RecognizedIntent;\n }\n // make sure, properties is set.\n const properties = (undefined !== ev.result.properties) ?\n ev.result.properties : new Exports_js_2.PropertyCollection();\n properties.setProperty(Exports_js_2.PropertyId.LanguageUnderstandingServiceResponse_JsonResult, connectionMessage.textBody);\n ev = new Exports_js_2.IntentRecognitionEventArgs(new Exports_js_2.IntentRecognitionResult(intentId, ev.result.resultId, reason, ev.result.text, ev.result.duration, ev.result.offset, undefined, undefined, ev.result.errorDetails, ev.result.json, properties), ev.offset, ev.sessionId);\n }\n }\n this.privRequestSession.onPhraseRecognized(ev.offset + ev.result.duration);\n if (!!this.privIntentRecognizer.recognized) {\n try {\n this.privIntentRecognizer.recognized(this.privIntentRecognizer, ev);\n /* eslint-disable no-empty */\n }\n catch (error) {\n // Not going to let errors in the event handler\n // trip things up.\n }\n }\n // report result to promise.\n if (!!this.privSuccessCallback) {\n try {\n this.privSuccessCallback(ev.result);\n }\n catch (e) {\n if (!!this.privErrorCallback) {\n this.privErrorCallback(e);\n }\n }\n // Only invoke the call back once.\n // and if it's successful don't invoke the\n // error after that.\n this.privSuccessCallback = undefined;\n this.privErrorCallback = undefined;\n }\n processed = true;\n break;\n default:\n break;\n }\n const defferal = new Exports_js_1.Deferred();\n defferal.resolve(processed);\n return defferal.promise;\n }\n // Cancels recognition.\n cancelRecognition(sessionId, requestId, cancellationReason, errorCode, error) {\n const properties = new Exports_js_2.PropertyCollection();\n properties.setProperty(Exports_js_3.CancellationErrorCodePropertyName, Exports_js_2.CancellationErrorCode[errorCode]);\n if (!!this.privIntentRecognizer.canceled) {\n const cancelEvent = new Exports_js_2.IntentRecognitionCanceledEventArgs(cancellationReason, error, errorCode, undefined, undefined, sessionId);\n try {\n this.privIntentRecognizer.canceled(this.privIntentRecognizer, cancelEvent);\n /* eslint-disable no-empty */\n }\n catch { }\n }\n if (!!this.privSuccessCallback) {\n const result = new Exports_js_2.IntentRecognitionResult(undefined, // Intent Id\n requestId, Exports_js_2.ResultReason.Canceled, undefined, // Text\n undefined, // Duration\n undefined, // Offset\n undefined, // Language\n undefined, // LanguageDetectionConfidence\n error, undefined, // Json\n properties);\n try {\n this.privSuccessCallback(result);\n this.privSuccessCallback = undefined;\n /* eslint-disable no-empty */\n }\n catch { }\n }\n }\n}\nexports.IntentServiceRecognizer = IntentServiceRecognizer;\n\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}