Project Info
This project did not submit a demo video on Devpost.
Inspiration
Effective communication is a critical life skill—one that influences everything from relationships to professional opportunities. Yet, many people struggle with speech anxiety, filler words, stuttering, and unclear emotional expression. We were inspired to build AcousticPR after seeing friends and colleagues with brilliant ideas struggle to express themselves due to poor communication habits. AcousticPR offers a data-driven practice environment to help users break unproductive habits, build confidence, and strengthen their public speaking skills. By acting like a personal speech therapist, it not only improves communication but also supports your personal and social mental well-being. Your voice is your life. Take control of it today.
What it does
AcousticPR is a personalized speech analytics and coaching platform. It allows users to upload voice recordings, then analyzes their communication across several dimensions: Transcription & Word Usage Transcription & Word Usage Emotion Analysis Emotion Analysis Pitch Variation & Pace Pitch Variation & Pace Stuttering & Filler Word Detection Stuttering & Filler Word Detection Top Word Frequency & Repetition Top Word Frequency & Repetition Using these metrics, it delivers actionable feedback, highlighting emotional tone, disfluencies, pacing, and more. Users receive tailored llm-driven insights and visual graphs to guide improvement, making communication practice measurable and motivating.
How we built it
We used a full-stack architecture focused on performance, usability, and advanced AI/ML: Frontend: React + Tailwind.js for a clean, responsive, and gamified UI Frontend: React + Tailwind.js for a clean, responsive, and gamified UI Backend: Flask + Socket.IO to support real-time feedback and REST APIs Backend: Flask + Socket.IO to support real-time feedback and REST APIs File Handling: .webm audio + wave for efficient client-to-server transfer (even for long recordings) File Handling: .webm audio + wave for efficient client-to-server transfer (even for long recordings) Speech Processing Pipeline Transcription: Utilized OpenAI’s Whisper API for high-accuracy, punctuated speech-to-text. Emotion Analysis: Used SpeechBrain’s emotion-diarization-wavlm-large model, trained on diverse datasets (IEMOCAP, MELD, MSP-IMPROV, MOSEI, RAVDESS), for detecting emotional tone in voice. We quantized the model for faster inference and ran it with GPU parallelism to support near real-time feedback. Audio Feature Extraction: Pitch analysis via Librosa Pitch analysis via Librosa Speech rate computed from total syllables and duration Speech rate computed from total syllables and duration Disfluencies (stuttering, filler words, etc.) detected with custom regex-based NLP pipelines Disfluencies (stuttering, filler words, etc.) detected with custom regex-based NLP pipelines Insight Generation: Used ChatGPT-4o mini via OpenAI API to turn raw data into qualitative, structured feedback Used ChatGPT-4o mini via OpenAI API to turn raw data into qualitative, structured feedback Used LlamaIndex with Pydantic to organize metrics and generate repeatable, prompt-engineered insights Used LlamaIndex with Pydantic to organize metrics and generate repeatable, prompt-engineered insights Visualization: Integrated Chart.js to plot user metrics and progress in a visually engaging format
Challenges we ran into
Latency in heavy ML models: Emotion detection and transcription are both computationally intensive. To resolve this, we parallelized processing tasks using thread pools and ran all ML inference on GPUs. Unstructured-to-structured NLP: Turning audio into truly helpful feedback (not just raw stats) required careful prompt engineering, pedantic data modeling, and experimentation with LLMs. Handling large audio uploads: Transferring multi-minute recordings quickly and reliably was solved using .webm compression and efficient upload handling via Flask. Consistency in Feedback: We needed to balance personalized advice with repeatable metrics, which required multiple design iterations on our LLM + LlamaIndex pipeline.
Accomplishments we're proud of
Achieving near real-time feedback on 5+ minute audio files with GPU-accelerated, parallelized processing Achieving near real-time feedback on 5+ minute audio files with GPU-accelerated, parallelized processing Training and deploying a custom emotion analysis model from multiple datasets Training and deploying a custom emotion analysis model from multiple datasets Seamlessly integrating LLM insights into our app to deliver genuinely actionable advice Seamlessly integrating LLM insights into our app to deliver genuinely actionable advice Designing a gamified UI that makes practicing communication feel fun Designing a gamified UI that makes practicing communication feel fun
What we learned
Speech is a really complex signal, both acoustically and emotionally. Analyzing it meaningfully requires a blend of audio processing, NLP, and creativity. Speech is a really complex signal, both acoustically and emotionally. Analyzing it meaningfully requires a blend of audio processing, NLP, and creativity. Optimization matters: parallel processing, quantization, and efficient file handling were key to creating a fast, smooth UX. Optimization matters: parallel processing, quantization, and efficient file handling were key to creating a fast, smooth UX. LLMs are really powerful, but only when guided by strong structure and quality prompts. LLMs are really powerful, but only when guided by strong structure and quality prompts.
What's next
Live Feedback Mode: Enable users to receive analysis and coaching in real-time as they speak. Camera based face and posture tracking for real time visual emotion indicators AcousticPR is more than just a speech analyzer. It’s a personal communication coach designed to help you unlock confident, clear expression while improving your mental well-being through self-awareness and growth.
This repository has no readme, or GitHub could not be reached.
Analysis
View
Metric
- 8
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- HTMLIn code
- JavaScriptIn code
- Next.jsIn code
- OpenAIIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- FlaskClaimed
- LlamaIndexClaimed
- PyTorchClaimed
9 of 12 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
264 KB
Source files
108
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
natelincyber/AcousticAI
126 files · 961 KB · @ bb3e4fd
Structure
Interface
68 files · 54%Screens, components and styles rendered to the user.
API & routing
2 files · 2%Request entry points: routes, handlers and controllers.
Application logic
28 files · 22%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript74%
- JavaScript14%
- CSS6%
- Python5%
- Markdown1%
- HTML0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
reactapp/package.json
npm · 75- @hookform/resolvers
- @radix-ui/react-accordion
- @radix-ui/react-alert-dialog
- @radix-ui/react-aspect-ratio
- @radix-ui/react-avatar
- @radix-ui/react-checkbox
- @radix-ui/react-collapsible
- @radix-ui/react-context-menu
- @radix-ui/react-dialog
- @radix-ui/react-dropdown-menu
- @radix-ui/react-hover-card
- @radix-ui/react-label
- @radix-ui/react-menubar
- @radix-ui/react-navigation-menu
- @radix-ui/react-popover
- @radix-ui/react-progress
- @radix-ui/react-radio-group
- @radix-ui/react-scroll-area
- +57 more
package.json
npm · 11- fluent-ffmpeg
- formidable
- next
- onnxruntime-node
- openai
- pitchfinder
- wav-decoder
- +4 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.