speechstate 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/asr.d.ts CHANGED
@@ -53,65 +53,69 @@ interface ASRInit {
53
53
  azureLanguageCredentials?: AzureLanguageCredentials;
54
54
  }
55
55
  export declare const asrMachine: import("xstate").StateMachine<ASRContext, ASREvent, {
56
- [x: string]: import("xstate").ActorRef<import("xstate").CallbackSnapshot<{}>, import("xstate").EventObject> | import("xstate").ActorRef<import("xstate").PromiseSnapshot<string, any>, {
56
+ [x: string]: import("xstate").ActorRef<import("xstate").CallbackSnapshot<{}>, import("xstate").EventObject, import("xstate").EventObject> | import("xstate").ActorRef<import("xstate").PromiseSnapshot<string, any>, {
57
57
  [k: string]: unknown;
58
58
  type: string;
59
- }> | import("xstate").ActorRef<import("xstate").CallbackSnapshot<any>, import("xstate").EventObject> | import("xstate").ActorRef<import("xstate").PromiseSnapshot<any, AzureLanguageCredentials & {
59
+ }, import("xstate").EventObject> | import("xstate").ActorRef<import("xstate").CallbackSnapshot<any>, import("xstate").EventObject, import("xstate").EventObject> | import("xstate").ActorRef<import("xstate").PromiseSnapshot<any, AzureLanguageCredentials & {
60
60
  query: string;
61
61
  }>, {
62
62
  [k: string]: unknown;
63
63
  type: string;
64
- }>;
65
- }, {
66
- src: "getToken";
67
- logic: import("xstate").PromiseActorLogic<string, any>;
68
- id: string;
69
- } | {
70
- src: "ponyfill";
71
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
72
- id: string;
73
- } | {
74
- src: "recStart";
75
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, any>;
76
- id: string;
77
- } | {
78
- src: "nluPromise";
79
- logic: import("xstate").PromiseActorLogic<any, AzureLanguageCredentials & {
80
- query: string;
81
- }>;
82
- id: string;
83
- }, {
64
+ }, import("xstate").EventObject>;
65
+ }, import("xstate").Values<{
66
+ getToken: {
67
+ src: "getToken";
68
+ logic: import("xstate").PromiseActorLogic<string, any>;
69
+ id: string;
70
+ };
71
+ ponyfill: {
72
+ src: "ponyfill";
73
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
74
+ id: string;
75
+ };
76
+ recStart: {
77
+ src: "recStart";
78
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, any>;
79
+ id: string;
80
+ };
81
+ nluPromise: {
82
+ src: "nluPromise";
83
+ logic: import("xstate").PromiseActorLogic<any, AzureLanguageCredentials & {
84
+ query: string;
85
+ }>;
86
+ id: string;
87
+ };
88
+ }>, {
84
89
  type: "recStop";
85
90
  params: unknown;
86
- }, {
87
- type: string;
88
- params: {};
89
- }, string, "GetToken" | "Ready" | "Fail" | "Ponyfill" | "Pause" | {
91
+ }, never, never, "GetToken" | "Ready" | "Fail" | "Ponyfill" | "Pause" | {
90
92
  Recognising?: "WaitForRecogniser" | "NoInput" | "InProgress" | "Match" | "NLURequest";
91
- }, string, ASRInit, {}, import("xstate").ResolveTypegenMeta<import("xstate").TypegenDisabled, ASREvent, {
92
- src: "getToken";
93
- logic: import("xstate").PromiseActorLogic<string, any>;
94
- id: string;
95
- } | {
96
- src: "ponyfill";
97
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
98
- id: string;
99
- } | {
100
- src: "recStart";
101
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, any>;
102
- id: string;
103
- } | {
104
- src: "nluPromise";
105
- logic: import("xstate").PromiseActorLogic<any, AzureLanguageCredentials & {
106
- query: string;
107
- }>;
108
- id: string;
109
- }, {
93
+ }, string, ASRInit, {}, import("xstate").EventObject, import("xstate").ResolveTypegenMeta<import("xstate").TypegenDisabled, ASREvent, import("xstate").Values<{
94
+ getToken: {
95
+ src: "getToken";
96
+ logic: import("xstate").PromiseActorLogic<string, any>;
97
+ id: string;
98
+ };
99
+ ponyfill: {
100
+ src: "ponyfill";
101
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
102
+ id: string;
103
+ };
104
+ recStart: {
105
+ src: "recStart";
106
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, any>;
107
+ id: string;
108
+ };
109
+ nluPromise: {
110
+ src: "nluPromise";
111
+ logic: import("xstate").PromiseActorLogic<any, AzureLanguageCredentials & {
112
+ query: string;
113
+ }>;
114
+ id: string;
115
+ };
116
+ }>, {
110
117
  type: "recStop";
111
118
  params: unknown;
112
- }, {
113
- type: string;
114
- params: {};
115
- }, string, string>>;
119
+ }, never, never, string, import("xstate").EventObject>>;
116
120
  export {};
