js-tts-wrapper
Version:
A JavaScript/TypeScript library that provides a unified API for working with multiple cloud-based Text-to-Speech (TTS) services
61 lines (60 loc) • 1.95 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.filterByLanguage = filterByLanguage;
exports.filterByGender = filterByGender;
exports.filterByProvider = filterByProvider;
exports.findById = findById;
exports.getAvailableLanguages = getAvailableLanguages;
/**
* Filter voices by language code
* @param voices Array of voices to filter
* @param languageCode BCP-47 language code to filter by
* @returns Filtered array of voices
*/
function filterByLanguage(voices, languageCode) {
return voices.filter((voice) => voice.languageCodes.some((lang) => lang.bcp47.toLowerCase() === languageCode.toLowerCase()));
}
/**
* Filter voices by gender
* @param voices Array of voices to filter
* @param gender Gender to filter by
* @returns Filtered array of voices
*/
function filterByGender(voices, gender) {
return voices.filter((voice) => voice.gender === gender);
}
/**
* Filter voices by provider
* @param voices Array of voices to filter
* @param provider Provider to filter by
* @returns Filtered array of voices
*/
function filterByProvider(voices, provider) {
return voices.filter((voice) => voice.provider === provider);
}
/**
* Find a voice by ID
* @param voices Array of voices to search
* @param id Voice ID to find
* @returns The found voice or undefined
*/
function findById(voices, id) {
return voices.find((voice) => voice.id === id);
}
/**
* Get all available languages from a list of voices
* @param voices Array of voices
* @returns Array of unique language codes
*/
function getAvailableLanguages(voices) {
// Use a Set to collect unique language codes
const languages = new Set();
// Iterate through all voices and their language codes
for (const voice of voices) {
for (const lang of voice.languageCodes) {
languages.add(lang.bcp47);
}
}
// Convert Set to Array and return
return Array.from(languages);
}
;