Compare commits

...

42 Commits

Author SHA1 Message Date
Dave Horton
f3f048d94f 0.0.59 2024-03-07 09:59:28 -05:00
Dave Horton
a737d8bcbb add config.boostAudioSignal and nested dub in dial verb (#45) 2024-03-07 09:58:59 -05:00
Dave Horton
c3d69e614e 0.0.58 2024-03-07 07:47:27 -05:00
Hoan Luu Huu
9277e053a6 support azure language identification mode (#44) 2024-03-06 12:05:24 -05:00
Dave Horton
954f9479c9 0.0.57 2024-03-04 18:11:01 -05:00
Dave Horton
58385e791b rework dub verb (#43) 2024-03-04 18:10:30 -05:00
Dave Horton
85aaab5856 0.0.56 2024-02-29 19:49:12 -05:00
Dave Horton
d70324485b add support for dub channel (#42) 2024-02-29 19:48:33 -05:00
Dave Horton
2cf2c15586 0.0.55 2024-02-27 12:49:51 -05:00
Dave Horton
f6ad050a32 Feat/ambient sounds (#41)
* add config.ambientNoise

* add answer verb to force answer
2024-02-27 12:49:19 -05:00
Dave Horton
ba02161f74 0.0.54 2024-02-25 15:20:25 -05:00
Dave Horton
fabf9255ea add specs to allow coach mode in conferencing, where one participant can only be heard by another (#40) 2024-02-25 15:19:26 -05:00
Dave Horton
3f1e7cbd3b 0.0.53 2024-02-12 10:43:18 -05:00
Anton Voylenko
ff6bea3168 tag for dial verb (#38) 2024-02-12 10:42:31 -05:00
Dave Horton
4ea66245d4 0.0.52 2024-02-07 08:30:03 -05:00
Dave Horton
faa99cdce3 modify deepgram onprem property names 2024-02-07 08:29:55 -05:00
Dave Horton
d017e739b1 0.0.51 2024-02-05 13:01:05 -05:00
Dave Horton
764383cf43 add support for deepgram on-prem with deepgramOptions.deepgramUri 2024-02-05 13:00:36 -05:00
Dave Horton
3f19ce4a24 0.0.50 2023-12-26 10:14:16 -05:00
Hoan Luu Huu
1e6b24181c support config->transcribe run in background (#37)
* support config->transcribe run in background

* wip

* fix review comments
2023-12-26 10:13:57 -05:00
Dave Horton
63aa94a9ec 0.0.49 2023-12-01 10:28:21 -05:00
Dave Horton
d4614c2ad1 fix awsOptions 2023-12-01 10:28:15 -05:00
Dave Horton
7da6165b93 0.0.48 2023-11-30 15:53:01 -05:00
Dave Horton
ad76081fa7 allow region override in awsOptions 2023-11-30 15:52:43 -05:00
Dave Horton
ce94e943d2 0.0.47 2023-11-30 15:45:11 -05:00
Dave Horton
436fb557dc add support for recognizer.awsOptions (#36) 2023-11-30 15:44:27 -05:00
Dave Horton
203b8600a8 0.0.46 2023-11-14 08:31:08 -05:00
Dave Horton
b877ca52d0 add target.proxy to dial verb (#35) 2023-11-14 08:30:41 -05:00
Anton Voylenko
cdb671d25d sipRequestWithinDialogHook support (#34) 2023-11-14 08:27:33 -05:00
Dave Horton
6ae0aff8b1 0.0.45 2023-11-01 07:57:29 -04:00
Hoan Luu Huu
9a2a22dd88 feat assemblyAi (#33) 2023-11-01 07:56:52 -04:00
Dave Horton
369583d536 minor readme typo 2023-10-30 13:48:08 -04:00
Dave Horton
77d203ca80 0.0.44 2023-10-30 12:49:54 -04:00
Dave Horton
9cb550f49e fix prev commit 2023-10-30 12:49:35 -04:00
Dave Horton
de88976293 0.0.43 2023-10-30 11:15:49 -04:00
Dave Horton
60efb4b9af add recognizer.azureOptions.speechSegmentationSilenceTimeoutMs (to support https://github.com/jambonz/jambonz-feature-server/issues/508) (#31) 2023-10-30 11:15:18 -04:00
Dave Horton
49ac048477 0.0.42 2023-10-29 21:38:28 -04:00
Hoan Luu Huu
e653a62c49 feat google custom voice (#30) 2023-10-29 21:37:49 -04:00
Dave Horton
f41aae81c6 0.0.41 2023-10-27 15:19:12 -04:00
Dave Horton
5707f7d4d4 remove properties with undefined values before validation: the SttTask superclass of gather and transcribe creates them for label and callbackVendor 2023-10-27 15:18:58 -04:00
Dave Horton
f75871dc46 0.0.40 2023-10-27 10:23:39 -04:00
Dave Horton
98fa56bd3d add deepgramOptions.shortUtterance - triggers transcript based on is_final not speech_final 2023-10-27 10:23:31 -04:00
6 changed files with 151 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
# verb-specificiations
# verb-specifications
Jambonz Verb Specification Utilities
#### Running the test suite

View File

@@ -58,7 +58,8 @@ function validateVerb(name, data, logger) {
const dSpec = specData.properties[dKey];
debug(`Task:validate validating property ${dKey} with value ${JSON.stringify(dVal)}`);
if (typeof dSpec === 'string' && dSpec === 'array') {
if (typeof dVal === 'undefined') continue;
else if (typeof dSpec === 'string' && dSpec === 'array') {
if (!Array.isArray(dVal)) throw new Error(`${name}: property ${dKey} is not an array`);
}
else if (typeof dSpec === 'string' && dSpec.includes('|')) {

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@jambonz/verb-specifications",
"version": "0.0.39",
"version": "0.0.59",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@jambonz/verb-specifications",
"version": "0.0.39",
"version": "0.0.59",
"license": "MIT",
"dependencies": {
"debug": "^4.3.4",

View File

@@ -1,6 +1,6 @@
{
"name": "@jambonz/verb-specifications",
"version": "0.0.39",
"version": "0.0.59",
"description": "Jambonz Verb Specification Utilities",
"main": "index.js",
"scripts": {

View File

@@ -1,4 +1,11 @@
{
"answer": {
"properties": {
"id": "string"
},
"required": [
]
},
"sip:decline": {
"properties": {
"id": "string",
@@ -43,12 +50,14 @@
"bargeIn": "#bargeIn",
"record": "#recordOptions",
"listen": "#listenOptions",
"transcribe": "#transcribeOptions",
"amd": "#amd",
"notifyEvents": "boolean",
"reset": "string|array",
"onHoldMusic": "string",
"actionHookDelayAction": "#actionHookDelayAction",
"sipRequestWithinDialogHook": "object|string"
"sipRequestWithinDialogHook": "object|string",
"boostAudioSignal": "number|string"
},
"required": []
},
@@ -91,6 +100,34 @@
"enable"
]
},
"transcribeOptions": {
"properties": {
"enable": "boolean",
"transcriptionHook": "string",
"recognizer": "#recognizer"
},
"required": [
"enable"
]
},
"dub": {
"properties": {
"id": "string",
"action": {
"type": "string",
"enum": ["addTrack", "removeTrack", "silenceTrack", "playOnTrack", "sayOnTrack"]
},
"track": "string",
"play": "string",
"say": "string",
"loop": "boolean",
"gain": "number|string"
},
"required": [
"action",
"track"
]
},
"dequeue": {
"properties": {
"id": "string",
@@ -187,6 +224,8 @@
"id": "string",
"name": "string",
"beep": "boolean",
"memberTag": "string",
"speakOnlyTo": "string",
"startConferenceOnEnter": "boolean",
"endConferenceOnExit": "boolean",
"endConferenceDuration": "number",
@@ -224,7 +263,9 @@
"timeout": "number",
"proxy": "string",
"transcribe": "#transcribe",
"amd": "#amd"
"amd": "#amd",
"dub": "#dub",
"tag": "object"
},
"required": [
"target"
@@ -411,7 +452,8 @@
"headers": "object",
"timeout": "number",
"amd": "#amd",
"dual_streams" : "boolean"
"dual_streams": "boolean",
"sipRequestWithinDialogHook": "string"
},
"required": [
"call_hook",
@@ -459,7 +501,8 @@
"vmail": "boolean",
"tenant": "string",
"trunk": "string",
"overrideTo": "string"
"overrideTo": "string",
"proxy": "string"
},
"required": [
"type"
@@ -488,11 +531,11 @@
"vendor": "string",
"label": "string",
"language": "string",
"voice": "string",
"voice": "string|object",
"fallbackVendor": "string",
"fallbackLabel": "string",
"fallbackLanguage": "string",
"fallbackVoice": "string",
"fallbackVoice": "string|object",
"engine": {
"type": "string",
"enum": ["standard", "neural"]
@@ -584,6 +627,9 @@
"nvidiaOptions": "#nvidiaOptions",
"sonioxOptions": "#sonioxOptions",
"cobaltOptions": "#cobaltOptions",
"awsOptions": "#awsOptions",
"azureOptions": "#azureOptions",
"assemblyAiOptions": "#assemblyAiOptions",
"customOptions": "#customOptions"
},
"required": [
@@ -599,6 +645,43 @@
"required": [
]
},
"awsOptions": {
"properties": {
"accessKey": "string",
"secretKey": "string",
"securityToken": "string",
"region": "string",
"vocabularyName": "string",
"vocabularyFilterName": "string",
"vocabularyFilterMethod": {
"type": "string",
"enum": [
"remove",
"mask",
"tag"
]
},
"languageModelName": "string",
"piiEntityTypes": "array",
"piiIdentifyEntities": "boolean"
},
"required": [
]
},
"azureOptions": {
"properties": {
"speechSegmentationSilenceTimeoutMs": "number",
"languageIdMode": {
"type": "string",
"enum": [
"AtStart",
"Continuous"
]
}
},
"required": [
]
},
"cobaltOptions": {
"properties": {
"serverUri": "string",
@@ -643,6 +726,8 @@
},
"deepgramOptions": {
"properties": {
"deepgramSttUri": "string",
"deepgramSttUseTls": "boolean",
"apiKey": "string",
"tier": "string",
"model": "string",
@@ -671,6 +756,7 @@
"keywords": "array",
"endpointing": "boolean | number",
"utteranceEndMs": "number",
"shortUtterance": "boolean",
"vadTurnoff": "number",
"tag": "string"
}
@@ -745,6 +831,11 @@
"required": [
]
},
"assemblyAiOptions": {
"properties": {
"apiKey": "string"
}
},
"resource": {
"properties": {
"externalReference": "#resourceReference",

View File

@@ -37,6 +37,14 @@ test("validate correct verbs", async (t) => {
"input" : ["speech"],
"actionHook": "/userInput"
},
"transcribe": {
"enable": true,
"transcriptionHook": "http://server.com/hook",
"recognizer": {
"vendor": "google",
"language": "de-DE",
}
},
"onHoldMusic": "http://server.com/hold",
"actionHookDelayAction": {
"enabled": true,
@@ -62,6 +70,28 @@ test("validate correct verbs", async (t) => {
]
}
},
{
"verb": "config",
"recognizer": {
"vendor": "google",
"language": "de-DE",
"label": "label1",
"assemblyAiOptions": {
"apiKey": "apikey"
}
}
},
{
"verb": "config",
"recognizer": {
"vendor": "google",
"language": "de-DE",
"label": "label1",
"azureOptions": {
"languageIdMode": "Continuous"
}
}
},
{
"verb": "config",
"record": {
@@ -178,6 +208,24 @@ test("validate correct verbs", async (t) => {
"fallbackLabel": "label1",
"fallbackVoice": "voice"
}
},
"say": {
"text": "To speak to Sales press 1 or say Sales. To speak to customer support press 2 or say Support",
"synthesizer": {
"vendor": "google",
"language": "en-US",
"voice": {
"reportedUsage":"REALTIME",
"model":"path/to/model",
},
"fallbackVendor": "google",
"fallbackLanguage": "en-US",
"fallbackLabel": "label1",
"fallbackVoice": {
"reportedUsage":"REALTIME",
"model":"path/to/model",
}
}
}
},
{