support elevenlabs different endpoint (#502)

* support elevenlabs different endpoint

* wip

* wip

* wip
This commit is contained in:
Hoan Luu Huu
2025-10-09 19:20:11 +07:00
committed by GitHub
parent c3d12fafee
commit 8267ddaffd
5 changed files with 26 additions and 15 deletions

View File

@@ -316,8 +316,8 @@ const testWellSaidTts = async(logger, credentials) => {
};
const testElevenlabs = async(logger, credentials) => {
const {api_key, model_id} = credentials;
const response = await fetch('https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM', {
const {api_key, model_id, api_uri} = credentials;
const response = await fetch(`https://${api_uri || 'api.elevenlabs.io'}/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM`, {
method: 'POST',
headers: {
'xi-api-key': api_key,
@@ -714,6 +714,7 @@ function decryptCredential(obj, credential, logger, isObscureKey = true) {
const o = JSON.parse(decrypt(credential));
obj.api_key = isObscureKey ? obscureKey(o.api_key) : o.api_key;
obj.model_id = o.model_id;
obj.api_uri = o.api_uri;
obj.options = o.options;
} else if ('playht' === obj.vendor) {
const o = JSON.parse(decrypt(credential));
@@ -1014,10 +1015,12 @@ async function getLanguagesVoicesForElevenlabs(credential) {
'xi-api-key': credential.api_key
};
const getModelPromise = fetch('https://api.elevenlabs.io/v1/models', {
const api_uri = credential.api_uri || 'api.elevenlabs.io';
const getModelPromise = fetch(`https://${api_uri}/v1/models`, {
headers
});
const getVoicePromise = fetch('https://api.elevenlabs.io/v1/voices', {
const getVoicePromise = fetch(`https://${api_uri}/v1/voices`, {
headers
});
const [langResp, voiceResp] = await Promise.all([getModelPromise, getVoicePromise]);