1 |
- {"ast":null,"code":"\"use strict\";\n\n// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\nvar _asyncToGenerator = require(\"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/asyncToGenerator.js\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AvatarSynthesizer = void 0;\nconst SpeechSynthesisConnectionFactory_js_1 = require(\"../common.speech/SpeechSynthesisConnectionFactory.js\");\nconst Exports_js_1 = require(\"../common.speech/Exports.js\");\nconst Exports_js_2 = require(\"../common/Exports.js\");\nconst AudioOutputFormat_js_1 = require(\"./Audio/AudioOutputFormat.js\");\nconst Exports_js_3 = require(\"./Exports.js\");\nconst Contracts_js_1 = require(\"./Contracts.js\");\nconst Synthesizer_js_1 = require(\"./Synthesizer.js\");\n/**\n * Defines the avatar synthesizer.\n * @class AvatarSynthesizer\n * Added in version 1.33.0\n *\n * @experimental This feature is experimental and might change or have limited support.\n */\nclass AvatarSynthesizer extends Exports_js_3.Synthesizer {\n /**\n * Creates and initializes an instance of this class.\n * @constructor\n * @param {SpeechConfig} speechConfig - The speech config.\n * @param {AvatarConfig} avatarConfig - The talking avatar config.\n */\n constructor(speechConfig, avatarConfig) {\n super(speechConfig);\n Contracts_js_1.Contracts.throwIfNullOrUndefined(avatarConfig, \"avatarConfig\");\n this.privConnectionFactory = new SpeechSynthesisConnectionFactory_js_1.SpeechSynthesisConnectionFactory();\n this.privAvatarConfig = avatarConfig;\n this.implCommonSynthesizeSetup();\n }\n implCommonSynthesizeSetup() {\n super.implCommonSynthesizeSetup();\n // The service checks the audio format setting while it ignores it in avatar synthesis.\n this.privAdapter.audioOutputFormat = AudioOutputFormat_js_1.AudioOutputFormatImpl.fromSpeechSynthesisOutputFormat(Exports_js_3.SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);\n }\n /**\n * Starts the talking avatar session and establishes the WebRTC connection.\n * @member AvatarSynthesizer.prototype.startAvatarAsync\n * @function\n * @public\n * @param {AvatarWebRTCConnectionInfo} peerConnection - The peer connection.\n * @returns {Promise<SynthesisResult>} The promise of the connection result.\n */\n startAvatarAsync(peerConnection) {\n var _this = this;\n return _asyncToGenerator(function* () {\n Contracts_js_1.Contracts.throwIfNullOrUndefined(peerConnection, \"peerConnection\");\n _this.privIceServers = peerConnection.getConfiguration().iceServers;\n Contracts_js_1.Contracts.throwIfNullOrUndefined(_this.privIceServers, \"Ice servers must be set.\");\n const iceGatheringDone = new Exports_js_2.Deferred();\n // https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/icegatheringstatechange_event\n peerConnection.onicegatheringstatechange = () => {\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: ice gathering state: \" + peerConnection.iceGatheringState, Exports_js_2.EventType.Debug));\n if (peerConnection.iceGatheringState === \"complete\") {\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: ice gathering complete.\", Exports_js_2.EventType.Info));\n iceGatheringDone.resolve();\n }\n };\n peerConnection.onicecandidate = event => {\n if (event.candidate) {\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: ice candidate: \" + event.candidate.candidate, Exports_js_2.EventType.Debug));\n } else {\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: ice candidate: complete\", Exports_js_2.EventType.Debug));\n iceGatheringDone.resolve();\n }\n };\n // Set a timeout for ice gathering, currently 2 seconds.\n setTimeout(() => {\n if (peerConnection.iceGatheringState !== \"complete\") {\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: ice gathering timeout.\", Exports_js_2.EventType.Warning));\n iceGatheringDone.resolve();\n }\n }, 2000);\n const sdp = yield peerConnection.createOffer();\n yield peerConnection.setLocalDescription(sdp);\n yield iceGatheringDone.promise;\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: got local SDP.\", Exports_js_2.EventType.Info));\n _this.privProperties.setProperty(Exports_js_3.PropertyId.TalkingAvatarService_WebRTC_SDP, JSON.stringify(peerConnection.localDescription));\n const result = yield _this.speak(\"\", false);\n if (result.reason !== Exports_js_3.ResultReason.SynthesizingAudioCompleted) {\n return new Exports_js_3.SynthesisResult(result.resultId, result.reason, result.errorDetails, result.properties);\n }\n const sdpAnswerString = atob(result.properties.getProperty(Exports_js_3.PropertyId.TalkingAvatarService_WebRTC_SDP));\n const sdpAnswer = new RTCSessionDescription(JSON.parse(sdpAnswerString));\n yield peerConnection.setRemoteDescription(sdpAnswer);\n return new Exports_js_3.SynthesisResult(result.resultId, result.reason, undefined, result.properties);\n })();\n }\n /**\n * Speaks plain text asynchronously. The rendered audio and video will be sent via the WebRTC connection.\n * @member AvatarSynthesizer.prototype.speakTextAsync\n * @function\n * @public\n * @param {string} text - The plain text to speak.\n * @returns {Promise<SynthesisResult>} The promise of the synthesis result.\n */\n speakTextAsync(text) {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n const r = yield _this2.speak(text, false);\n return new Exports_js_3.SynthesisResult(r.resultId, r.reason, r.errorDetails, r.properties);\n })();\n }\n /**\n * Speaks SSML asynchronously. The rendered audio and video will be sent via the WebRTC connection.\n * @member AvatarSynthesizer.prototype.speakSsmlAsync\n * @function\n * @public\n * @param {string} ssml - The SSML text to speak.\n * @returns {Promise<SynthesisResult>} The promise of the synthesis result.\n */\n speakSsmlAsync(ssml) {\n var _this3 = this;\n return _asyncToGenerator(function* () {\n const r = yield _this3.speak(ssml, true);\n return new Exports_js_3.SynthesisResult(r.resultId, r.reason, r.errorDetails, r.properties);\n })();\n }\n /**\n * Speaks text asynchronously. The avatar will switch to idle state.\n * @member AvatarSynthesizer.prototype.stopSpeakingAsync\n * @function\n * @public\n * @returns {Promise<void>} The promise of the void result.\n */\n stopSpeakingAsync() {\n var _this4 = this;\n return _asyncToGenerator(function* () {\n while (_this4.synthesisRequestQueue.length() > 0) {\n const request = yield _this4.synthesisRequestQueue.dequeue();\n request.err(\"Synthesis is canceled by user.\");\n }\n return _this4.privAdapter.stopSpeaking();\n })();\n }\n /**\n * Stops the talking avatar session and closes the WebRTC connection.\n * For now, this is the same as close().\n * You need to create a new AvatarSynthesizer instance to start a new session.\n * @member AvatarSynthesizer.prototype.stopAvatarAsync\n * @function\n * @public\n * @returns {Promise<void>} The promise of the void result.\n */\n stopAvatarAsync() {\n var _this5 = this;\n return _asyncToGenerator(function* () {\n Contracts_js_1.Contracts.throwIfDisposed(_this5.privDisposed);\n return _this5.dispose(true);\n })();\n }\n /**\n * Dispose of associated resources.\n * @member AvatarSynthesizer.prototype.close\n * @function\n * @public\n */\n close() {\n var _this6 = this;\n return _asyncToGenerator(function* () {\n if (_this6.privDisposed) {\n return;\n }\n return _this6.dispose(true);\n })();\n }\n /**\n * Gets the ICE servers. Internal use only.\n */\n get iceServers() {\n return this.privIceServers;\n }\n // Creates the synthesis adapter\n createSynthesisAdapter(authentication, connectionFactory, synthesizerConfig) {\n return new Exports_js_1.AvatarSynthesisAdapter(authentication, connectionFactory, synthesizerConfig, this, this.privAvatarConfig);\n }\n createRestSynthesisAdapter(_authentication, _synthesizerConfig) {\n return undefined;\n }\n createSynthesizerConfig(speechConfig) {\n const config = super.createSynthesizerConfig(speechConfig);\n config.avatarEnabled = true;\n return config;\n }\n speak(text, isSSML) {\n var _this7 = this;\n return _asyncToGenerator(function* () {\n const requestId = Exports_js_2.createNoDashGuid();\n const deferredResult = new Exports_js_2.Deferred();\n _this7.synthesisRequestQueue.enqueue(new Synthesizer_js_1.SynthesisRequest(requestId, text, isSSML, e => {\n deferredResult.resolve(e);\n _this7.privSynthesizing = false;\n void _this7.adapterSpeak();\n }, e => {\n deferredResult.reject(e);\n _this7.privSynthesizing = false;\n }));\n void _this7.adapterSpeak();\n return deferredResult.promise;\n })();\n }\n}\nexports.AvatarSynthesizer = AvatarSynthesizer;","map":{"version":3,"names":["_asyncToGenerator","require","default","Object","defineProperty","exports","value","AvatarSynthesizer","SpeechSynthesisConnectionFactory_js_1","Exports_js_1","Exports_js_2","AudioOutputFormat_js_1","Exports_js_3","Contracts_js_1","Synthesizer_js_1","Synthesizer","constructor","speechConfig","avatarConfig","Contracts","throwIfNullOrUndefined","privConnectionFactory","SpeechSynthesisConnectionFactory","privAvatarConfig","implCommonSynthesizeSetup","privAdapter","audioOutputFormat","AudioOutputFormatImpl","fromSpeechSynthesisOutputFormat","SpeechSynthesisOutputFormat","Riff24Khz16BitMonoPcm","startAvatarAsync","peerConnection","_this","privIceServers","getConfiguration","iceServers","iceGatheringDone","Deferred","onicegatheringstatechange","Events","instance","onEvent","PlatformEvent","iceGatheringState","EventType","Debug","Info","resolve","onicecandidate","event","candidate","setTimeout","Warning","sdp","createOffer","setLocalDescription","promise","privProperties","setProperty","PropertyId","TalkingAvatarService_WebRTC_SDP","JSON","stringify","localDescription","result","speak","reason","ResultReason","SynthesizingAudioCompleted","SynthesisResult","resultId","errorDetails","properties","sdpAnswerString","atob","getProperty","sdpAnswer","RTCSessionDescription","parse","setRemoteDescription","undefined","speakTextAsync","text","_this2","r","speakSsmlAsync","ssml","_this3","stopSpeakingAsync","_this4","synthesisRequestQueue","length","request","dequeue","err","stopSpeaking","stopAvatarAsync","_this5","throwIfDisposed","privDisposed","dispose","close","_this6","createSynthesisAdapter","authentication","connectionFactory","synthesizerConfig","AvatarSynthesisAdapter","createRestSynthesisAdapter","_authentication","_synthesizerConfig","createSynthesizerConfig","config","avatarEnabled","isSSML","_this7","requestId","createNoDashGuid","deferredResult","enqueue","SynthesisRequest","e","privSynthesizing","adapterSpeak","reject"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/AvatarSynthesizer.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.AvatarSynthesizer = void 0;\nconst SpeechSynthesisConnectionFactory_js_1 = require(\"../common.speech/SpeechSynthesisConnectionFactory.js\");\nconst Exports_js_1 = require(\"../common.speech/Exports.js\");\nconst Exports_js_2 = require(\"../common/Exports.js\");\nconst AudioOutputFormat_js_1 = require(\"./Audio/AudioOutputFormat.js\");\nconst Exports_js_3 = require(\"./Exports.js\");\nconst Contracts_js_1 = require(\"./Contracts.js\");\nconst Synthesizer_js_1 = require(\"./Synthesizer.js\");\n/**\n * Defines the avatar synthesizer.\n * @class AvatarSynthesizer\n * Added in version 1.33.0\n *\n * @experimental This feature is experimental and might change or have limited support.\n */\nclass AvatarSynthesizer extends Exports_js_3.Synthesizer {\n /**\n * Creates and initializes an instance of this class.\n * @constructor\n * @param {SpeechConfig} speechConfig - The speech config.\n * @param {AvatarConfig} avatarConfig - The talking avatar config.\n */\n constructor(speechConfig, avatarConfig) {\n super(speechConfig);\n Contracts_js_1.Contracts.throwIfNullOrUndefined(avatarConfig, \"avatarConfig\");\n this.privConnectionFactory = new SpeechSynthesisConnectionFactory_js_1.SpeechSynthesisConnectionFactory();\n this.privAvatarConfig = avatarConfig;\n this.implCommonSynthesizeSetup();\n }\n implCommonSynthesizeSetup() {\n super.implCommonSynthesizeSetup();\n // The service checks the audio format setting while it ignores it in avatar synthesis.\n this.privAdapter.audioOutputFormat = AudioOutputFormat_js_1.AudioOutputFormatImpl.fromSpeechSynthesisOutputFormat(Exports_js_3.SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);\n }\n /**\n * Starts the talking avatar session and establishes the WebRTC connection.\n * @member AvatarSynthesizer.prototype.startAvatarAsync\n * @function\n * @public\n * @param {AvatarWebRTCConnectionInfo} peerConnection - The peer connection.\n * @returns {Promise<SynthesisResult>} The promise of the connection result.\n */\n async startAvatarAsync(peerConnection) {\n Contracts_js_1.Contracts.throwIfNullOrUndefined(peerConnection, \"peerConnection\");\n this.privIceServers = peerConnection.getConfiguration().iceServers;\n Contracts_js_1.Contracts.throwIfNullOrUndefined(this.privIceServers, \"Ice servers must be set.\");\n const iceGatheringDone = new Exports_js_2.Deferred();\n // https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/icegatheringstatechange_event\n peerConnection.onicegatheringstatechange = () => {\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: ice gathering state: \" + peerConnection.iceGatheringState, Exports_js_2.EventType.Debug));\n if (peerConnection.iceGatheringState === \"complete\") {\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: ice gathering complete.\", Exports_js_2.EventType.Info));\n iceGatheringDone.resolve();\n }\n };\n peerConnection.onicecandidate = (event) => {\n if (event.candidate) {\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: ice candidate: \" + event.candidate.candidate, Exports_js_2.EventType.Debug));\n }\n else {\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: ice candidate: complete\", Exports_js_2.EventType.Debug));\n iceGatheringDone.resolve();\n }\n };\n // Set a timeout for ice gathering, currently 2 seconds.\n setTimeout(() => {\n if (peerConnection.iceGatheringState !== \"complete\") {\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: ice gathering timeout.\", Exports_js_2.EventType.Warning));\n iceGatheringDone.resolve();\n }\n }, 2000);\n const sdp = await peerConnection.createOffer();\n await peerConnection.setLocalDescription(sdp);\n await iceGatheringDone.promise;\n Exports_js_2.Events.instance.onEvent(new Exports_js_2.PlatformEvent(\"peer connection: got local SDP.\", Exports_js_2.EventType.Info));\n this.privProperties.setProperty(Exports_js_3.PropertyId.TalkingAvatarService_WebRTC_SDP, JSON.stringify(peerConnection.localDescription));\n const result = await this.speak(\"\", false);\n if (result.reason !== Exports_js_3.ResultReason.SynthesizingAudioCompleted) {\n return new Exports_js_3.SynthesisResult(result.resultId, result.reason, result.errorDetails, result.properties);\n }\n const sdpAnswerString = atob(result.properties.getProperty(Exports_js_3.PropertyId.TalkingAvatarService_WebRTC_SDP));\n const sdpAnswer = new RTCSessionDescription(JSON.parse(sdpAnswerString));\n await peerConnection.setRemoteDescription(sdpAnswer);\n return new Exports_js_3.SynthesisResult(result.resultId, result.reason, undefined, result.properties);\n }\n /**\n * Speaks plain text asynchronously. The rendered audio and video will be sent via the WebRTC connection.\n * @member AvatarSynthesizer.prototype.speakTextAsync\n * @function\n * @public\n * @param {string} text - The plain text to speak.\n * @returns {Promise<SynthesisResult>} The promise of the synthesis result.\n */\n async speakTextAsync(text) {\n const r = await this.speak(text, false);\n return new Exports_js_3.SynthesisResult(r.resultId, r.reason, r.errorDetails, r.properties);\n }\n /**\n * Speaks SSML asynchronously. The rendered audio and video will be sent via the WebRTC connection.\n * @member AvatarSynthesizer.prototype.speakSsmlAsync\n * @function\n * @public\n * @param {string} ssml - The SSML text to speak.\n * @returns {Promise<SynthesisResult>} The promise of the synthesis result.\n */\n async speakSsmlAsync(ssml) {\n const r = await this.speak(ssml, true);\n return new Exports_js_3.SynthesisResult(r.resultId, r.reason, r.errorDetails, r.properties);\n }\n /**\n * Speaks text asynchronously. The avatar will switch to idle state.\n * @member AvatarSynthesizer.prototype.stopSpeakingAsync\n * @function\n * @public\n * @returns {Promise<void>} The promise of the void result.\n */\n async stopSpeakingAsync() {\n while (this.synthesisRequestQueue.length() > 0) {\n const request = await this.synthesisRequestQueue.dequeue();\n request.err(\"Synthesis is canceled by user.\");\n }\n return this.privAdapter.stopSpeaking();\n }\n /**\n * Stops the talking avatar session and closes the WebRTC connection.\n * For now, this is the same as close().\n * You need to create a new AvatarSynthesizer instance to start a new session.\n * @member AvatarSynthesizer.prototype.stopAvatarAsync\n * @function\n * @public\n * @returns {Promise<void>} The promise of the void result.\n */\n async stopAvatarAsync() {\n Contracts_js_1.Contracts.throwIfDisposed(this.privDisposed);\n return this.dispose(true);\n }\n /**\n * Dispose of associated resources.\n * @member AvatarSynthesizer.prototype.close\n * @function\n * @public\n */\n async close() {\n if (this.privDisposed) {\n return;\n }\n return this.dispose(true);\n }\n /**\n * Gets the ICE servers. Internal use only.\n */\n get iceServers() {\n return this.privIceServers;\n }\n // Creates the synthesis adapter\n createSynthesisAdapter(authentication, connectionFactory, synthesizerConfig) {\n return new Exports_js_1.AvatarSynthesisAdapter(authentication, connectionFactory, synthesizerConfig, this, this.privAvatarConfig);\n }\n createRestSynthesisAdapter(_authentication, _synthesizerConfig) {\n return undefined;\n }\n createSynthesizerConfig(speechConfig) {\n const config = super.createSynthesizerConfig(speechConfig);\n config.avatarEnabled = true;\n return config;\n }\n async speak(text, isSSML) {\n const requestId = Exports_js_2.createNoDashGuid();\n const deferredResult = new Exports_js_2.Deferred();\n this.synthesisRequestQueue.enqueue(new Synthesizer_js_1.SynthesisRequest(requestId, text, isSSML, (e) => {\n deferredResult.resolve(e);\n this.privSynthesizing = false;\n void this.adapterSpeak();\n }, (e) => {\n deferredResult.reject(e);\n this.privSynthesizing = false;\n }));\n void this.adapterSpeak();\n return deferredResult.promise;\n }\n}\nexports.AvatarSynthesizer = AvatarSynthesizer;\n\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}
|