speechstate 2.0.0 → 2.0.1

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.
@@ -1,292 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.speechstate = void 0;
4
- const xstate_1 = require("xstate");
5
- const tts_1 = require("./tts");
6
- const asr_1 = require("./asr");
7
- const speechstate = (0, xstate_1.createMachine)({
8
- types: {},
9
- context: ({ input }) => ({
10
- settings: input,
11
- }),
12
- id: "speechstate",
13
- type: "parallel",
14
- states: {
15
- AsrTtsSpawner: {
16
- initial: "Idle",
17
- on: {
18
- STOP: { target: ".Stopped", actions: (0, xstate_1.assign)({ audioContext: null }) },
19
- },
20
- 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 }),
29
- },
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,
42
- },
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,
58
- },
59
- });
60
- },
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
- },
73
- },
74
- },
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" },
109
- on: {
110
- TTS_READY: {
111
- actions: () => console.debug("[TTS→SpSt] TTS_READY"),
112
- target: "Ready",
113
- },
114
- ASR_READY: {
115
- actions: () => console.debug("[ASR→SpSt] ASR_READY"),
116
- target: "Ready",
117
- },
118
- },
119
- },
120
- Ready: {
121
- initial: "Idle",
122
- entry: [
123
- () => console.debug("[SpSt] All ready"),
124
- (0, xstate_1.sendParent)({ type: "ASRTTS_READY" }),
125
- ],
126
- states: {
127
- Idle: {
128
- meta: { view: "idle" },
129
- on: {
130
- LISTEN: { target: "WaitForRecogniser" },
131
- SPEAK: [
132
- {
133
- target: "Speaking",
134
- },
135
- ],
136
- },
137
- },
138
- Speaking: {
139
- initial: "Proceed",
140
- entry: [
141
- ({ event }) => console.debug("[SpSt→TTS] SPEAK", event.value),
142
- ({ context, event }) => context.ttsRef.send({
143
- type: "SPEAK",
144
- value: event.value,
145
- }),
146
- ],
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
- ],
156
- },
157
- TTS_STARTED: {
158
- actions: [
159
- () => console.debug("[TTS→SpSt] TTS_STARTED"),
160
- (0, xstate_1.sendParent)({ type: "TTS_STARTED" }),
161
- ],
162
- },
163
- SPEAK_COMPLETE: {
164
- target: "Idle",
165
- actions: [
166
- () => console.debug("[TTS→SpSt] SPEAK_COMPLETE"),
167
- (0, xstate_1.sendParent)({ type: "SPEAK_COMPLETE" }),
168
- ],
169
- },
170
- },
171
- states: {
172
- Proceed: {
173
- meta: { view: "speaking" },
174
- on: {
175
- CONTROL: {
176
- target: "Paused",
177
- actions: [
178
- () => console.debug("[SpSt→TTS] CONTROL"),
179
- ({ context }) => context.ttsRef.send({
180
- type: "CONTROL",
181
- }),
182
- ],
183
- },
184
- },
185
- },
186
- Paused: {
187
- meta: { view: "speaking-paused" },
188
- on: {
189
- CONTROL: {
190
- target: "Proceed",
191
- actions: [
192
- () => console.debug("[SpSt→TTS] CONTROL"),
193
- ({ context }) => context.ttsRef.send({
194
- type: "CONTROL",
195
- }),
196
- ],
197
- },
198
- },
199
- },
200
- },
201
- },
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
- },
255
- },
256
- },
257
- Fail: { meta: { view: "error" } },
258
- Stopped: { meta: { view: "stopped" } },
259
- },
260
- },
261
- },
262
- }, {
263
- actors: {
264
- audioContext: (0, xstate_1.fromPromise)(() => {
265
- const audioContext = new (window.AudioContext ||
266
- window.webkitAudioContext)();
267
- navigator.mediaDevices
268
- .getUserMedia({ audio: true })
269
- .then(function (stream) {
270
- audioContext.createMediaStreamSource(stream);
271
- });
272
- return audioContext;
273
- }),
274
- },
275
- actions: {
276
- // logRecResult: ({ event }) => {
277
- // console.log("U>", (event as any).value[0]["utterance"], {
278
- // confidence: (event as any).value[0]["confidence"],
279
- // });
280
- // },
281
- // logAgenda: ({ context, event }) => {
282
- // console.log("S>", (event as any).value, {
283
- // passivity: `${context.tdmPassivity ?? "∞"} ms`,
284
- // speechCompleteTimeout: `${
285
- // context.tdmSpeechCompleteTimeout ||
286
- // context.settings.completeTimeout
287
- // } ms`,
288
- // });
289
- // },
290
- },
291
- });
292
- exports.speechstate = speechstate;
package/dist/tts.d.ts DELETED
@@ -1,120 +0,0 @@
1
- import { AzureSpeechCredentials, Agenda } from "./types";
2
- interface MySpeechSynthesisUtterance extends SpeechSynthesisUtterance {
3
- new (s: string): any;
4
- }
5
- interface TTSInit {
6
- audioContext: AudioContext;
7
- azureCredentials: string | AzureSpeechCredentials;
8
- ttsDefaultVoice: string;
9
- }
10
- interface TTSContext extends TTSInit {
11
- azureAuthorizationToken?: string;
12
- ttsLexicon?: string;
13
- wsaTTS?: SpeechSynthesis;
14
- wsaVoice?: SpeechSynthesisVoice;
15
- wsaUtt?: MySpeechSynthesisUtterance;
16
- agenda?: Agenda;
17
- buffer?: string;
18
- utteranceFromStream?: string;
19
- }
20
- type TTSEvent = {
21
- type: "PREPARE";
22
- } | {
23
- type: "CONTROL";
24
- } | {
25
- type: "STOP";
26
- } | {
27
- type: "READY";
28
- value: {
29
- wsaTTS: SpeechSynthesis;
30
- wsaUtt: MySpeechSynthesisUtterance;
31
- };
32
- } | {
33
- type: "ERROR";
34
- } | {
35
- type: "SPEAK";
36
- value: Agenda;
37
- } | {
38
- type: "TTS_STARTED";
39
- } | {
40
- type: "STREAMING_CHUNK";
41
- value: string;
42
- } | {
43
- type: "STREAMING_DONE";
44
- } | {
45
- type: "SPEAK_COMPLETE";
46
- };
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>, {
49
- [k: string]: unknown;
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" | {
81
- Ready?: "Idle" | {
82
- BufferedSpeaker?: Required<{
83
- Buffer?: "BufferIdle" | "Buffering" | "BufferingDone";
84
- Speaker?: "SpeakingIdle" | "PrepareSpeech" | {
85
- Speak?: "Go" | "Paused";
86
- };
87
- }>;
88
- Speaking?: "Go" | "Paused";
89
- };
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>>;
119
- export {};
120
- //# sourceMappingURL=tts.d.ts.map
package/dist/tts.d.ts.map DELETED
@@ -1 +0,0 @@
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"}