How bmondal98/voicescout works
VocalScout is a multilingual video-question answering dashboard: users choose a video and language, ask by voice or typed fallback, then receive an answer tied to a video quote and timestamp. The documented experience also includes catalog switching, video submission/indexing, and demo-mode responses. The frontend and AWS-style backend excerpts show parts of these flows, but do not establish every deployed API connection; uncertain wiring is omitted, and the indexing and retrieval stages are represented only where supported by the README or sampled source.
Main entry points: VoiceAssistantPanel.tsx Voice and text panel · App.tsx Dashboard · lambda.py Chat handler · common.py RAG and translation
Components 19
Video experience
- Dashboard
src/App.tsx - Language and mode
src/components/Header.tsx - Video catalog
src/services/videoService.ts - YouTube player
src/components/VideoPlayerStage.tsx
Question answering
- Voice and text panel
src/components/VoiceAssistantPanel.tsx - Microphone capture
src/hooks/useVoiceRecorder.ts - Audio transcription
src/services/assemblyAI.ts - Backend API client
src/services/api.ts - Demo responses
src/data/sampleVideos.ts
Video ingestion
- Video submission
backend/add-video-entry/lambda_function.py - Index dispatch
backend/index-video-handler/lambda_function.py - Video catalog API
backend/get-videos/lambda_function.py
Backend services
- Chat handler
backend/chat_with_agent/lambda.py - RAG and translation
backend/chat_with_agent/common.py - Video vector index
backend/vectorembedder/index.py - Transcription and embedding
backend/vectorembedder/common.py - Chat record
backend/add-chat-entry/lambda.py
Other components
- Viewer
- External services
Connections 21
- Viewer → Dashboard: uses
- Dashboard → Language and mode: renders
- Dashboard → YouTube player: renders
- Dashboard → Voice and text panel: renders
- Dashboard → Video catalog: loads catalog
- Video catalog → Video catalog API: requests videos
- Voice and text panel → Microphone capture: captures audio
- Voice and text panel → Audio transcription: transcribes audio
- Voice and text panel → Backend API client: submits questions
- Voice and text panel → Demo responses: uses mock answers
- Backend API client → Chat handler: routes query
- Chat handler → RAG and translation: runs answering
- Chat handler → Chat record: records query
- RAG and translation → Video vector index: retrieves context
- RAG and translation → External services: uses model and vector services
- Voice and text panel → YouTube player: seeks to answer time
- Video submission → Index dispatch: submits video
- Index dispatch → Video vector index: dispatches indexing
- Video vector index → Transcription and embedding: transcribes and embeds
- Transcription and embedding → External services: uses storage and speech services
- Video submission → External services: uploads media