An MVP application that processes speech therapy session recordings and generates SOAP notes using AI.
- Recording Upload - Upload audio files via web interface
- Transcription - Automatic transcription using ElevenLabs API
- Summarization - AI-powered summarization using Claude (via LangChain)
- SOAP Formatting - Automatic formatting into SOAP note structure
- Frontend: Next.js 14 with TypeScript
- Backend: Next.js API routes
- Database: PostgreSQL with Prisma ORM
- AI Services:
- ElevenLabs for transcription
- Claude (Anthropic) for summarization and SOAP formatting
- Framework: LangChain for AI orchestration
- Install dependencies:
npm install- Set up environment variables:
Copy
.env.exampleto.envand fill in your API keys:
cp .env.example .envRequired environment variables:
DATABASE_URL- PostgreSQL connection stringELEVENLABS_API_KEY- Your ElevenLabs API keyANTHROPIC_API_KEY- Your Anthropic (Claude) API key
- Set up the database:
npx prisma generate
npx prisma db push- Run the development server:
npm run dev- Open http://localhost:3000 in your browser
- Upload an audio file of a speech therapy session
- Click "Process Audio"
- Wait for the pipeline to complete (transcription → summarization → SOAP formatting)
- Download or view the generated SOAP note
├── app/
│ ├── api/
│ │ ├── process-audio/ # Audio upload and processing endpoint
│ │ └── soap-note/ # SOAP note retrieval endpoint
│ ├── page.tsx # Main UI
│ └── layout.tsx # Root layout
├── lib/
│ ├── db.ts # Prisma client
│ └── services/
│ ├── transcription.ts # ElevenLabs transcription service
│ ├── summarization.ts # Claude summarization service
│ ├── soap-formatting.ts # SOAP formatting service
│ └── pipeline.ts # Main processing pipeline
└── prisma/
└── schema.prisma # Database schema
- Recording: Audio file uploaded and saved
- Transcription: ElevenLabs transcribes the audio
- Summarization: Claude summarizes the transcription
- SOAP Formatting: Claude formats the summary into SOAP structure
- Output: SOAP note saved as .txt file
- Audio files are stored in the
uploads/directory - SOAP notes are saved in the
output/directory - All processing steps are logged in the database for tracking