Spaces:
Configuration error
Configuration error
CASL Voice Bot
A speech pathology assistant using AI to assess students' speaking abilities based on the CASL-2 framework. This application helps speech-language pathologists (SLPs) with speech assessment in school settings.
Implementations
This project provides multiple implementations:
- LiveKit Implementation - Uses LiveKit agents with OpenAI's real-time voice API for low-latency, high-quality audio streaming.
- Direct API Implementation - Uses OpenAI's API directly without LiveKit, for simpler deployment.
- Hugging Face Spaces - An adaptive implementation that works on Hugging Face Spaces, automatically detecting whether LiveKit is available.
Features
- Voice-to-voice interaction with AI speech pathologist
- CASL-2 framework assessment
- Real-time assessment tracking
- Session recording and saving
- Custom note-taking for SLPs
- Gradio web interface for easy sharing and use in school settings
CASL-2 Assessment Areas
The AI speech pathologist assesses students in these key areas:
- Lexical/Semantic Skills: Vocabulary knowledge, word meanings, and contextual word use
- Syntactic Skills: Grammar and sentence structure understanding
- Supralinguistic Skills: Higher-level language skills beyond literal meanings
- Pragmatic Skills: Language use in social contexts (less emphasis for younger students)
Setup Instructions
Prerequisites
- Python 3.8+
- OpenAI API key with access to GPT-4o and TTS models
Installation
Clone the repository:
git clone https://github.com/yourusername/CASLVoiceBot.git cd CASLVoiceBotCreate a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txtFor LiveKit implementation, install LiveKit dependencies:
# Edit requirements.txt to uncomment the livekit-agents line pip install livekit-agents>=0.7.0Set up environment variables:
cp .env.example .envThen edit
.envto add your OpenAI API key.
Running the Application
LiveKit Implementation (recommended for best performance)
python run_livekit.py
Direct API Implementation (simpler deployment)
python run_direct.py
Command Line Options
Both implementations support these options:
--share: Share the app publicly (enabled by default)--local: Run the app locally without sharing
Deployment on Hugging Face Spaces
- Create a new Space on Hugging Face with the Gradio SDK
- Upload the repository contents to the Space
- Add your OPENAI_API_KEY as a secret in the Space settings
By default, the Hugging Face Spaces deployment will try to use LiveKit if available, and fall back to direct API if not.
Project Structure
CASLVoiceBot/
βββ app.py # Hugging Face Spaces entry point
βββ run_direct.py # Direct API implementation runner
βββ run_livekit.py # LiveKit implementation runner
βββ requirements.txt # Common dependencies
βββ .env.example # Environment variables template
βββ implementations/
β βββ common/ # Shared utilities
β β βββ casl_utils.py # CASL-2 assessment utilities
β βββ direct/ # Direct API implementation
β β βββ app.py # Direct OpenAI API app
β βββ livekit/ # LiveKit implementation
β β βββ app.py # LiveKit app
β β βββ livekit_gradio_hf.py # HF-compatible LiveKit app
βββ session_data/ # Saved session data
Usage
- Optionally enter a Student ID to track sessions
- Select your preferred AI voice
- Click "Start Session" to begin a speech assessment
- Wait for the AI to introduce itself, then speak when prompted
- View real-time assessment in the interface
- SLPs can add notes throughout the session
- Save the session when finished
- Click "Stop Session" to end