add support for deepgram STT

This commit is contained in:
Dave Horton
2022-11-10 14:34:04 -05:00
parent 1b67d5f89d
commit ee5e25bb8d
7 changed files with 171 additions and 17 deletions
+28 -1
View File
@@ -14,7 +14,8 @@ const {
testMicrosoftTts,
testWellSaidTts,
testNuanceStt,
testNuanceTts
testNuanceTts,
testDeepgramStt
} = require('../../utils/speech-utils');
const obscureKey = (key) => {
@@ -88,6 +89,11 @@ const encryptCredential = (obj) => {
const nuanceData = JSON.stringify({client_id, secret});
return encrypt(nuanceData);
case 'deepgram':
assert(api_key, 'invalid deepgram speech credential: api_key is required');
const deepgramData = JSON.stringify({api_key});
return encrypt(deepgramData);
default:
assert(false, `invalid or missing vendor: ${vendor}`);
}
@@ -175,6 +181,10 @@ router.get('/', async(req, res) => {
obj.client_id = o.client_id;
obj.secret = obscureKey(o.secret);
}
else if ('deepgram' === obj.vendor) {
const o = JSON.parse(decrypt(credential));
obj.api_key = obscureKey(o.api_key);
}
return obj;
}));
} catch (err) {
@@ -225,6 +235,10 @@ router.get('/:sid', async(req, res) => {
obj.client_id = o.client_id;
obj.secret = obscureKey(o.secret);
}
else if ('deepgram' === obj.vendor) {
const o = JSON.parse(decrypt(credential));
obj.api_key = obscureKey(o.api_key);
}
res.status(200).json(obj);
} catch (err) {
sysError(logger, res, err);
@@ -474,6 +488,19 @@ router.get('/:sid/test', async(req, res) => {
}
}
}
else if (cred.vendor === 'deepgram') {
const {api_key} = credential;
if (cred.use_for_stt) {
try {
await testDeepgramStt(logger, {api_key});
results.stt.status = 'ok';
SpeechCredential.sttTestResult(sid, true);
} catch (err) {
results.stt = {status: 'fail', reason: err.message};
SpeechCredential.sttTestResult(sid, false);
}
}
}
res.status(200).json(results);
} catch (err) {
sysError(logger, res, err);