UNPKG

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
"use strict"; 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); }