37 lines
2.5 KiB
TypeScript
37 lines
2.5 KiB
TypeScript
import type { Voice } from "./types";
|
|
|
|
/**
|
|
* Curated catalog of ElevenLabs premade voices (stable public voice IDs available
|
|
* to all accounts). Used by the create-episode wizard so it can render the voice
|
|
* picker without a live API call. The provider's listVoices() returns the live
|
|
* account catalog when needed.
|
|
*/
|
|
export const VOICE_CATALOG: Voice[] = [
|
|
{ id: "21m00Tcm4TlvDq8ikWAM", name: "Rachel", gender: "female", accent: "American", description: "Calm, narrational" },
|
|
{ id: "EXAVITQu4vr4xnSDxMaL", name: "Sarah", gender: "female", accent: "American", description: "Soft, news" },
|
|
{ id: "FGY2WhTYpPnrIDTdsKH5", name: "Laura", gender: "female", accent: "American", description: "Upbeat, social" },
|
|
{ id: "XB0fDUnXU5powFXDhCwa", name: "Charlotte", gender: "female", accent: "British", description: "Warm, seductive" },
|
|
{ id: "XrExE9yKIg1WjnnlVkGX", name: "Matilda", gender: "female", accent: "American", description: "Friendly, warm" },
|
|
{ id: "pFZP5JQG7iQjIQuC4Bku", name: "Lily", gender: "female", accent: "British", description: "Confident narration" },
|
|
{ id: "cgSgspJ2msm6clMCkdW9", name: "Jessica", gender: "female", accent: "American", description: "Expressive, young" },
|
|
{ id: "9BWtsMINqrJLrRacOk9x", name: "Aria", gender: "female", accent: "American", description: "Husky, expressive" },
|
|
{ id: "pNInz6obpgDQGcFmaJgB", name: "Adam", gender: "male", accent: "American", description: "Deep, narration" },
|
|
{ id: "JBFqnCBsd6RMkjVDRZzb", name: "George", gender: "male", accent: "British", description: "Warm, mature" },
|
|
{ id: "TX3LPaxmHKxFdv7VOQHJ", name: "Liam", gender: "male", accent: "American", description: "Articulate, young" },
|
|
{ id: "onwK4e9ZLuTAKqWW03F9", name: "Daniel", gender: "male", accent: "British", description: "Authoritative, news" },
|
|
{ id: "nPczCjzI2devNBz1zQrb", name: "Brian", gender: "male", accent: "American", description: "Deep, mature" },
|
|
{ id: "iP95p4xoKVk53GoZ742B", name: "Chris", gender: "male", accent: "American", description: "Casual, conversational" },
|
|
{ id: "bIHbv24MWmeRgasZH58o", name: "Will", gender: "male", accent: "American", description: "Friendly, chill" },
|
|
{ id: "cjVigY5qzO86Huf0OWal", name: "Eric", gender: "male", accent: "American", description: "Smooth, classy" },
|
|
];
|
|
|
|
export const DEFAULT_VOICE_IDS: Record<string, string> = {
|
|
host: "21m00Tcm4TlvDq8ikWAM", // Rachel
|
|
guest: "pNInz6obpgDQGcFmaJgB", // Adam
|
|
cohost: "JBFqnCBsd6RMkjVDRZzb", // George
|
|
};
|
|
|
|
export function voiceById(id: string): Voice | undefined {
|
|
return VOICE_CATALOG.find((v) => v.id === id);
|
|
}
|