117
121
  //# sourceMappingURL=asr.d.ts.map
package/dist/asr.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"asr.d.ts","sourceRoot":"","sources":["../src/asr.ts"],"names":[],"mappings":";AAcA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,YAAO;CACR;AACD,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,YAAO;CACR;AAED,KAAK,QAAQ,GACT;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE;QACL,MAAM,EAAE,mBAAmB,CAAC;QAC5B,cAAc,EAAE,mBAAmB,CAAC;KACrC,CAAC;CACH,GACD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE;QAAE,cAAc,EAAE,mBAAmB,CAAA;KAAE,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AAE5C,UAAU,UAAW,SAAQ,OAAO;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,UAAU,OAAO;IACf,yBAAyB,EAAE,MAAM,CAAC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAClD,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD;AAED,eAAO,MAAM,UAAU;;;;;eAiF8C,MAAM;;;;;;;;;;;;;;;;;;;;eAAN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;eAAN,MAAM;;;;;;;;;mBA6RzE,CAAC"}
1
+ {"version":3,"file":"asr.d.ts","sourceRoot":"","sources":["../src/asr.ts"],"names":[],"mappings":";AAcA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,YAAO;CACR;AACD,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,YAAO;CACR;AAED,KAAK,QAAQ,GACT;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE;QACL,MAAM,EAAE,mBAAmB,CAAC;QAC5B,cAAc,EAAE,mBAAmB,CAAC;KACrC,CAAC;CACH,GACD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE;QAAE,cAAc,EAAE,mBAAmB,CAAA;KAAE,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC;AAE5C,UAAU,UAAW,SAAQ,OAAO;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,UAAU,OAAO;IACf,yBAAyB,EAAE,MAAM,CAAC;IAClC,wBAAwB,EAAE,MAAM,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAClD,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;CACrD;AAED,eAAO,MAAM,UAAU;;;;;eAiF8C,MAAM;;;;;;;;;;;;;;;;;;;;;;;;mBAAN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAN,MAAM;;;;;;;uDA6RzE,CAAC"}
@@ -43,6 +43,6 @@ type SSEventIntIn = {
43
43
  type: "TTS_ERROR";
44
44
  };
45
45
  type SSEvent = SSEventIntIn | SSEventExtIn | SSEventExtOut;
46
- declare const speechstate: import("xstate").StateMachine<SSContext, SSEvent, Record<string, import("xstate").AnyActorRef>, import("xstate").ProvidedActor, import("xstate").ParameterizedObject, import("xstate").ParameterizedObject, string, import("xstate").StateValue, string, Settings, {}, import("xstate").ResolveTypegenMeta<import("xstate").TypegenDisabled, SSEvent, import("xstate").ProvidedActor, import("xstate").ParameterizedObject, import("xstate").ParameterizedObject, string, string>>;
46
+ declare const speechstate: import("xstate").StateMachine<SSContext, SSEvent, Record<string, import("xstate").AnyActorRef>, import("xstate").ProvidedActor, import("xstate").ParameterizedObject, import("xstate").ParameterizedObject, string, import("xstate").StateValue, string, Settings, {}, import("xstate").EventObject, import("xstate").ResolveTypegenMeta<import("xstate").TypegenDisabled, SSEvent, import("xstate").ProvidedActor, import("xstate").ParameterizedObject, import("xstate").ParameterizedObject, string, string, import("xstate").EventObject>>;
47
47
  export { speechstate };
