liumaolin commited on
Commit
5bc3ef8
·
1 Parent(s): 5cf0dbe

Add echo cancellation toggle in UI and update project dependencies

Browse files

- Implement `echoCancel` toggle in the settings store and Welcome view.
- Add echo cancellation switch to the submission form.
- Rename project to `VoiceDialogue` in `package.json`.
- Update Pinia, Vue, Vite, and other frontend dependencies.

frontend/package.json CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c21edb05647a0a642fafa82eb17c27c83b4cedcc03cda590eb0e16200a8e3ac4
3
- size 1218
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f33821c7f31c395ea13fb858f87561c2e01f75eadfb9c07c8036b76ea7875750
3
+ size 1213
frontend/src/stores/config.ts CHANGED
@@ -1,4 +1,3 @@
1
-
2
  import { defineStore } from 'pinia';
3
 
4
 
@@ -10,6 +9,7 @@ export const useSettingsStore = defineStore({
10
  role: '',
11
  language: 'zh',
12
  sider_open: true,
 
13
  }
14
  },
15
  actions: {
 
 
1
  import { defineStore } from 'pinia';
2
 
3
 
 
9
  role: '',
10
  language: 'zh',
11
  sider_open: true,
12
+ echoCancel: true,
13
  }
14
  },
15
  actions: {
frontend/src/views/Welcome/index.vue CHANGED
@@ -42,10 +42,11 @@ const startAudioChat = async () => {
42
  headers: {
43
  'Content-Type': 'application/json',
44
  },
45
- body: null
 
 
46
  });
47
  if (!response.ok) {
48
-
49
  throw new Error(`HTTP error! status: ${response.status}`);
50
  }
51
  const data = await response.json();
@@ -70,8 +71,10 @@ const handleCancel = () => {
70
  const handleSubmit = async () => {
71
  console.log('Selected Language:', language.value);
72
  console.log('Selected Role:', role.value);
 
73
  settingsStore.$state.language = language.value;
74
  settingsStore.$state.role = role.value || '';
 
75
 
76
  await pushConfig(settingsStore.$state.role);
77
  };
@@ -134,6 +137,8 @@ const languageOptions = {
134
  };
135
  const role = ref<string>(settingsStore.$state.role || '');
136
  const roles = reactive([])
 
 
137
  const radioStyle = reactive({
138
  display: 'flex',
139
  height: '48px',
@@ -155,6 +160,10 @@ const fetchTTSRoles = async () => {
155
  // @ts-ignore
156
  roles.splice(0, data.length, ...data.models)
157
  console.log('Fetched TTS Roles:', roles);
 
 
 
 
158
  }
159
  } catch (error) {
160
  console.error('Error fetching TTS roles:', error);
@@ -169,6 +178,10 @@ const fetchASRLanguages = async () => {
169
  // @ts-ignore
170
  languages.splice(0, languages.length, ...data.languages);
171
  console.log('Fetched ASR Languages:', data.languages);
 
 
 
 
172
  }
173
  } catch (error) {
174
  console.error('Error fetching ASR languages:', error);
@@ -218,6 +231,14 @@ const toggleSider = () => {
218
  <a-button key="back" @click="handleCancel">Cancel</a-button>
219
  <a-button key="submit" type="primary" :loading="modalLoading" @click="handleSubmit">Submit</a-button>
220
  </template>
 
 
 
 
 
 
 
 
221
  <div class="languages">
222
  <div class="language-item">
223
  <p>Select Language:</p>
 
42
  headers: {
43
  'Content-Type': 'application/json',
44
  },
45
+ body: JSON.stringify({
46
+ enable_echo_cancellation: echoCancel.value
47
+ })
48
  });
49
  if (!response.ok) {
 
50
  throw new Error(`HTTP error! status: ${response.status}`);
51
  }
52
  const data = await response.json();
 
71
  const handleSubmit = async () => {
72
  console.log('Selected Language:', language.value);
73
  console.log('Selected Role:', role.value);
74
+ console.log('Echo Cancel:', echoCancel.value);
75
  settingsStore.$state.language = language.value;
76
  settingsStore.$state.role = role.value || '';
77
+ settingsStore.$state.echoCancel = echoCancel.value;
78
 
79
  await pushConfig(settingsStore.$state.role);
80
  };
 
137
  };
138
  const role = ref<string>(settingsStore.$state.role || '');
139
  const roles = reactive([])
140
+ const echoCancel = ref<boolean>(settingsStore.$state.echoCancel ?? true);
141
+
142
  const radioStyle = reactive({
143
  display: 'flex',
144
  height: '48px',
 
160
  // @ts-ignore
161
  roles.splice(0, data.length, ...data.models)
162
  console.log('Fetched TTS Roles:', roles);
163
+
164
+ if (data.current_model_id) {
165
+ role.value = data.current_model_id;
166
+ }
167
  }
168
  } catch (error) {
169
  console.error('Error fetching TTS roles:', error);
 
178
  // @ts-ignore
179
  languages.splice(0, languages.length, ...data.languages);
180
  console.log('Fetched ASR Languages:', data.languages);
181
+
182
+ if (data.current_asr_language) {
183
+ language.value = data.current_asr_language;
184
+ }
185
  }
186
  } catch (error) {
187
  console.error('Error fetching ASR languages:', error);
 
231
  <a-button key="back" @click="handleCancel">Cancel</a-button>
232
  <a-button key="submit" type="primary" :loading="modalLoading" @click="handleSubmit">Submit</a-button>
233
  </template>
234
+ <div class="languages">
235
+ <div class="echo-cancel-item">
236
+ <div style="display: flex; justify-content: space-between; align-items: center;">
237
+ <p style="margin: 0;">Enable Echo Cancellation:</p>
238
+ <a-switch v-model:checked="echoCancel" />
239
+ </div>
240
+ </div>
241
+ </div>
242
  <div class="languages">
243
  <div class="language-item">
244
  <p>Select Language:</p>