yadjm084/Atlas_virtual_assistant
Atlas Virtual Assistant
Atlas is a course project voice assistant for movie information and smart dorm control. The live implementation follows the required project pipeline:
- User verification / identification
- Wake word detection
- Automatic speech recognition
- Intent detection + slot filling
- Fulfillment
- Answer generation
- Text-to-speech
The app includes bypasses for every stage where the project required one:
- verification code bypass
- typed wake-word bypass
- typed transcript bypass
- manual intent / slots bypass
- manual fulfillment JSON bypass
- manual answer bypass
Live entry point
The supported application path is the Gradio app in app.py.
Core live modules:
- app.py: configuration and runtime wiring
- atlas_voice.py: dataset loading, user verification, wake-word, and Whisper ASR helpers
- atlas_actions.py: pipeline logic and UI callbacks
- atlas_state.py: state and stage helpers
- atlas_fulfillment.py: weather, movie, timer, and smart dorm fulfillment
- atlas_answer_generation.py: template-based answer generation
- atlas_tts.py: speech synthesis
- atlas_ui.py: Gradio UI
Intent training and inference:
- intent_data/atlas_demo_intents.py: intent schema and seed examples
- intent_data/atlas_dataset_builder.py: dataset generation
- intent_data/train_joint_intent_slot.py: DistilBERT joint model training
- intent_data/intent_inference.py: runtime inference
Legacy files
The following files are prototype exports from earlier Colab work. They are not part of the live app path and should not be treated as the current implementation:
Setup
Create an environment and install dependencies:
pip install -r requirements.txtOptional movie API credentials:
TMDB_API_KEYTMDB_BEARER_TOKEN
If TMDB credentials are missing, Atlas still works using the built-in fallback movie data for the demo examples.
Run the app
python app.pyThe app will:
- download the Hugging Face dataset
yadjm084/atlas-voice-data - load enrollment audio for user verification
- load wake-word weights
- load the Whisper
tinyASR model - load the trained joint intent-slot model from
intent_data/model_artifacts/atlas_joint_intent_slot
Smoke tests
Typed demo path:
python demo_smoke_test.py --skip-ttsTyped path plus real-audio verification and wake-word checks:
python demo_smoke_test.py --skip-tts --audio-gatesDemo and UI guide
Use the step-by-step operator guide here:
That guide explains what becomes visible at each step, what the user clicks, what Atlas should do, and how to use the bypass paths during a live demo.
