Compare commits

...

52 Commits

Author SHA1 Message Date
Dave Horton
c5d977da50 0.0.67 2024-04-02 08:36:02 -04:00
Hoan Luu Huu
a6f64710c1 support google v2 enable_voice_activity_events (#50) 2024-04-02 08:35:47 -04:00
Dave Horton
3463528127 0.0.66 2024-04-01 19:14:23 -04:00
Hoan Luu Huu
030eb5f847 support google stt version 2 (#49)
* support google stt version 2

* fix review comments

* fix review comment
2024-04-01 19:14:06 -04:00
Dave Horton
f8d07d340a 0.0.65 2024-03-30 09:10:18 -04:00
Hoan Luu Huu
8a96b05f23 feat fork audio support bidirectional audio stream (#48)
* feat fork audio support bidirectional audio stream

* update bidirectionalAudio
2024-03-30 09:09:17 -04:00
Dave Horton
a6a942c1c6 0.0.64 2024-03-14 11:18:49 -04:00
Dave Horton
85fa4714fb change dial to allow an array of dub verbs instead of a single one 2024-03-14 11:18:40 -04:00
Dave Horton
d047892fff 0.0.63 2024-03-11 17:45:21 -04:00
Dave Horton
11bb83f703 add dial.boostAudioSignal to set gain on B leg after dial 2024-03-11 17:45:12 -04:00
Dave Horton
c5a263ee68 0.0.62 2024-03-10 21:05:46 -04:00
Dave Horton
47f8a593f5 dub say can either be text or object with text and synthesizer (ie like say verb syntax) 2024-03-10 21:05:37 -04:00
Dave Horton
c9d2c9aa4d 0.0.61 2024-03-10 19:13:11 -04:00
Dave Horton
1ce577c8c9 add channel property to transcribe, can be used in dial verb to indicate to transcribe only one of the two channels (#47) 2024-03-10 19:12:40 -04:00
Dave Horton
dc0abfad02 0.0.60 2024-03-07 15:11:34 -05:00
Dave Horton
1e9285b9d9 add support for playing filler noise while waiting for app to process a gather (#46) 2024-03-07 15:10:55 -05:00
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
5 changed files with 213 additions and 9 deletions

View File

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

4
package-lock.json generated
View File

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

View File

@@ -1,6 +1,6 @@
{
"name": "@jambonz/verb-specifications",
"version": "0.0.42",
"version": "0.0.67",
"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,15 +50,28 @@
"bargeIn": "#bargeIn",
"record": "#recordOptions",
"listen": "#listenOptions",
"transcribe": "#transcribeOptions",
"amd": "#amd",
"fillerNoise": "#fillerNoise",
"notifyEvents": "boolean",
"reset": "string|array",
"onHoldMusic": "string",
"actionHookDelayAction": "#actionHookDelayAction",
"sipRequestWithinDialogHook": "object|string"
"sipRequestWithinDialogHook": "object|string",
"boostAudioSignal": "number|string"
},
"required": []
},
"fillerNoise": {
"properties": {
"enable": "boolean",
"url": "string",
"startDelaySecs": "number"
},
"required": [
"enable"
]
},
"listenOptions": {
"properties": {
"enable": "boolean",
@@ -67,6 +87,7 @@
"passDtmf": "boolean",
"playBeep": "boolean",
"disableBidirectionalAudio": "boolean",
"bidirectionalAudio": "#bidirectionalAudio",
"timeout": "number"
},
"required": [
@@ -91,6 +112,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|object",
"loop": "boolean",
"gain": "number|string"
},
"required": [
"action",
"track"
]
},
"dequeue": {
"properties": {
"id": "string",
@@ -177,6 +226,7 @@
"recognizer": "#recognizer",
"play": "#play",
"say": "#say",
"fillerNoise": "#fillerNoise",
"actionHookDelayAction": "#actionHookDelayAction"
},
"required": [
@@ -187,6 +237,8 @@
"id": "string",
"name": "string",
"beep": "boolean",
"memberTag": "string",
"speakOnlyTo": "string",
"startConferenceOnEnter": "boolean",
"endConferenceOnExit": "boolean",
"endConferenceDuration": "number",
@@ -218,13 +270,16 @@
"dtmfHook": "object|string",
"headers": "object",
"anchorMedia": "boolean",
"boostAudioSignal": "number|string",
"listen": "#listen",
"target": ["#target"],
"timeLimit": "number",
"timeout": "number",
"proxy": "string",
"transcribe": "#transcribe",
"amd": "#amd"
"amd": "#amd",
"dub": ["#dub"],
"tag": "object"
},
"required": [
"target"
@@ -309,6 +364,7 @@
"passDtmf": "boolean",
"playBeep": "boolean",
"disableBidirectionalAudio": "boolean",
"bidirectionalAudio": "#bidirectionalAudio",
"sampleRate": "number",
"timeout": "number",
"transcribe": "#transcribe",
@@ -411,7 +467,8 @@
"headers": "object",
"timeout": "number",
"amd": "#amd",
"dual_streams" : "boolean"
"dual_streams": "boolean",
"sipRequestWithinDialogHook": "string"
},
"required": [
"call_hook",
@@ -433,7 +490,8 @@
"id": "string",
"transcriptionHook": "string",
"recognizer": "#recognizer",
"earlyMedia": "boolean"
"earlyMedia": "boolean",
"channel": "number"
},
"required": [
"transcriptionHook"
@@ -459,7 +517,8 @@
"vmail": "boolean",
"tenant": "string",
"trunk": "string",
"overrideTo": "string"
"overrideTo": "string",
"proxy": "string"
},
"required": [
"type"
@@ -584,6 +643,10 @@
"nvidiaOptions": "#nvidiaOptions",
"sonioxOptions": "#sonioxOptions",
"cobaltOptions": "#cobaltOptions",
"awsOptions": "#awsOptions",
"azureOptions": "#azureOptions",
"assemblyAiOptions": "#assemblyAiOptions",
"googleOptions": "#googleOptions",
"customOptions": "#customOptions"
},
"required": [
@@ -599,6 +662,58 @@
"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": [
]
},
"googleOptions" : {
"properties": {
"serviceVersion": {
"type": "string",
"enum": [
"v1",
"v2"
]
},
"speechStartTimeoutMs": "number",
"speechEndTimeoutMs": "number",
"enableVoiceActivityEvents": "boolean",
"transcriptNormalization": "array"
}
},
"cobaltOptions": {
"properties": {
"serverUri": "string",
@@ -643,6 +758,8 @@
},
"deepgramOptions": {
"properties": {
"deepgramSttUri": "string",
"deepgramSttUseTls": "boolean",
"apiKey": "string",
"tier": "string",
"model": "string",
@@ -746,6 +863,11 @@
"required": [
]
},
"assemblyAiOptions": {
"properties": {
"apiKey": "string"
}
},
"resource": {
"properties": {
"externalReference": "#resourceReference",
@@ -855,5 +977,12 @@
"retries": "number",
"actions": "array"
}
},
"bidirectionalAudio" : {
"properties": {
"enabled": "boolean",
"streaming": "boolean",
"sampleRate": "number"
}
}
}

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": {
@@ -284,6 +314,29 @@ test("validate correct verbs", async (t) => {
"url": "wss://myrecorder.example.com/calls",
"mixType" : "stereo"
},
{
"verb": "listen",
"url": "wss://myrecorder.example.com/calls",
"mixType" : "stereo",
"bidirectionalAudio": {
enabled: true,
streaming: true,
sampleRate: 8000
}
},
{
"verb": "config",
"listen": {
"enable": true,
"url": "wss://myrecorder.example.com/calls",
"mixType" : "stereo",
"bidirectionalAudio": {
enabled: true,
streaming: true,
sampleRate: 8000
}
}
},
{
"verb": "message",
"to": "15083084809",
@@ -359,6 +412,28 @@ test("validate correct verbs", async (t) => {
"interim": true
}
},
{
"verb": "transcribe",
"transcriptionHook": "http://example.com/transcribe",
"recognizer": {
"vendor": "nvidia",
"language" : "en-US",
"interim": true,
"googleOptions": {
"serviceVersion": "v2",
"speechStartTimeoutMs": 500,
"speechEndTimeoutMs": 1000,
"enableVoiceActivityEvents": true,
"transcriptNormalization" : [
{
"search": "dog",
"replace": "cat",
"case_sensitive": true
}
]
}
}
},
{
"verb": "rest:dial",
"account_sid": "1291964182631236912836123912",