dmed-voice-assistant 1.2.5 → 1.2.7

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/index.js CHANGED
@@ -23,7 +23,10 @@ const VoiceAssistant = _ref => {
23
23
  onNewRecordEvent,
24
24
  onRecordDataChange,
25
25
  onNewRecognitionEvent,
26
- onRecognitionDataChange
26
+ onRecognitionDataChange,
27
+ onCloseRecognition,
28
+ onRecognitionStopEvent,
29
+ onRealTimeRecognitionCommandEvent
27
30
  } = _ref;
28
31
  const [mode, setMode] = (0, _react.useState)(!isOnlyRecognitionMode ? "recorder" : "recognition");
29
32
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
@@ -40,9 +43,12 @@ const VoiceAssistant = _ref => {
40
43
  mode: mode,
41
44
  setMode: setMode,
42
45
  recognitionHistoryList: recognitionListValue,
46
+ onRealTimeRecognitionCommandEvent: onRealTimeRecognitionCommandEvent,
43
47
  onNewRecognitionEvent: onNewRecognitionEvent,
44
48
  onRecognitionDataChange: onRecognitionDataChange,
45
- isOnlyRecognitionMode: isOnlyRecognitionMode
49
+ isOnlyRecognitionMode: isOnlyRecognitionMode,
50
+ onCloseRecognition: onCloseRecognition,
51
+ onRecognitionStopEvent: onRecognitionStopEvent
46
52
  })]
47
53
  })
48
54
  });
@@ -74,7 +74,10 @@ const Recognition = _ref4 => {
74
74
  recognitionHistoryList,
75
75
  setMode,
76
76
  onNewRecognitionEvent,
77
- onRecognitionDataChange
77
+ onRecognitionDataChange,
78
+ onCloseRecognition,
79
+ onRealTimeRecognitionCommandEvent,
80
+ onRecognitionStopEvent
78
81
  } = _ref4;
79
82
  const [open, setOpen] = (0, _react.useState)(false);
80
83
  const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
@@ -133,6 +136,11 @@ const Recognition = _ref4 => {
133
136
  const handleLanguageChange = event => {
134
137
  setSelectedLanguage(event.target.value);
135
138
  };
139
+ const handleCloseModal = () => {
140
+ if (onCloseRecognition) {
141
+ onCloseRecognition();
142
+ }
143
+ };
136
144
  const startRecording = async () => {
137
145
  try {
138
146
  if (recognitionRef.current) {
@@ -162,6 +170,9 @@ const Recognition = _ref4 => {
162
170
  const stopRecording = () => {
163
171
  if (recognitionRef.current && mediaRecorderRef.current) {
164
172
  recognitionRef.current.stop();
173
+ if (onRecognitionStopEvent) {
174
+ onRecognitionStopEvent();
175
+ }
165
176
  clearInterval(intervalId);
166
177
  mediaRecorderRef.current.stop().then(async _ref5 => {
167
178
  let {
@@ -220,6 +231,14 @@ const Recognition = _ref4 => {
220
231
  }
221
232
  return updatedTranscript;
222
233
  });
234
+ for (let i = event.resultIndex; i < event.results.length; i++) {
235
+ if (event.results[i].isFinal) {
236
+ const resultArr = event.results[i][0].transcript.split(' ').filter(word => word.trim() !== '');
237
+ if (onRealTimeRecognitionCommandEvent) {
238
+ onRealTimeRecognitionCommandEvent(resultArr);
239
+ }
240
+ }
241
+ }
223
242
  };
224
243
  recognition.onerror = event => {
225
244
  console.error('Speech recognition error:', event.error);
@@ -331,6 +350,7 @@ const Recognition = _ref4 => {
331
350
  })]
332
351
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
333
352
  className: "px-[10px] py-[8px] cursor-pointer",
353
+ onClick: handleCloseModal,
334
354
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_svgs.CloseIcon, {})
335
355
  })]
336
356
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
package/dist/recorder.js CHANGED
@@ -57,12 +57,11 @@ const RecorderBox = _ref => {
57
57
  const [voiceList, setVoiceList] = (0, _react.useState)([]);
58
58
  const languageList = ['Auto-Detect', 'English', 'Chinese (Simplified)'];
59
59
  const [selectedLanguage, setSelectedLanguage] = (0, _react.useState)("");
60
- const [recordList, setRecordList] = (0, _react.useState)(recordHistoryList);
60
+ const [recordList, setRecordList] = (0, _react.useState)([]);
61
61
  const [newRecordFileName, setNewRecordFileName] = (0, _react.useState)("");
62
62
  const [newRecordTime, setNewRecordTime] = (0, _react.useState)(0);
63
63
  const [isRunning, setIsRunning] = (0, _react.useState)(false);
64
64
  const [intervalId, setIntervalId] = (0, _react.useState)(null);
65
- const [audioBlob, setAudioBlob] = (0, _react.useState)(null);
66
65
  const [audioSize, setAudioSize] = (0, _react.useState)(0);
67
66
  const mediaRecorderRef = (0, _react.useRef)(null);
68
67
  const handleVoiceChange = event => {
@@ -89,7 +88,6 @@ const RecorderBox = _ref => {
89
88
  await initRecorder();
90
89
  }
91
90
  if (mediaRecorderRef.current) {
92
- setAudioBlob(null);
93
91
  mediaRecorderRef.current.start();
94
92
  setIsStartedRecord(true);
95
93
  setNewRecordFileName(getVoiceFileName(new Date()));
@@ -102,7 +100,6 @@ const RecorderBox = _ref => {
102
100
  let {
103
101
  blob
104
102
  } = _ref2;
105
- setAudioBlob(blob);
106
103
  let temp = [...recordList];
107
104
  const newVoice = {
108
105
  audioURL: URL.createObjectURL(blob),
@@ -194,8 +191,8 @@ const RecorderBox = _ref => {
194
191
  fetchAudioInputDevices();
195
192
  }, []);
196
193
  (0, _react.useEffect)(() => {
197
- // uploadRecording();
198
- }, [audioBlob]);
194
+ setRecordList(recordHistoryList);
195
+ }, [recordHistoryList]);
199
196
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
200
197
  className: "bg-[#0B0B0B] rounded-[5px] border p-[20px] w-[850px]",
201
198
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Grid.default, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dmed-voice-assistant",
3
- "version": "1.2.5",
3
+ "version": "1.2.7",
4
4
  "main": "dist/index.js",
5
5
  "files": [
6
6
  "dist"