mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 08:40:38 +00:00
support assemblyai v3 (#1265)
* support assemblyai v3 * wip * wip * wip * wip * wip * wip
This commit is contained in:
@@ -1119,7 +1119,8 @@ class CallSession extends Emitter {
|
||||
else if ('assemblyai' === vendor) {
|
||||
return {
|
||||
speech_credential_sid: credential.speech_credential_sid,
|
||||
api_key: credential.api_key
|
||||
api_key: credential.api_key,
|
||||
service_version: credential.service_version
|
||||
};
|
||||
}
|
||||
else if ('voxist' === vendor) {
|
||||
|
||||
@@ -129,6 +129,7 @@ const speechMapper = (cred) => {
|
||||
else if ('assemblyai' === obj.vendor) {
|
||||
const o = JSON.parse(decrypt(credential));
|
||||
obj.api_key = o.api_key;
|
||||
obj.service_version = o.service_version;
|
||||
}
|
||||
else if ('voxist' === obj.vendor) {
|
||||
const o = JSON.parse(decrypt(credential));
|
||||
|
||||
@@ -523,16 +523,27 @@ const normalizeAws = (evt, channel, language) => {
|
||||
|
||||
const normalizeAssemblyAi = (evt, channel, language) => {
|
||||
const copy = JSON.parse(JSON.stringify(evt));
|
||||
const alternatives = [];
|
||||
let is_final = false;
|
||||
if (evt.type && evt.type === 'Turn') {
|
||||
// v3 is here
|
||||
alternatives.push({
|
||||
confidence: evt.end_of_turn_confidence,
|
||||
transcript: evt.transcript,
|
||||
});
|
||||
is_final = evt.end_of_turn;
|
||||
} else {
|
||||
alternatives.push({
|
||||
confidence: evt.confidence,
|
||||
transcript: evt.text,
|
||||
});
|
||||
is_final = evt.message_type === 'FinalTranscript';
|
||||
}
|
||||
return {
|
||||
language_code: language,
|
||||
channel_tag: channel,
|
||||
is_final: evt.message_type === 'FinalTranscript',
|
||||
alternatives: [
|
||||
{
|
||||
confidence: evt.confidence,
|
||||
transcript: evt.text,
|
||||
}
|
||||
],
|
||||
is_final,
|
||||
alternatives,
|
||||
vendor: {
|
||||
name: 'assemblyai',
|
||||
evt: copy
|
||||
@@ -1018,8 +1029,28 @@ module.exports = (logger) => {
|
||||
};
|
||||
}
|
||||
else if ('assemblyai' === vendor) {
|
||||
const serviceVersion = rOpts.assemblyAiOptions?.serviceVersion || sttCredentials.service_version || 'v2';
|
||||
const {
|
||||
format_turns,
|
||||
end_of_turn_confidence_threshold,
|
||||
min_end_of_turn_silence_when_confident,
|
||||
max_turn_silence
|
||||
} = rOpts.assemblyAiOptions || {};
|
||||
opts = {
|
||||
...opts,
|
||||
ASSEMBLYAI_API_VERSION: serviceVersion,
|
||||
...(serviceVersion === 'v3' && {
|
||||
...(format_turns && {
|
||||
ASSEMBLYAI_FORMAT_TURNS: format_turns
|
||||
}),
|
||||
...(end_of_turn_confidence_threshold && {
|
||||
ASSEMBLYAI_END_OF_TURN_CONFIDENCE_THRESHOLD: end_of_turn_confidence_threshold
|
||||
}),
|
||||
ASSEMBLYAI_MIN_END_OF_TURN_SILENCE_WHEN_CONFIDENT: min_end_of_turn_silence_when_confident || 500,
|
||||
...(max_turn_silence && {
|
||||
ASSEMBLYAI_MAX_TURN_SILENCE: max_turn_silence
|
||||
}),
|
||||
}),
|
||||
...(sttCredentials.api_key) &&
|
||||
{ASSEMBLYAI_API_KEY: sttCredentials.api_key},
|
||||
...(rOpts.hints?.length > 0 &&
|
||||
|
||||
Reference in New Issue
Block a user