UNPKG

@euirim/microsoft-cognitiveservices-speech-sdk

Version:
1 lines 6.96 kB
{"version":3,"sources":["src/sdk/Audio/AudioOutputStream.ts"],"names":[],"mappings":"AAIA,OAAO,EAGH,OAAO,EAIV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,eAAO,MAAM,UAAU,EAAE,MAAa,CAAC;AAEvC;;;GAGG;AACH,8BAAsB,iBAAiB;IAEnC;;;OAGG;IACH,SAAS;IAET;;;;;;;;OAQG;WACW,gBAAgB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,qBAAqB;IAIjF;;;;;OAKG;aACa,KAAK,IAAI,IAAI;CAChC;AAED;;;GAGG;AAEH,8BAAsB,qBAAsB,SAAQ,iBAAiB;IAEjE;;;;;;;;OAQG;WACW,MAAM,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,qBAAqB;IAIvE;;;;;;OAMG;aACa,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAE5C;;;;;OAKG;aACa,KAAK,IAAI,IAAI;CAChC;AAED;;;;GAIG;AAEH,qBAAa,yBAA0B,SAAQ,qBAAqB;IAEhE,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,YAAY,CAA4B;IAEhD;;;;OAIG;gBACgB,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB;IAahE;;OAEG;aACQ,MAAM,EAAI,iBAAiB;IAItC;;;;;OAKG;aACQ,QAAQ,EAAI,OAAO;IAI9B;;;;;OAKG;aACQ,EAAE,EAAI,MAAM;IAIvB;;;;;;OAMG;IACI,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAOnC;;;;;;OAMG;IACI,KAAK,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAQ3C;;;;;OAKG;IACI,KAAK,IAAI,IAAI;CAGvB","file":"AudioOutputStream.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport { createNoDashGuid } from \"../../../src/common/Guid\";\nimport {\n ChunkedArrayBufferStream,\n IStreamChunk,\n Promise,\n PromiseHelper,\n Stream,\n StreamReader,\n} from \"../../common/Exports\";\nimport { AudioStreamFormat } from \"../Exports\";\nimport { AudioStreamFormatImpl } from \"./AudioStreamFormat\";\n\nexport const bufferSize: number = 4096;\n\n/**\n * Represents audio input stream used for custom audio input configurations.\n * @class AudioInputStream\n */\nexport abstract class AudioOutputStream {\n\n /**\n * Creates and initializes an instance.\n * @constructor\n */\n protected constructor() { }\n\n /**\n * Creates a memory backed PullAudioOutputStream with the specified audio format.\n * @member AudioInputStream.createPullStream\n * @function\n * @public\n * @param {AudioStreamFormat} format - The audio data format in which audio will be\n * written to the push audio stream's write() method (currently only support 16 kHz 16bit mono PCM).\n * @returns {PullAudioOutputStream} The audio input stream being created.\n */\n public static createPullStream(format?: AudioStreamFormat): PullAudioOutputStream {\n return PullAudioOutputStream.create(format);\n }\n\n /**\n * Explicitly frees any external resource attached to the object\n * @member AudioInputStream.prototype.close\n * @function\n * @public\n */\n public abstract close(): void;\n}\n\n/**\n * Represents memory backed push audio input stream used for custom audio input configurations.\n * @class PullAudioOutputStream\n */\n// tslint:disable-next-line:max-classes-per-file\nexport abstract class PullAudioOutputStream extends AudioOutputStream {\n\n /**\n * Creates a memory backed PullAudioOutputStream with the specified audio format.\n * @member PullAudioOutputStream.create\n * @function\n * @public\n * @param {AudioStreamFormat} format - The audio data format in which audio will be written to the\n * push audio stream's write() method (currently only support 16 kHz 16bit mono PCM).\n * @returns {PullAudioOutputStream} The push audio input stream being created.\n */\n public static create(format?: AudioStreamFormat): PullAudioOutputStream {\n return new PullAudioOutputStreamImpl(bufferSize, format);\n }\n\n /**\n * Reads audio data from the internal buffer.\n * @member PullAudioOutputStream.prototype.read\n * @function\n * @public\n * @returns {Promise<ArrayBuffer>} Audio buffer data.\n */\n public abstract read(): Promise<ArrayBuffer>;\n\n /**\n * Closes the stream.\n * @member PullAudioOutputStream.prototype.close\n * @function\n * @public\n */\n public abstract close(): void;\n}\n\n/**\n * Represents memory backed push audio input stream used for custom audio input configurations.\n * @private\n * @class PullAudioOutputStreamImpl\n */\n// tslint:disable-next-line:max-classes-per-file\nexport class PullAudioOutputStreamImpl extends PullAudioOutputStream {\n\n private privFormat: AudioStreamFormatImpl;\n private privId: string;\n private privStream: Stream<ArrayBuffer>;\n private streamReader: StreamReader<ArrayBuffer>;\n\n /**\n * Creates and initalizes an instance with the given values.\n * @constructor\n * @param {AudioStreamFormat} format - The audio stream format.\n */\n public constructor(chunkSize: number, format?: AudioStreamFormat) {\n super();\n if (format === undefined) {\n this.privFormat = AudioStreamFormatImpl.getDefaultInputFormat();\n } else {\n this.privFormat = format as AudioStreamFormatImpl;\n }\n\n this.privId = createNoDashGuid();\n this.privStream = new ChunkedArrayBufferStream(chunkSize);\n this.streamReader = this.privStream.getReader();\n }\n\n /**\n * Format information for the audio\n */\n public get format(): AudioStreamFormat {\n return this.privFormat;\n }\n\n /**\n * Checks if the stream is closed\n * @member PullAudioOutputStreamImpl.prototype.isClosed\n * @property\n * @public\n */\n public get isClosed(): boolean {\n return this.privStream.isClosed;\n }\n\n /**\n * Gets the id of the stream\n * @member PullAudioOutputStreamImpl.prototype.id\n * @property\n * @public\n */\n public get id(): string {\n return this.privId;\n }\n\n /**\n * Reads data from the buffer\n * @member PullAudioOutputStreamImpl.prototype.read\n * @function\n * @public\n * @param {ArrayBuffer} dataBuffer - The audio buffer of which this function will make a copy.\n */\n public read(): Promise<ArrayBuffer> {\n return this.streamReader.read()\n .onSuccessContinueWithPromise<ArrayBuffer>((chunk: IStreamChunk<ArrayBuffer>) => {\n return PromiseHelper.fromResult(chunk.buffer);\n });\n }\n\n /**\n * Writes the audio data specified by making an internal copy of the data.\n * @member PullAudioOutputStreamImpl.prototype.write\n * @function\n * @public\n * @param {ArrayBuffer} dataBuffer - The audio buffer of which this function will make a copy.\n */\n public write(dataBuffer: ArrayBuffer): void {\n this.privStream.writeStreamChunk({\n buffer: dataBuffer,\n isEnd: false,\n timeReceived: Date.now()\n });\n }\n\n /**\n * Closes the stream.\n * @member PullAudioOutputStreamImpl.prototype.close\n * @function\n * @public\n */\n public close(): void {\n this.privStream.close();\n }\n}\n"]}