support gladia stt (#503)

* support gladia stt

* wip

* update verb specification
This commit is contained in:
Hoan Luu Huu
2025-10-20 15:47:17 +07:00
committed by GitHub
parent 0f1f5e9b73
commit 42f4318a17
6 changed files with 261 additions and 6 deletions

View File

@@ -17,7 +17,8 @@ const {decryptCredential, testWhisper, testDeepgramTTS,
testOpenAiStt,
testInworld,
testResembleTTS,
testHoundifyStt} = require('../../utils/speech-utils');
testHoundifyStt,
testGladiaStt} = require('../../utils/speech-utils');
const {DbErrorUnprocessableRequest, DbErrorForbidden, DbErrorBadRequest} = require('../../utils/errors');
const {
testGoogleTts,
@@ -232,6 +233,10 @@ const encryptCredential = (obj) => {
deepgram_stt_use_tls, deepgram_tts_uri, model_id});
return encrypt(deepgramData);
case 'gladia':
const gladiaData = JSON.stringify({api_key, region});
return encrypt(gladiaData);
case 'resemble':
assert(api_key, 'invalid resemble speech credential: api_key is required');
const resembleData = JSON.stringify({
@@ -835,6 +840,18 @@ router.get('/:sid/test', async(req, res) => {
}
}
}
else if (cred.vendor === 'gladia') {
if (cred.use_for_stt) {
try {
await testGladiaStt(logger, credential);
results.stt.status = 'ok';
SpeechCredential.sttTestResult(sid, true);
} catch (err) {
results.stt = {status: 'fail', reason: err.message};
SpeechCredential.sttTestResult(sid, false);
}
}
}
else if (cred.vendor === 'ibm') {
const {getTtsVoices} = req.app.locals;