Inspiration
The idea started from a simple observation: we spend hours in meetings, calls, and discussions, but we rarely capture what actually happened beneath the surface. Were people agreeing or arguing? When did the mood shift? What topics caused tension? These insights get lost because humans can't analyze conversations objectively while participating in them. I wanted to build something that could listen to real-world audio and reveal the "magic" hidden inside — the unspoken patterns that tell the real story.
What it does
Kokoro Bot analyzes audio from files, URLs, or live Discord voice channels and generates comprehensive Vibe Reports. It detects sentiment shifts throughout conversations, identifies controversial topics, measures consensus levels, and extracts action items. The bot can join Discord voice channels, record conversations, and automatically post analysis reports with sentiment timeline charts. It transforms raw audio into structured insights that help teams understand group dynamics, meeting outcomes, and communication patterns.
How we built it
The architecture is built around Deepgram's Audio Intelligence API, which handles speech-to-text, sentiment analysis, intent recognition, and topic detection in a single pipeline. I wrote custom analytics algorithms that process Deepgram's output to detect "vibe shifts" (sentiment deltas above a threshold), cross-reference topics with negative sentiment to flag "hot topics," and calculate consensus based on affirmation patterns. The Discord integration uses discord.py with the voice-recv extension to capture PCM audio from voice channels, which gets written to WAV files and sent to Deepgram for processing. The report generator creates multiple output formats: terminal text, matplotlib sentiment charts, JSON exports, and rich Discord embeds.
Challenges we ran into
The biggest challenge was working with Deepgram SDK v5, which changed its API structure significantly from v3. The documentation still referenced the old PrerecordedOptions class, but the new version uses keyword arguments directly. I had to read through SDK source code to figure out the correct async API calls. Another hurdle was Discord voice recording — discord.py removed native audio receiving support, so I had to integrate the third-party discord-ext-voice-recv extension and handle raw PCM audio buffering myself. The analytics algorithms also required careful tuning; determining the right thresholds for vibe shift detection and hot topics took several iterations with test data to avoid false positives.
Accomplishments that we're proud of
Getting the voice recording feature working end-to-end was incredibly satisfying. Seeing the bot join a Discord call, record a conversation, analyze it with Deepgram, and post a beautiful sentiment chart with detected insights felt like witnessing actual magic. The analytics engine also turned out better than expected — the vibe shift detection algorithm reliably catches mood changes, and the hot topic identification helps surface contentious subjects that might otherwise go unnoticed. The entire pipeline from audio capture to report generation runs smoothly with proper error handling and null guards for edge cases.
What we learned
I learned a lot about async Python programming, especially managing concurrent API calls and audio streaming. Working with Deepgram's Audio Intelligence features taught me how powerful modern speech AI has become — the fact that sentiment, topics, intents, and summarization all happen in one API call is impressive. I also gained experience with Discord bot development, slash commands, and voice channel interactions. On the testing side, I learned the importance of unit tests for analytics algorithms; having pytest coverage helped me refactor code confidently without breaking detection logic.
What's next for Kokoro Bot
The next steps include adding support for multiple languages (Deepgram recently expanded beyond English), implementing real-time streaming analysis instead of batch processing, and building a web dashboard for historical report viewing. I also want to explore sentiment attribution to specific speakers using diarization data more effectively, and add configurable webhooks so teams can integrate Kokoro with Slack, Microsoft Teams, or custom workflows. Another interesting direction is training custom models to detect domain-specific insights like sales objections in customer calls or design decisions in engineering meetings.
Built With
- deepgram
- discord
- matplotlib
- pynacl
- pytest
- python
- wave
Log in or sign up for Devpost to join the conversation.