{"id":28574499,"url":"https://github.com/renswickd/talkwise-ai","last_synced_at":"2026-05-07T15:37:34.181Z","repository":{"id":294617423,"uuid":"987527062","full_name":"renswickd/talkwise-ai","owner":"renswickd","description":"NLP-powered dialogue analyzer with real-time sentiment and filler-word metrics using Hugging Face, spaCy, and Streamlit.","archived":false,"fork":false,"pushed_at":"2025-05-25T08:39:45.000Z","size":1000,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-11T01:38:10.088Z","etag":null,"topics":["huggingface-pipelines","huggingface-transformers","nlp","pytest","realtime-sentiment-analysis","sentiment-analysis","spacy","streamlit","text-analysis","text-mining"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/renswickd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-21T07:52:21.000Z","updated_at":"2025-09-11T01:46:53.000Z","dependencies_parsed_at":"2025-10-11T01:38:11.072Z","dependency_job_id":"d8ed451d-9289-4bce-bea2-dc9950d2bc70","html_url":"https://github.com/renswickd/talkwise-ai","commit_stats":null,"previous_names":["renswickd/talkwise-ai"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/renswickd/talkwise-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renswickd%2Ftalkwise-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renswickd%2Ftalkwise-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renswickd%2Ftalkwise-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renswickd%2Ftalkwise-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/renswickd","download_url":"https://codeload.github.com/renswickd/talkwise-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renswickd%2Ftalkwise-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32744090,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["huggingface-pipelines","huggingface-transformers","nlp","pytest","realtime-sentiment-analysis","sentiment-analysis","spacy","streamlit","text-analysis","text-mining"],"created_at":"2025-06-10T22:00:39.480Z","updated_at":"2026-05-07T15:37:34.162Z","avatar_url":"https://github.com/renswickd.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💬 Talkwise-AI\n\nThis 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.\n\n## 💼 Why This App Is Useful\n### 📌 Business Use Case\nIn 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.\n\nThis app provides structured insights into:\n\n- Emotional tone of a dialogue\n- Clarity and fluency (via filler usage)\n- Speaker-specific tendencies\n\n### 🎯 Who Benefits from This?\n- Customer Support Teams\t- Monitor call quality, emotional tone, overuse of fillers\n- Sales Teams\t- Analyze winning vs. losing call patterns\n- UX Researchers / Analysts\t- Study conversation clarity during usability tests\n- Interviewers / Hiring Panels\t- Track candidate fluency, confidence, or tone\n- Educators / Public Speakers\t- Get feedback on speaking style\n\n---\n\n## 📊 Metrics \u0026 Visualizations in the Dashboard\nThe application analyzes the conversation transcript and presents the following metrics in the Streamlit dashboard:\n\n### 🖥️ UI Components\n\n#### 📤 Sidebar\n- Upload `.txt` file containing the transcript.\n\n#### 🏠 Landing Summary\n- 👥 **Speakers Detected**\n- 📄 **Total Turns**\n- 💬 **Average Filler Ratio**\n- 📊 **Average Sentiment Polarity**\n\n#### 📋 Annotated Transcript\n- Full parsed dialogue with computed metrics per turn.\n\n##### 🔽 Per-Turn Metrics (Expandable)\n- Sentiment Trend (line chart)\n- Filler Ratio (bar chart)\n- Colored Sentiment Line (speaker overlay)\n\n#### 🔽 Overall Metrics (Expandable)\n- Speaker Summary Table\n- Sentiment Distribution (Pie)\n- Word Cloud\n- Top 5 Filler Words (Bar/Table toggle)\n\n## Folder Structure\n```\n.\n├── app/                         # Core NLP logic\n│   ├── analyzer.py              # Sentiment \u0026 filler ratio computations\n│   ├── metrics.py               # Summary \u0026 per-turn metric calculations\n│   └── parser.py                # Parses raw transcript string\n│\n├── config/                      # YAML config files\n│   └── pipeline_config.yaml     # Filler word list, top filler count, etc.\n│\n├── data/                        # Transcript input/output storage\n│   └── transcript.txt           # Sample input transcript file\n│\n├── tests/                       # Unit tests\n│   ├── test_parser.py\n│   ├── test_analyzer.py\n│   └── test_metrics.py\n│\n├── ui/                          # Streamlit dashboard\n│   ├── dashboard.py             # Main Streamlit entry logic\n│   ├── components.py            # Shared styles (card CSS)\n│   └── sections/                # Modular UI views\n│       ├── landing_summary.py\n│       ├── annotated_transcript.py\n│       ├── per_turn_metrics.py\n│       └── overall_metrics.py\n│\n├── utils/                       # Helper functions\n│   └── common_functions.py      # YAML loader and shared utilities\n│\n├── app.py                       # ENTRY POINT for Streamlit app\n├── requirements.txt             # Python dependencies\n├── setup.py                     # Project metadata\n└── README.md                    \n```\n\n## ⚙️ Setup Instructions\n\n### 1. Clone the repository\n```bash\ngit clone https://github.com/your-username/talkwise-ai.git\ncd talkwise-ai\n```\n### 2. Create a virtual environment\n```bash\npython -m venv venv\nsource venv/bin/activate  # or venv\\Scripts\\activate on Windows\n```\n### 3. Install the dependencies\n```bash\npip install -r requirements.txt\n```\n### 4. Run Unit Tests (Optional)\n```bash\npytest tests/\n```\n### 5. Run the Application\n```bash\nstreamlit run app.py\n```\n\n## 🖼️ Screenshots\n\n### 1. Transcript Upload Area\n![1. Transcript Upload Area](screenshots/upload_page.png)\n\n### 2. Landing Summary\n![2. Landing Summary](screenshots/landing_summary.png)\n\n### 3. Per-turn Metrics\n![3. Per-turn Metrics](screenshots/per_turn_metrics.png)\n\n### 4. Overall Metrics\n![4. Overall Metrics](screenshots/overall_metrics.png)\n\n\n## Future Enhancements\n1. **Transcript Summarizer**: Automatically converts the full conversation into a short summary using HuggingFace `summarization` pipeline (e.g., `facebook/bart-large-cnn`).\n2. **Dynamic Top-N Controls** - User-selectable value to control \"Top N\" fillers and common words.\n3. **Downloadable Reports** - Export full summary as PDF or CSV.\n4. **Stopword Filtering Toggle** - Let user choose to ignore or include common stopwords. (including single characters)\n5. **UI Enhancements** - Streamlit theming with .streamlit/config.toml.\n6. **Voice Transcription Pipeline** - Auto-transcribe audio using Whisper Plug into this dashboard. (Advanced)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenswickd%2Ftalkwise-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frenswickd%2Ftalkwise-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenswickd%2Ftalkwise-ai/lists"}