ciyidogan commited on
Commit
58a6f07
·
verified ·
1 Parent(s): 89a156c

Update flare-ui/src/app/services/conversation-manager.service.ts

Browse files
flare-ui/src/app/services/conversation-manager.service.ts CHANGED
@@ -113,7 +113,7 @@ export class ConversationManagerService implements OnDestroy {
113
  continuous_listening: true
114
  });
115
 
116
- console.log('✅ Conversation started with continuous listening enabled');
117
 
118
  } catch (error: any) {
119
  console.error('Failed to start conversation:', error);
@@ -365,35 +365,35 @@ export class ConversationManagerService implements OnDestroy {
365
  if (!this.audioPlayer) return;
366
 
367
  this.audioPlayer.onended = async () => {
368
- console.log('🎵 Audio playback ended');
 
 
 
 
369
 
370
- // TTS bittiğinde audio recording'i restart et
371
  try {
372
  // Önce backend'e audio bittiğini bildir
373
  if (this.wsService.isConnected()) {
 
374
  this.wsService.sendControl('audio_ended');
375
  }
376
 
377
- // Sadece listening state'indeyken recording başlat
378
- if (this.currentStateSubject.value === 'listening' ||
379
- this.currentStateSubject.value === 'playing_audio') {
380
-
381
- console.log('🔄 Starting audio recording after TTS...');
382
-
383
- // İlk kez mi başlatıyoruz kontrol et
384
- if (this.audioService.isRecording()) {
385
- // Zaten recording varsa, önce durdur
386
- this.audioService.stopRecording();
387
- await new Promise(resolve => setTimeout(resolve, 500));
388
- }
389
-
390
- // Recording başlat
391
  await this.audioService.startRecording();
392
- console.log('✅ Audio recording started successfully');
 
 
393
  }
394
 
395
  } catch (error) {
396
- console.error('❌ Failed to restart audio recording after TTS:', error);
397
  this.handleAudioError(error);
398
  }
399
  };
 
113
  continuous_listening: true
114
  });
115
 
116
+ console.log('✅ [ConversationManager] Conversation started - waiting for welcome TTS');
117
 
118
  } catch (error: any) {
119
  console.error('Failed to start conversation:', error);
 
365
  if (!this.audioPlayer) return;
366
 
367
  this.audioPlayer.onended = async () => {
368
+ console.log('🎵 [ConversationManager] Audio playback ended', {
369
+ currentState: this.currentStateSubject.value,
370
+ isRecording: this.audioService.isRecording(),
371
+ timestamp: new Date().toISOString()
372
+ });
373
 
 
374
  try {
375
  // Önce backend'e audio bittiğini bildir
376
  if (this.wsService.isConnected()) {
377
+ console.log('📤 [ConversationManager] Sending audio_ended to backend');
378
  this.wsService.sendControl('audio_ended');
379
  }
380
 
381
+ // Backend'in STT'yi restart etmesini bekle
382
+ console.log('⏳ [ConversationManager] Waiting for backend STT restart...');
383
+ await new Promise(resolve => setTimeout(resolve, 1000)); // 1 saniye bekle
384
+
385
+ // Şimdi audio recording'i başlat
386
+ console.log('🔄 [ConversationManager] Starting audio recording after delay...');
387
+
388
+ if (!this.audioService.isRecording()) {
 
 
 
 
 
 
389
  await this.audioService.startRecording();
390
+ console.log('✅ [ConversationManager] Audio recording started successfully');
391
+ } else {
392
+ console.warn('⚠️ [ConversationManager] Audio already recording, skipping');
393
  }
394
 
395
  } catch (error) {
396
+ console.error('❌ [ConversationManager] Failed to handle audio end:', error);
397
  this.handleAudioError(error);
398
  }
399
  };