{"version":3,"sources":["src/common.speech/Transcription/TranscriberRecognizer.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAElB,UAAU,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,uBAAuB,EAE1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,eAAe,EACf,kBAAkB,EAElB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EAGtB,MAAM,YAAY,CAAC;AAEpB,qBAAa,qBAAsB,SAAQ,UAAU;IACjD,OAAO,CAAC,sBAAsB,CAAU;IACxC,OAAO,CAAC,gBAAgB,CAAe;IAEvC;;;;OAIG;gBACgB,uBAAuB,EAAE,uBAAuB,EAAE,WAAW,CAAC,EAAE,WAAW;IAYvF,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAE7E,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAE5E,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAErE,oBAAoB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAEjF,mBAAmB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE3E,mBAAmB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE3E,mBAAmB,IAAI,gBAAgB;IAK9C,IAAW,kBAAkB,IAAI,MAAM,CAEtC;IAED,IAAW,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAG1C;IAED,IAAW,YAAY,CAAC,CAAC,EAAE,YAAY,EAGtC;IAED,IAAW,yBAAyB,IAAI,MAAM,CAI7C;IAED,IAAW,UAAU,IAAI,kBAAkB,CAE1C;IAEM,+BAA+B,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIjF,8BAA8B,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/F,gBAAgB,CAAC,WAAW,EAAE,uBAAuB,GAAG,IAAI;IA2C5D,mBAAmB,IAAI,IAAI;IAWlC;;;;;;OAMG;cACa,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,mBAAmB,GAAG,gBAAgB;IAMrF,SAAS,CAAC,uBAAuB,CAC7B,cAAc,EAAE,eAAe,EAC/B,iBAAiB,EAAE,kBAAkB,EACrC,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,GAAG,qBAAqB;CAIjE","file":"TranscriberRecognizer.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { marshalPromiseToCallbacks } from \"../../common/Exports\";\r\nimport { AudioConfigImpl } from \"../../sdk/Audio/AudioConfig\";\r\nimport { Contracts } from \"../../sdk/Contracts\";\r\nimport {\r\n    AudioConfig,\r\n    CancellationEventArgs,\r\n    Conversation,\r\n    ConversationInfo,\r\n    ConversationTranscriber,\r\n    PropertyCollection,\r\n    PropertyId,\r\n    Recognizer,\r\n    SessionEventArgs,\r\n    SpeechRecognitionEventArgs,\r\n    SpeechTranslationConfig,\r\n    SpeechTranslationConfigImpl,\r\n} from \"../../sdk/Exports\";\r\nimport {\r\n    IAuthentication,\r\n    IConnectionFactory,\r\n    RecognitionMode,\r\n    RecognizerConfig,\r\n    ServiceRecognizerBase,\r\n    SpeechServiceConfig,\r\n    TranscriberConnectionFactory,\r\n    TranscriptionServiceRecognizer,\r\n} from \"../Exports\";\r\n\r\nexport class TranscriberRecognizer extends Recognizer {\r\n    private privDisposedRecognizer: boolean;\r\n    private privConversation: Conversation;\r\n\r\n    /**\r\n     * TranscriberRecognizer constructor.\r\n     * @constructor\r\n     * @param {AudioConfig} audioConfig - An optional audio configuration associated with the recognizer\r\n     */\r\n    public constructor(speechTranslationConfig: SpeechTranslationConfig, audioConfig?: AudioConfig) {\r\n        const speechTranslationConfigImpl: SpeechTranslationConfigImpl = speechTranslationConfig as SpeechTranslationConfigImpl;\r\n        Contracts.throwIfNull(speechTranslationConfigImpl, \"speechTranslationConfig\");\r\n\r\n        Contracts.throwIfNullOrWhitespace(\r\n            speechTranslationConfigImpl.speechRecognitionLanguage,\r\n            PropertyId[PropertyId.SpeechServiceConnection_RecoLanguage]);\r\n\r\n        super(audioConfig, speechTranslationConfigImpl.properties, new TranscriberConnectionFactory());\r\n        this.privDisposedRecognizer = false;\r\n    }\r\n\r\n    public recognizing: (sender: Recognizer, event: SpeechRecognitionEventArgs) => void;\r\n\r\n    public recognized: (sender: Recognizer, event: SpeechRecognitionEventArgs) => void;\r\n\r\n    public canceled: (sender: Recognizer, event: CancellationEventArgs) => void;\r\n\r\n    public conversationCanceled: (sender: Recognizer, event: CancellationEventArgs) => void;\r\n\r\n    public conversationStarted: (sender: Recognizer, event: SessionEventArgs) => void;\r\n\r\n    public conversationStopped: (sender: Recognizer, event: SessionEventArgs) => void;\r\n\r\n    public getConversationInfo(): ConversationInfo {\r\n        Contracts.throwIfNullOrUndefined(this.privConversation, \"Conversation\");\r\n        return this.privConversation.conversationInfo;\r\n    }\r\n\r\n    public get authorizationToken(): string {\r\n        return this.properties.getProperty(PropertyId.SpeechServiceAuthorization_Token);\r\n    }\r\n\r\n    public set authorizationToken(token: string) {\r\n        Contracts.throwIfNullOrWhitespace(token, \"token\");\r\n        this.properties.setProperty(PropertyId.SpeechServiceAuthorization_Token, token);\r\n    }\r\n\r\n    public set conversation(c: Conversation) {\r\n        Contracts.throwIfNullOrUndefined(c, \"Conversation\");\r\n        this.privConversation = c;\r\n    }\r\n\r\n    public get speechRecognitionLanguage(): string {\r\n        Contracts.throwIfDisposed(this.privDisposedRecognizer);\r\n\r\n        return this.properties.getProperty(PropertyId.SpeechServiceConnection_RecoLanguage);\r\n    }\r\n\r\n    public get properties(): PropertyCollection {\r\n        return this.privProperties;\r\n    }\r\n\r\n    public startContinuousRecognitionAsync(cb?: () => void, err?: (e: string) => void): void {\r\n        marshalPromiseToCallbacks(this.startContinuousRecognitionAsyncImpl(RecognitionMode.Conversation), cb, err);\r\n    }\r\n\r\n    public stopContinuousRecognitionAsync(cb?: () => void, err?: (e: string) => void): void {\r\n        marshalPromiseToCallbacks(this.stopContinuousRecognitionAsyncImpl(), cb, err);\r\n    }\r\n\r\n    public async close(): Promise<void> {\r\n        if (!this.privDisposedRecognizer) {\r\n            await this.dispose(true);\r\n        }\r\n    }\r\n\r\n    // Push async join/leave conversation message via serviceRecognizer\r\n    public async pushConversationEvent(conversationInfo: ConversationInfo, command: string): Promise<void> {\r\n        const reco = (this.privReco) as TranscriptionServiceRecognizer;\r\n        Contracts.throwIfNullOrUndefined(reco, \"serviceRecognizer\");\r\n        await reco.sendSpeechEventAsync(conversationInfo, command);\r\n    }\r\n\r\n    public connectCallbacks(transcriber: ConversationTranscriber): void {\r\n        this.canceled = (s: any, e: CancellationEventArgs): void => {\r\n            if (!!transcriber.canceled) {\r\n                transcriber.canceled(transcriber, e);\r\n            }\r\n        };\r\n        this.conversationCanceled = (s: any, e: CancellationEventArgs): void => {\r\n            if (!!transcriber.conversationCanceled) {\r\n                transcriber.conversationCanceled(transcriber, e);\r\n            }\r\n        };\r\n        this.recognizing = (s: any, e: SpeechRecognitionEventArgs): void => {\r\n            if (!!transcriber.transcribing) {\r\n                transcriber.transcribing(transcriber, e);\r\n            }\r\n        };\r\n        this.recognized = (s: any, e: SpeechRecognitionEventArgs): void => {\r\n            if (!!transcriber.transcribed) {\r\n                transcriber.transcribed(transcriber, e);\r\n            }\r\n        };\r\n        this.conversationStarted = (s: any, e: SessionEventArgs): void => {\r\n            if (!!transcriber.conversationStarted) {\r\n                transcriber.conversationStarted(transcriber, e);\r\n            }\r\n        };\r\n        this.conversationStopped = (s: any, e: SessionEventArgs): void => {\r\n            if (!!transcriber.conversationStopped) {\r\n                transcriber.conversationStopped(transcriber, e);\r\n            }\r\n        };\r\n        this.sessionStarted = (s: any, e: SessionEventArgs): void => {\r\n            if (!!transcriber.sessionStarted) {\r\n                transcriber.sessionStarted(transcriber, e);\r\n            }\r\n        };\r\n        this.sessionStopped = (s: any, e: SessionEventArgs): void => {\r\n            if (!!transcriber.sessionStopped) {\r\n                transcriber.sessionStopped(transcriber, e);\r\n            }\r\n        };\r\n    }\r\n\r\n    public disconnectCallbacks(): void {\r\n        this.canceled = undefined;\r\n        this.recognizing = undefined;\r\n        this.recognized = undefined;\r\n        this.sessionStarted = undefined;\r\n        this.sessionStopped = undefined;\r\n        this.conversationCanceled = undefined;\r\n        this.conversationStarted = undefined;\r\n        this.conversationStopped = undefined;\r\n    }\r\n\r\n    /**\r\n     * Disposes any resources held by the object.\r\n     * @member ConversationTranscriber.prototype.dispose\r\n     * @function\r\n     * @public\r\n     * @param {boolean} disposing - true if disposing the object.\r\n     */\r\n    protected async dispose(disposing: boolean): Promise<void> {\r\n        if (this.privDisposedRecognizer) {\r\n            return;\r\n        }\r\n\r\n        if (disposing) {\r\n            this.privDisposedRecognizer = true;\r\n            await this.implRecognizerStop();\r\n        }\r\n\r\n        await super.dispose(disposing);\r\n    }\r\n\r\n    protected createRecognizerConfig(speechConfig: SpeechServiceConfig): RecognizerConfig {\r\n        return new RecognizerConfig(\r\n            speechConfig,\r\n            this.properties);\r\n    }\r\n\r\n    protected createServiceRecognizer(\r\n        authentication: IAuthentication,\r\n        connectionFactory: IConnectionFactory,\r\n        audioConfig: AudioConfig,\r\n        recognizerConfig: RecognizerConfig): ServiceRecognizerBase {\r\n        const configImpl: AudioConfigImpl = audioConfig as AudioConfigImpl;\r\n        return new TranscriptionServiceRecognizer(authentication, connectionFactory, configImpl, recognizerConfig, this);\r\n    }\r\n}\r\n"]}