https://github.com/renswickd/talkwise-ai
NLP-powered dialogue analyzer with real-time sentiment and filler-word metrics using Hugging Face, spaCy, and Streamlit.
https://github.com/renswickd/talkwise-ai
huggingface-pipelines huggingface-transformers nlp pytest realtime-sentiment-analysis sentiment-analysis spacy streamlit text-analysis text-mining
Last synced: about 2 months ago
JSON representation
NLP-powered dialogue analyzer with real-time sentiment and filler-word metrics using Hugging Face, spaCy, and Streamlit.
- Host: GitHub
- URL: https://github.com/renswickd/talkwise-ai
- Owner: renswickd
- Created: 2025-05-21T07:52:21.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-25T08:39:45.000Z (about 1 year ago)
- Last Synced: 2025-10-11T01:38:10.088Z (8 months ago)
- Topics: huggingface-pipelines, huggingface-transformers, nlp, pytest, realtime-sentiment-analysis, sentiment-analysis, spacy, streamlit, text-analysis, text-mining
- Language: Python
- Homepage:
- Size: 977 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π¬ Talkwise-AI
This is a self-contained NLP-powered web app that analyzes conversation transcripts for sentiment and filler-word usage. Built using Hugging Face Transformers, spaCy, and Streamlit. The app extracts per-turn and overall conversation insights such as sentiment, filler word usage, and speaker statistics, and presents them in an engaging dashboard.
## πΌ Why This App Is Useful
### π Business Use Case
In any communication-heavy domainβlike customer support, team meetings, interviews, or sales conversationsβunderstanding how people speak can be as important as what they say.
This app provides structured insights into:
- Emotional tone of a dialogue
- Clarity and fluency (via filler usage)
- Speaker-specific tendencies
### π― Who Benefits from This?
- Customer Support Teams - Monitor call quality, emotional tone, overuse of fillers
- Sales Teams - Analyze winning vs. losing call patterns
- UX Researchers / Analysts - Study conversation clarity during usability tests
- Interviewers / Hiring Panels - Track candidate fluency, confidence, or tone
- Educators / Public Speakers - Get feedback on speaking style
---
## π Metrics & Visualizations in the Dashboard
The application analyzes the conversation transcript and presents the following metrics in the Streamlit dashboard:
### π₯οΈ UI Components
#### π€ Sidebar
- Upload `.txt` file containing the transcript.
#### π Landing Summary
- π₯ **Speakers Detected**
- π **Total Turns**
- π¬ **Average Filler Ratio**
- π **Average Sentiment Polarity**
#### π Annotated Transcript
- Full parsed dialogue with computed metrics per turn.
##### π½ Per-Turn Metrics (Expandable)
- Sentiment Trend (line chart)
- Filler Ratio (bar chart)
- Colored Sentiment Line (speaker overlay)
#### π½ Overall Metrics (Expandable)
- Speaker Summary Table
- Sentiment Distribution (Pie)
- Word Cloud
- Top 5 Filler Words (Bar/Table toggle)
## Folder Structure
```
.
βββ app/ # Core NLP logic
β βββ analyzer.py # Sentiment & filler ratio computations
β βββ metrics.py # Summary & per-turn metric calculations
β βββ parser.py # Parses raw transcript string
β
βββ config/ # YAML config files
β βββ pipeline_config.yaml # Filler word list, top filler count, etc.
β
βββ data/ # Transcript input/output storage
β βββ transcript.txt # Sample input transcript file
β
βββ tests/ # Unit tests
β βββ test_parser.py
β βββ test_analyzer.py
β βββ test_metrics.py
β
βββ ui/ # Streamlit dashboard
β βββ dashboard.py # Main Streamlit entry logic
β βββ components.py # Shared styles (card CSS)
β βββ sections/ # Modular UI views
β βββ landing_summary.py
β βββ annotated_transcript.py
β βββ per_turn_metrics.py
β βββ overall_metrics.py
β
βββ utils/ # Helper functions
β βββ common_functions.py # YAML loader and shared utilities
β
βββ app.py # ENTRY POINT for Streamlit app
βββ requirements.txt # Python dependencies
βββ setup.py # Project metadata
βββ README.md
```
## βοΈ Setup Instructions
### 1. Clone the repository
```bash
git clone https://github.com/your-username/talkwise-ai.git
cd talkwise-ai
```
### 2. Create a virtual environment
```bash
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
```
### 3. Install the dependencies
```bash
pip install -r requirements.txt
```
### 4. Run Unit Tests (Optional)
```bash
pytest tests/
```
### 5. Run the Application
```bash
streamlit run app.py
```
## πΌοΈ Screenshots
### 1. Transcript Upload Area

### 2. Landing Summary

### 3. Per-turn Metrics

### 4. Overall Metrics

## Future Enhancements
1. **Transcript Summarizer**: Automatically converts the full conversation into a short summary using HuggingFace `summarization` pipeline (e.g., `facebook/bart-large-cnn`).
2. **Dynamic Top-N Controls** - User-selectable value to control "Top N" fillers and common words.
3. **Downloadable Reports** - Export full summary as PDF or CSV.
4. **Stopword Filtering Toggle** - Let user choose to ignore or include common stopwords. (including single characters)
5. **UI Enhancements** - Streamlit theming with .streamlit/config.toml.
6. **Voice Transcription Pipeline** - Auto-transcribe audio using Whisper Plug into this dashboard. (Advanced)