An open API service indexing awesome lists of open source software.

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.

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
![1. Transcript Upload Area](screenshots/upload_page.png)

### 2. Landing Summary
![2. Landing Summary](screenshots/landing_summary.png)

### 3. Per-turn Metrics
![3. Per-turn Metrics](screenshots/per_turn_metrics.png)

### 4. Overall Metrics
![4. Overall Metrics](screenshots/overall_metrics.png)

## 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)