48
48
  //# sourceMappingURL=speechstate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"speechstate.d.ts","sourceRoot":"","sources":["../src/speechstate.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC5E,UAAU,SAAS;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,wDAAwD;AACxD,KAAK,YAAY,GACb;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAEnD,uCAAuC;AACvC,KAAK,aAAa,GACd;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC;AAEhE,KAAK,YAAY,GACb;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAE1B,KAAK,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;AAE3D,QAAA,MAAM,WAAW,odAqThB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"speechstate.d.ts","sourceRoot":"","sources":["../src/speechstate.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC5E,UAAU,SAAS;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,wDAAwD;AACxD,KAAK,YAAY,GACb;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAEnD,uCAAuC;AACvC,KAAK,aAAa,GACd;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC;AAEhE,KAAK,YAAY,GACb;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAE1B,KAAK,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;AAE3D,QAAA,MAAM,WAAW,ghBA0UhB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -10,252 +10,273 @@ const speechstate = (0, xstate_1.createMachine)({
10
10
  settings: input,
11
11
  }),
12
12
  id: "speechstate",
13
- type: "parallel",
13
+ initial: "Active",
14
14
  states: {
15
- AsrTtsSpawner: {
16
- initial: "Idle",
17
- on: {
18
- STOP: { target: ".Stopped", actions: (0, xstate_1.assign)({ audioContext: null }) },
19
- },
15
+ Stopped: {
16
+ meta: { view: "stopped" },
17
+ entry: [
18
+ (0, xstate_1.stopChild)("ttsRef"),
19
+ (0, xstate_1.stopChild)("asrRef"),
20
+ (0, xstate_1.assign)({
21
+ audioContext: undefined,
22
+ ttsRef: undefined,
23
+ asrRef: undefined,
24
+ }),
25
+ () => console.debug("[SpSt] destroyed ASR and TTS"),
26
+ ],
27
+ },
28
+ Active: {
29
+ type: "parallel",
20
30
  states: {
21
- Idle: { on: { PREPARE: "CreateAudioContext" } },
22
- CreateAudioContext: {
23
- invoke: {
24
- id: "createAudioContext",
25
- src: "audioContext",
26
- onDone: {
27
- target: "Spawn",
28
- actions: (0, xstate_1.assign)({ audioContext: ({ event }) => event.output }),
31
+ AsrTtsSpawner: {
32
+ initial: "Idle",
33
+ states: {
34
+ Idle: { on: { PREPARE: "CreateAudioContext" } },
35
+ CreateAudioContext: {
36
+ invoke: {
37
+ id: "createAudioContext",
38
+ src: "audioContext",
39
+ onDone: {
40
+ target: "Spawn",
41
+ actions: (0, xstate_1.assign)({
42
+ audioContext: ({ event }) => event.output,
43
+ }),
44
+ },
45
+ },
29
46
  },
30
- },
31
- },
32
- Spawn: {
33
- entry: [
34
- (0, xstate_1.assign)({
35
- ttsRef: ({ context, spawn }) => {
36
- return spawn(tts_1.ttsMachine, {
37
- id: "ttsRef",
38
- input: {
39
- ttsDefaultVoice: context.settings.ttsDefaultVoice,
40
- audioContext: context.audioContext,
41
- azureCredentials: context.settings.azureCredentials,
47
+ Spawn: {
48
+ entry: [
49
+ (0, xstate_1.assign)({
50
+ ttsRef: ({ context, spawn }) => {
51
+ return spawn(tts_1.ttsMachine, {
52
+ id: "ttsRef",
53
+ input: {
54
+ ttsDefaultVoice: context.settings.ttsDefaultVoice,
55
+ audioContext: context.audioContext,
56
+ azureCredentials: context.settings.azureCredentials,
57
+ },
58
+ });
42
59
  },
43
- });
44
- },
45
- }),
46
- (0, xstate_1.assign)({
47
- asrRef: ({ context, spawn }) => {
48
- return spawn(asr_1.asrMachine, {
49
- id: "asrRef",
50
- input: {
51
- asrDefaultCompleteTimeout: context.settings.asrDefaultCompleteTimeout,
52
- asrDefaultNoInputTimeout: context.settings.asrDefaultNoInputTimeout,
53
- locale: context.settings.locale,
54
- audioContext: context.audioContext,
55
- azureCredentials: context.settings.azureCredentials,
56
- azureLanguageCredentials: context.settings.azureLanguageCredentials,
57
- speechRecognitionEndpointId: context.settings.speechRecognitionEndpointId,
60
+ }),
61
+ (0, xstate_1.assign)({
62
+ asrRef: ({ context, spawn }) => {
63
+ return spawn(asr_1.asrMachine, {
64
+ id: "asrRef",
65
+ input: {
66
+ asrDefaultCompleteTimeout: context.settings.asrDefaultCompleteTimeout,
67
+ asrDefaultNoInputTimeout: context.settings.asrDefaultNoInputTimeout,
68
+ locale: context.settings.locale,
69
+ audioContext: context.audioContext,
70
+ azureCredentials: context.settings.azureCredentials,
71
+ azureLanguageCredentials: context.settings.azureLanguageCredentials,
72
+ speechRecognitionEndpointId: context.settings.speechRecognitionEndpointId,
73
+ },
74
+ });
58
75
  },
59
- });
76
+ }),
77
+ ],
78
+ after: {
79
+ 300000: {
80
+ target: "Spawn",
81
+ reenter: true,
82
+ actions: [
83
+ ({}) => console.debug("[SpSt] respawning ASR and TTS"),
84
+ (0, xstate_1.stopChild)("ttsRef"),
85
+ (0, xstate_1.stopChild)("asrRef"),
86
+ (0, xstate_1.assign)({
87
+ audioContext: undefined,
88
+ ttsRef: undefined,
89
+ asrRef: undefined,
90
+ }),
91
+ ],
92
+ },
60
93
  },
61
- }),
62
- ],
63
- exit: [
64
- (0, xstate_1.stopChild)("ttsRef"),
65
- (0, xstate_1.stopChild)("asrRef"),
66
- (0, xstate_1.assign)({ ttsRef: undefined, asrRef: undefined }),
67
- ],
68
- after: {
69
- 300000: {
70
- target: "Spawn",
71
- reenter: true,
72
94
  },
73
95
  },
74
96
  },
75
- Stopped: {},
76
- },
77
- },
78
- AsrTtsManager: {
79
- initial: "Initialize",
80
- on: {
81
- TTS_READY: {
82
- actions: () => console.debug("[TTS→SpSt] TTS_READY"),
83
- target: ".PreReady",
84
- },
85
- ASR_READY: {
86
- actions: () => console.debug("[ASR→SpSt] ASR_READY"),
87
- target: ".PreReady",
88
- },
89
- // ASR_ERROR not implemented
90
- TTS_ERROR: {
91
- actions: () => console.error("[TTS→SpSt] TTS_ERROR"),
92
- target: ".Fail",
93
- },
94
- ASR_NOINPUT: {
95
- actions: [
96
- () => console.debug("[ASR→SpSt] NOINPUT"),
97
- (0, xstate_1.sendParent)({ type: "ASR_NOINPUT" }),
98
- ],
99
- target: ".Ready",
100
- },
101
- STOP: ".Stopped",
102
- },
103
- states: {
104
- Initialize: {
105
- meta: { view: "not-ready" },
106
- },
107
- PreReady: {
108
- meta: { view: "not-ready" },
97
+ AsrTtsManager: {
98
+ initial: "Initialize",
109
99
  on: {
110
100
  TTS_READY: {
111
101
  actions: () => console.debug("[TTS→SpSt] TTS_READY"),
112
- target: "Ready",
102
+ target: ".PreReady",
113
103
  },
114
104
  ASR_READY: {
115
105
  actions: () => console.debug("[ASR→SpSt] ASR_READY"),
116
- target: "Ready",
106
+ target: ".PreReady",
117
107
  },
108
+ // ASR_ERROR not implemented
109
+ TTS_ERROR: {
110
+ actions: () => console.error("[TTS→SpSt] TTS_ERROR"),
111
+ target: ".Fail",
112
+ },
113
+ ASR_NOINPUT: {
114
+ actions: [
115
+ () => console.debug("[ASR→SpSt] NOINPUT"),
116
+ (0, xstate_1.sendParent)({ type: "ASR_NOINPUT" }),
117
+ ],
118
+ target: ".Ready",
119
+ },
120
+ STOP: "#speechstate.Stopped",
118
121
  },
119
- },
120
- Ready: {
121
- initial: "Idle",
122
- entry: [
123
- () => console.debug("[SpSt] All ready"),
124
- (0, xstate_1.sendParent)({ type: "ASRTTS_READY" }),
125
- ],
126
122
  states: {
127
- Idle: {
128
- meta: { view: "idle" },
123
+ Initialize: {
124
+ meta: { view: "not-ready" },
125
+ },
126
+ PreReady: {
127
+ meta: { view: "not-ready" },
129
128
  on: {
130
- LISTEN: { target: "WaitForRecogniser" },
131
- SPEAK: [
132
- {
133
- target: "Speaking",
134
- },
135
- ],
129
+ TTS_READY: {
130
+ actions: () => console.debug("[TTS→SpSt] TTS_READY"),
131
+ target: "Ready",
132
+ },
133
+ ASR_READY: {
134
+ actions: () => console.debug("[ASR→SpSt] ASR_READY"),
135
+ target: "Ready",
136
+ },
136
137
  },
137
138
  },
138
- Speaking: {
139
- initial: "Proceed",
139
+ Ready: {
140
+ initial: "Idle",
140
141
  entry: [
141
- ({ event }) => console.debug("[SpSt→TTS] SPEAK", event.value),
142
- ({ context, event }) => context.ttsRef.send({
143
- type: "SPEAK",
144
- value: event.value,
145
- }),
142
+ () => console.debug("[SpSt] All ready"),
143
+ (0, xstate_1.sendParent)({ type: "ASRTTS_READY" }),
146
144
  ],
147
- on: {
148
- STOP: {
149
- target: "#speechstate.AsrTtsManager.Stopped",
150
- actions: [
151
- () => console.debug("[SpSt→TTS] STOP"),
152
- ({ context }) => context.ttsRef.send({
153
- type: "STOP",
154
- }),
155
- ],
145
+ states: {
146
+ Idle: {
147
+ meta: { view: "idle" },
148
+ on: {
149
+ LISTEN: { target: "WaitForRecogniser" },
150
+ SPEAK: [
151
+ {
152
+ target: "Speaking",
153
+ },
154
+ ],
155
+ },
156
156
  },
157
- TTS_STARTED: {
158
- actions: [
159
- () => console.debug("[TTS→SpSt] TTS_STARTED"),
160
- (0, xstate_1.sendParent)({ type: "TTS_STARTED" }),
157
+ Speaking: {
158
+ initial: "Proceed",
159
+ entry: [
160
+ ({ event }) => console.debug("[SpSt→TTS] SPEAK", event.value),
161
+ ({ context, event }) => context.ttsRef.send({
162
+ type: "SPEAK",
163
+ value: event.value,
164
+ }),
161
165
  ],
166
+ on: {
167
+ STOP: {
168
+ target: "#speechstate.Stopped",
169
+ actions: [
170
+ ({}) => console.debug("[SpSt→TTS] STOP"),
171
+ ({ context, event }) => context.ttsRef.send({
172
+ type: "STOP",
173
+ }),
174
+ ],
175
+ },
176
+ TTS_STARTED: {
177
+ actions: [
178
+ () => console.debug("[TTS→SpSt] TTS_STARTED"),
179
+ (0, xstate_1.sendParent)({ type: "TTS_STARTED" }),
180
+ ],
181
+ },
182
+ SPEAK_COMPLETE: {
183
+ target: "Idle",
184
+ actions: [
185
+ () => console.debug("[TTS→SpSt] SPEAK_COMPLETE"),
186
+ (0, xstate_1.sendParent)({ type: "SPEAK_COMPLETE" }),
187
+ ],
188
+ },
189
+ },
190
+ states: {
191
+ Proceed: {
192
+ meta: { view: "speaking" },
193
+ on: {
194
+ CONTROL: {
195
+ target: "Paused",
196
+ actions: [
197
+ () => console.debug("[SpSt→TTS] CONTROL"),
198
+ ({ context }) => context.ttsRef.send({
199
+ type: "CONTROL",
200
+ }),
201
+ ],
202
+ },
203
+ },
204
+ },
205
+ Paused: {
206
+ meta: { view: "speaking-paused" },
207
+ on: {
208
+ CONTROL: {
209
+ target: "Proceed",
210
+ actions: [
211
+ () => console.debug("[SpSt→TTS] CONTROL"),
212
+ ({ context }) => context.ttsRef.send({
213
+ type: "CONTROL",
214
+ }),
215
+ ],
216
+ },
217
+ },
218
+ },
219
+ },
162
220
  },
163
- SPEAK_COMPLETE: {
164
- target: "Idle",
165
- actions: [
166
- () => console.debug("[TTS→SpSt] SPEAK_COMPLETE"),
167
- (0, xstate_1.sendParent)({ type: "SPEAK_COMPLETE" }),
221
+ WaitForRecogniser: {
222
+ meta: { view: "idle" },
223
+ entry: [
224
+ ({ event }) => console.debug("[SpSt→ASR] START", event.value),
225
+ ({ context, event }) => context.asrRef.send({
226
+ type: "START",
227
+ value: event.value,
228
+ }),
168
229
  ],
169
- },
170
- },
171
- states: {
172
- Proceed: {
173
- meta: { view: "speaking" },
174
230
  on: {
175
- CONTROL: {
176
- target: "Paused",
231
+ ASR_STARTED: {
232
+ target: "Recognising",
177
233
  actions: [
178
- () => console.debug("[SpSt→TTS] CONTROL"),
179
- ({ context }) => context.ttsRef.send({
180
- type: "CONTROL",
181
- }),
234
+ () => console.debug("[ASR→SpSt] ASR_STARTED"),
235
+ (0, xstate_1.sendParent)({ type: "ASR_STARTED" }),
182
236
  ],
183
237
  },
184
238
  },
185
239
  },
186
- Paused: {
187
- meta: { view: "speaking-paused" },
240
+ Recognising: {
241
+ meta: { view: "recognising" },
188
242
  on: {
189
243
  CONTROL: {
190
- target: "Proceed",
244
+ /** TODO go to paused state? */
191
245
  actions: [
192
- () => console.debug("[SpSt→TTS] CONTROL"),
193
- ({ context }) => context.ttsRef.send({
246
+ () => console.debug("[SpSt→ASR] CONTROL"),
247
+ ({ context }) => context.asrRef.send({
194
248
  type: "CONTROL",
195
249
  }),
196
250
  ],
197
251
  },
252
+ STOP: {
253
+ target: "#speechstate.Stopped",
254
+ actions: [
255
+ () => console.debug("[SpSt→ASR] STOP"),
256
+ ({ context }) => context.asrRef.send({
257
+ type: "STOP",
258
+ }),
259
+ ],
260
+ },
261
+ RECOGNISED: {
262
+ actions: [
263
+ ({ event }) => console.debug("[ASR→SpSt] RECOGNISED", event.value, event.nluValue),
264
+ (0, xstate_1.sendParent)(({ event }) => ({
265
+ type: "RECOGNISED",
266
+ value: event.value,
267
+ nluValue: event.nluValue,
268
+ })),
269
+ ],
270
+ target: "Idle",
271
+ },
198
272
  },
199
273
  },
200
274
  },
201
275
  },
202
- WaitForRecogniser: {
203
- meta: { view: "idle" },
204
- entry: [
205
- ({ event }) => console.debug("[SpSt→ASR] START", event.value),
206
- ({ context, event }) => context.asrRef.send({
207
- type: "START",
208
- value: event.value,
209
- }),
210
- ],
211
- on: {
212
- ASR_STARTED: {
213
- target: "Recognising",
214
- actions: [
215
- () => console.debug("[ASR→SpSt] ASR_STARTED"),
216
- (0, xstate_1.sendParent)({ type: "ASR_STARTED" }),
217
- ],
218
- },
219
- },
220
- },
221
- Recognising: {
222
- meta: { view: "recognising" },
223
- on: {
224
- CONTROL: {
225
- /** TODO go to paused state? */
226
- actions: [
227
- () => console.debug("[SpSt→ASR] CONTROL"),
228
- ({ context }) => context.asrRef.send({
229
- type: "CONTROL",
230
- }),
231
- ],
232
- },
233
- STOP: {
234
- target: "#speechstate.AsrTtsManager.Stopped",
235
- actions: [
236
- () => console.debug("[SpSt→ASR] STOP"),
237
- ({ context }) => context.asrRef.send({
238
- type: "STOP",
239
- }),
240
- ],
241
- },
242
- RECOGNISED: {
243
- actions: [
244
- ({ event }) => console.debug("[ASR→SpSt] RECOGNISED", event.value, event.nluValue),
245
- (0, xstate_1.sendParent)(({ event }) => ({
246
- type: "RECOGNISED",
247
- value: event.value,
248
- nluValue: event.nluValue,
249
- })),
250
- ],
251
- target: "Idle",
252
- },
253
- },
254
- },
276
+ Fail: { meta: { view: "error" } },
277
+ Stopped: { meta: { view: "stopped" } },
255
278
  },
256
279
  },
257
- Fail: { meta: { view: "error" } },
258
- Stopped: { meta: { view: "stopped" } },
259
280
  },
260
281
  },
261
282
  },
package/dist/tts.d.ts CHANGED
@@ -45,39 +45,50 @@ type TTSEvent = {
45
45
  type: "SPEAK_COMPLETE";
46
46
  };
47
47
  export declare const ttsMachine: import("xstate").StateMachine<TTSContext, TTSEvent, {
48
- [x: string]: import("xstate").ActorRef<import("xstate").CallbackSnapshot<{}>, import("xstate").EventObject> | import("xstate").ActorRef<import("xstate").PromiseSnapshot<string, any>, {
48
+ [x: string]: import("xstate").ActorRef<import("xstate").CallbackSnapshot<{}>, import("xstate").EventObject, import("xstate").EventObject> | import("xstate").ActorRef<import("xstate").PromiseSnapshot<string, any>, {
49
49
  [k: string]: unknown;
50
50
  type: string;
51
- }> | import("xstate").ActorRef<import("xstate").CallbackSnapshot<Agenda>, import("xstate").EventObject>;
52
- }, {
53
- src: "getToken";
54
- logic: import("xstate").PromiseActorLogic<string, any>;
55
- id: string;
56
- } | {
57
- src: "createEventsFromStream";
58
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, Agenda>;
59
- id: string;
60
- } | {
61
- src: "ponyfill";
62
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
63
- id: string;
64
- } | {
65
- src: "start";
66
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
67
- id: string;
68
- }, {
69
- type: "ttsStop";
70
- params: unknown;
71
- } | {
72
- type: "addFiller";
73
- params: {};
74
- }, {
75
- type: "bufferContainsUtterancePartReadyToBeSpoken";
76
- params: unknown;
77
- } | {
78
- type: "bufferIsNonEmpty";
79
- params: unknown;
80
- }, "FILLER_DELAY", "GetToken" | "Fail" | "Ponyfill" | {
51
+ }, import("xstate").EventObject> | import("xstate").ActorRef<import("xstate").CallbackSnapshot<Agenda>, import("xstate").EventObject, import("xstate").EventObject>;
52
+ }, import("xstate").Values<{
53
+ getToken: {
54
+ src: "getToken";
55
+ logic: import("xstate").PromiseActorLogic<string, any>;
56
+ id: string;
57
+ };
58
+ createEventsFromStream: {
59
+ src: "createEventsFromStream";
60
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, Agenda>;
61
+ id: string;
62
+ };
63
+ ponyfill: {
64
+ src: "ponyfill";
65
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
66
+ id: string;
67
+ };
68
+ start: {
69
+ src: "start";
70
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
71
+ id: string;
72
+ };
73
+ }>, import("xstate").Values<{
74
+ ttsStop: {
75
+ type: "ttsStop";
76
+ params: unknown;
77
+ };
78
+ addFiller: {
79
+ type: "addFiller";
80
+ params: {};
81
+ };
82
+ }>, import("xstate").Values<{
83
+ bufferContainsUtterancePartReadyToBeSpoken: {
84
+ type: "bufferContainsUtterancePartReadyToBeSpoken";
85
+ params: unknown;
86
+ };
87
+ bufferIsNonEmpty: {
88
+ type: "bufferIsNonEmpty";
89
+ params: unknown;
90
+ };
91
+ }>, "FILLER_DELAY", "GetToken" | "Fail" | "Ponyfill" | {
81
92
  Ready?: "Idle" | {
82
93
  BufferedSpeaker?: Required<{
83
94
  Buffer?: "BufferIdle" | "Buffering" | "BufferingDone";
@@ -87,34 +98,45 @@ export declare const ttsMachine: import("xstate").StateMachine<TTSContext, TTSEv
87
98
  }>;
88
99
  Speaking?: "Go" | "Paused";
89
100
  };
90
- }, string, TTSInit, {}, import("xstate").ResolveTypegenMeta<import("xstate").TypegenDisabled, TTSEvent, {
91
- src: "getToken";
92
- logic: import("xstate").PromiseActorLogic<string, any>;
93
- id: string;
94
- } | {
95
- src: "createEventsFromStream";
96
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, Agenda>;
97
- id: string;
98
- } | {
99
- src: "ponyfill";
100
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
101
- id: string;
102
- } | {
103
- src: "start";
104
- logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
105
- id: string;
106
- }, {
107
- type: "ttsStop";
108
- params: unknown;
109
- } | {
110
- type: "addFiller";
111
- params: {};
112
- }, {
113
- type: "bufferContainsUtterancePartReadyToBeSpoken";
114
- params: unknown;
115
- } | {
116
- type: "bufferIsNonEmpty";
117
- params: unknown;
118
- }, "FILLER_DELAY", string>>;
101
+ }, string, TTSInit, {}, import("xstate").EventObject, import("xstate").ResolveTypegenMeta<import("xstate").TypegenDisabled, TTSEvent, import("xstate").Values<{
102
+ getToken: {
103
+ src: "getToken";
104
+ logic: import("xstate").PromiseActorLogic<string, any>;
105
+ id: string;
106
+ };
107
+ createEventsFromStream: {
108
+ src: "createEventsFromStream";
109
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, Agenda>;
110
+ id: string;
111
+ };
112
+ ponyfill: {
113
+ src: "ponyfill";
114
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
115
+ id: string;
116
+ };
117
+ start: {
118
+ src: "start";
119
+ logic: import("xstate").CallbackActorLogic<import("xstate").EventObject, {}>;
120
+ id: string;
121
+ };
122
+ }>, import("xstate").Values<{
123
+ ttsStop: {
124
+ type: "ttsStop";
125
+ params: unknown;
126
+ };
127
+ addFiller: {
128
+ type: "addFiller";
129
+ params: {};
130
+ };
131
+ }>, import("xstate").Values<{
132
+ bufferContainsUtterancePartReadyToBeSpoken: {
133
+ type: "bufferContainsUtterancePartReadyToBeSpoken";
134
+ params: unknown;
135
+ };
136
+ bufferIsNonEmpty: {
137
+ type: "bufferIsNonEmpty";
138
+ params: unknown;
139
+ };
140
+ }>, "FILLER_DELAY", string, import("xstate").EventObject>>;
119
141
  export {};
120
142
  //# sourceMappingURL=tts.d.ts.map
package/dist/tts.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../src/tts.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEzD,UAAU,0BAA2B,SAAQ,wBAAwB;IACnE,KAAK,CAAC,EAAE,MAAM,OAAE;CACjB;AAED,UAAU,OAAO;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAClD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,UAAW,SAAQ,OAAO;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,KAAK,QAAQ,GACT;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE;QACL,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,0BAA0B,CAAC;KACpC,CAAC;CACH,GACD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAI/B,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BA6arB,CAAC"}
1
+ {"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../src/tts.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEzD,UAAU,0BAA2B,SAAQ,wBAAwB;IACnE,KAAK,CAAC,EAAE,MAAM,OAAE;CACjB;AAED,UAAU,OAAO;IACf,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAClD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,UAAW,SAAQ,OAAO;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,MAAM,CAAC,EAAE,0BAA0B,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,KAAK,QAAQ,GACT;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE;QACL,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,0BAA0B,CAAC;KACpC,CAAC;CACH,GACD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAI/B,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0DA6arB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speechstate",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "license": "GPL-3.0",
5
5
  "homepage": "http://localhost/speechstate",
6
6
  "main": "./dist/index.js",
@@ -9,10 +9,9 @@
9
9
  "/dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@statelyai/inspect": "^0.2.3",
13
12
  "microsoft-cognitiveservices-speech-sdk": "^1.31.0",
14
13
  "web-speech-cognitive-services": "^7.1.3",
15
- "xstate": "^5.5.1"
14
+ "xstate": "^5.9.1"
16
15
  },
17
16
  "scripts": {
18
17
  "dev": "vite",
@@ -38,6 +37,7 @@
38
37
  ]
39
38
  },
40
39
  "devDependencies": {
40
+ "@statelyai/inspect": "^0.2.5",
41
41
  "@types/jest": "^29.5.2",
42
42
  "@types/webspeechapi": "^0.0.29",
43
43
  "buffer": "^5.5.0||^6.0.0",
@@ -45,7 +45,8 @@
45
45
  "jest-environment-jsdom": "^29.5.0",
46
46
  "ts-jest": "^29.1.0",
47
47
  "typescript": "^5.0.4",
48
- "vite": "^5.0.11"
48
+ "vite": "^5.0.11",
49
+ "ws": "^8.16.0"
49
50
  },
50
51
  "packageManager": "yarn@3.6.4",
51
52
  "description": "* SDK",