Skip to content

Commit cd0b925

Browse files
committed
2 parents 707009d + 0095a15 commit cd0b925

7 files changed

Lines changed: 203 additions & 146 deletions

File tree

custom/composables/agentStore/useAgentSessions.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ export function createAgentSessionManager({
205205
currentSession.value = null;
206206
}
207207
}
208+
createPreSession();
208209
}
209210

210211
async function fetchSessionsList() {

custom/composables/useAgentAudio.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export const useAgentAudio = defineStore('agentAudio', () => {
6767
async function sendAudioToServerAndHandleResponse(blob: Blob) {
6868
currentAbortController = new AbortController();
6969
const formData = new FormData();
70-
formData.append('file', blob, 'user_prompt.webm');
70+
formData.append('file', blob, 'user_prompt.wav');
7171
formData.append('sessionId', agentStore.activeSessionId);
7272
formData.append('mode', agentStore.activeModeName ?? '');
7373
formData.append('timeZone', Intl.DateTimeFormat().resolvedOptions().timeZone);

custom/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"@incremark/core": "^1.0.2",
1515
"@incremark/theme": "^1.0.2",
1616
"@incremark/vue": "^1.0.2",
17+
"@ricky0123/vad-web": "^0.0.30",
1718
"@shikijs/langs": "^4.0.2",
1819
"@shikijs/themes": "^4.0.2",
1920
"@vueuse/core": "^14.2.1",

custom/pnpm-lock.yaml

Lines changed: 131 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

custom/speech_recognition_frontend/MicrophoneButon.vue

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
<script setup lang="ts">
2929
import { computed, onMounted, onBeforeUnmount, ref, watch } from 'vue';
3030
import debounce from 'lodash.debounce';
31-
import { requestMicAndStartVAD, stopUserMedia, getRecorder, CALIBRATION_DURATION } from './voiceActivityDetection';
31+
import { requestMicAndStartVAD, stopUserMedia, getRecord } from './voiceActivityDetection';
3232
import { Spinner } from '@/afcl'
3333
import { storeToRefs } from 'pinia';
3434
import { useAgentStore } from '../composables/useAgentStore';
@@ -41,7 +41,7 @@ const { sendAudioToServerAndHandleResponse } = agentAudio;
4141
const { stopGenerationAndAudio } = agentAudio;
4242
const { stopCurrentAudioPlayback } = agentAudio;
4343
const { agentAudioMode } = storeToRefs(agentAudio);
44-
const microphoneButtonMode = ref<'off' | 'calibrating' | 'listen' | 'transcribing' | 'generating'>('off');
44+
const microphoneButtonMode = ref<'off' | 'listen' | 'transcribing' | 'generating'>('off');
4545
const showAudioWavesAnimation = ref(false);
4646
const audioAmplitude = ref(0);
4747
const hideAnimationDebounced = debounce(() => {
@@ -93,14 +93,9 @@ function toggleChatMode() {
9393
}
9494
9595
async function onStartRecording() {
96-
microphoneButtonMode.value = 'calibrating';
9796
await requestMicAndStartVAD(saidSomething, stopRecording, onAnySound);
98-
setTimeout(() => {
99-
if (isAudioChatMode.value) {
10097
microphoneButtonMode.value = 'listen';
10198
agentAudio.playBeep(1000);
102-
}
103-
}, CALIBRATION_DURATION);
10499
}
105100
106101
function onStopRecording() {
@@ -145,8 +140,9 @@ function onAnySound(amplitude: number) {
145140
146141
async function sendRecordForTranscription() {
147142
showAudioWavesAnimation.value = false;
148-
const recordBlob = await getRecorder();
143+
const recordBlob = await getRecord();
149144
if (recordBlob) {
145+
console.log('Audio recorded, sending to server for transcription. Audio Blob size:', recordBlob.size, recordBlob.type);
150146
onStopRecording();
151147
await sendAudioToServerAndHandleResponse(recordBlob);
152148
if (agentStore.isAudioChatMode) {

0 commit comments

Comments
 (0)