mirror of
https://github.com/jambonz/jambonz-api-server.git
synced 2026-10-04 02:04:18 +00:00
check playht can fetch voices when adding new speech credential (#309)
* check playht can fetch voices when adding new speech credential * wip * wip * wip * wip
This commit is contained in:
@@ -743,7 +743,12 @@ router.get('/:sid/test', async(req, res) => {
|
|||||||
results.tts.status = 'ok';
|
results.tts.status = 'ok';
|
||||||
SpeechCredential.ttsTestResult(sid, true);
|
SpeechCredential.ttsTestResult(sid, true);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
results.tts = {status: 'fail', reason: err.message};
|
let reason = err.message;
|
||||||
|
// if error is from bent, let get the body
|
||||||
|
try {
|
||||||
|
reason = await err.text();
|
||||||
|
} catch {}
|
||||||
|
results.tts = {status: 'fail', reason};
|
||||||
SpeechCredential.ttsTestResult(sid, false);
|
SpeechCredential.ttsTestResult(sid, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -256,6 +256,8 @@ const testPlayHT = async(logger, synthAudio, credentials) => {
|
|||||||
text: 'Hi there and welcome to jambones!'
|
text: 'Hi there and welcome to jambones!'
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
// Test if playHT can fetch voices
|
||||||
|
await fetchLayHTVoices(credentials);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.info({err}, 'synth Playht returned error');
|
logger.info({err}, 'synth Playht returned error');
|
||||||
throw err;
|
throw err;
|
||||||
@@ -679,7 +681,7 @@ const concat = (a) => {
|
|||||||
return a ? ` ${a},` : '';
|
return a ? ` ${a},` : '';
|
||||||
};
|
};
|
||||||
|
|
||||||
async function getLanguagesVoicesForPlayHT(credential) {
|
const fetchLayHTVoices = async(credential) => {
|
||||||
if (credential) {
|
if (credential) {
|
||||||
const get = bent('https://api.play.ht', 'GET', 'json', {
|
const get = bent('https://api.play.ht', 'GET', 'json', {
|
||||||
'AUTHORIZATION' : credential.api_key,
|
'AUTHORIZATION' : credential.api_key,
|
||||||
@@ -687,7 +689,20 @@ async function getLanguagesVoicesForPlayHT(credential) {
|
|||||||
'Accept': 'application/json'
|
'Accept': 'application/json'
|
||||||
});
|
});
|
||||||
|
|
||||||
const [cloned_voice, voices] = await Promise.all([ get('/api/v2/cloned-voices'), get('/api/v2/voices')]);
|
const voices = await get('/api/v2/voices');
|
||||||
|
let clone_voices = [];
|
||||||
|
try {
|
||||||
|
// try if the account has permission to cloned voice
|
||||||
|
//otherwise ignore this.
|
||||||
|
clone_voices = await get('/api/v2/cloned-voices');
|
||||||
|
} catch {}
|
||||||
|
return [clone_voices, voices];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
async function getLanguagesVoicesForPlayHT(credential) {
|
||||||
|
if (credential) {
|
||||||
|
const [cloned_voice, voices] = await fetchLayHTVoices(credential);
|
||||||
const list_voices = [...cloned_voice, ...voices];
|
const list_voices = [...cloned_voice, ...voices];
|
||||||
|
|
||||||
const buildVoice = (d) => {
|
const buildVoice = (d) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user