@voice-ping/cognitive-services-speech
Version:
VoicePing Cognitive Services Speech SDK for JavaScript forked from Microsoft
80 lines (78 loc) • 3.61 kB
JavaScript
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
import { AutoDetectSourceLanguagesOpenRangeOptionName } from "../common.speech/Exports";
import { Contracts } from "./Contracts";
import { PropertyCollection, PropertyId, } from "./Exports";
/**
* Language auto detect configuration.
* @class AutoDetectSourceLanguageConfig
* Added in version 1.13.0.
*/
export class AutoDetectSourceLanguageConfig {
constructor() {
this.privProperties = new PropertyCollection();
}
/**
* @member AutoDetectSourceLanguageConfig.fromOpenRange
* @function
* @public
* Only [[SpeechSynthesizer]] supports source language auto detection from open range,
* for [[Recognizer]], please use AutoDetectSourceLanguageConfig with specific source languages.
* @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig
* @summary Creates an instance of the AutoDetectSourceLanguageConfig with open range.
*/
static fromOpenRange() {
const config = new AutoDetectSourceLanguageConfig();
config.properties.setProperty(PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, AutoDetectSourceLanguagesOpenRangeOptionName);
return config;
}
/**
* @member AutoDetectSourceLanguageConfig.fromLanguages
* @function
* @public
* @param {string[]} languages Comma-separated string of languages (eg. "en-US,fr-FR") to populate properties of config.
* @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig
* @summary Creates an instance of the AutoDetectSourceLanguageConfig with given languages.
*/
static fromLanguages(languages) {
Contracts.throwIfArrayEmptyOrWhitespace(languages, "languages");
const config = new AutoDetectSourceLanguageConfig();
config.properties.setProperty(PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, languages.join());
return config;
}
/**
* @member AutoDetectSourceLanguageConfig.fromSourceLanguageConfigs
* @function
* @public
* @param {SourceLanguageConfig[]} configs SourceLanguageConfigs to populate properties of config.
* @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig
* @summary Creates an instance of the AutoDetectSourceLanguageConfig with given SourceLanguageConfigs.
*/
static fromSourceLanguageConfigs(configs) {
if (configs.length < 1) {
throw new Error("Expected non-empty SourceLanguageConfig array.");
}
const autoConfig = new AutoDetectSourceLanguageConfig();
const langs = [];
configs.forEach((config) => {
langs.push(config.language);
if (config.endpointId !== undefined && config.endpointId !== "") {
const customProperty = config.language + PropertyId.SpeechServiceConnection_EndpointId.toString();
autoConfig.properties.setProperty(customProperty, config.endpointId);
}
});
autoConfig.properties.setProperty(PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, langs.join());
return autoConfig;
}
/**
* @member AutoDetectSourceLanguageConfig.prototype.properties
* @function
* @public
* @return {PropertyCollection} Properties of the config.
* @summary Gets a auto detected language config properties
*/
get properties() {
return this.privProperties;
}
}
//# sourceMappingURL=AutoDetectSourceLanguageConfig.js.map