Zoom meeting assistant

Leon Emmanuel ISHIMWE
7 min readJun 29, 2023

--

Imagine you find yourself in a situation where you have an extremely important meeting to attend, but unexpectedly, other pressing matters demand your attention. Despite the urgency of attending the meeting, you reluctantly decide to engage in those other tasks instead, causing you to be physically present but mentally absent during the crucial gathering. As the host calls out your name, desperately trying to capture your attention, you remain oblivious to their attempts, completely unaware that your name is prominently displayed on the screen. Undoubtedly, such a circumstance would leave a detrimental impression on your professional reputation.

Similarly, let’s consider a scenario where you embody the quintessential lazy student, forced to grapple with the early morning drowsiness that accompanies a 7 am class. Despite the relentless desire to indulge in a few extra minutes of slumber, the responsibility to attend the class prevails. Reluctantly, you join the virtual Zoom meeting, struggling to keep your eyes open. As fate would have it, the teacher utters your name, seeking your participation, but your profound fatigue plunges you into an even deeper state of sleep. This, too, is an unfavorable situation that undermines your dedication and commitment as a student.

Furthermore, there may be instances where you find yourself occupied with other tasks while attending a meeting, only to realize that a critical topic, one that demands your undivided attention, will be discussed. Regrettably, the only means of determining when this significant subject matter arises is through sheer luck or by actively listening to the entire meeting.

Until now, no reliable solution existed to address these challenging circumstances.

However, I have developed a remarkable Python script that effectively tackles all of the aforementioned scenarios. This innovative tool keenly listens to the entire meeting, ensuring you never miss a single mention of your name or any vital discussions. By providing your name as input, this intelligent assistant promptly notifies you whenever your name resounds in the meeting, preventing any embarrassing oversights. Moreover, it goes a step further by including a concise summary of the preceding conversation before your name is called, allowing you to seamlessly integrate into the ongoing dialogue, as if you had been fully engaged all along.

In addition to name detection, this script also caters to the need for focused listening by enabling you to specify particular topics of interest. Through the power of artificial intelligence, it diligently analyzes all the ongoing discussions, promptly alerting you whenever your specified topic arises. This invaluable feature ensures you remain attuned to crucial conversations, providing you with a competitive edge in staying informed. Notifications are delivered straight to your phone number, allowing you to conveniently receive updates in real-time. In the future, I plan to introduce various alternative notification methods, further enhancing the user experience.

Now, let’s delve into how you can leverage the extraordinary capabilities of this script:

  1. Prior to utilizing the script, ensure that both Python and PortAudio are readily available on your system. PortAudio, a cross-platform audio I/O library, facilitates the seamless integration of audio functionalities within the script. If Python is not yet installed on your machine, you can easily obtain it by visiting the official Python website at here. Fortunately, if you already have PortAudio installed, you can skip this step; otherwise, you must install it before proceeding further.
  2. To begin, download or fork the project from the designated repository, which can be accessed at here. Once downloaded, navigate to the project directory to proceed with the setup process.
git fork https://github.com/lilnoes/zoom_meeting_assistant

3. Install the necessary dependencies by executing the command “pip install -r requirements.txt” in your console. This step ensures that all the required packages and libraries are correctly installed, allowing the script to function optimally.

pip install -r requirements.txt

4. As a next step, locate the file named “.env.example” within the project directory and rename it to “.env”. The purpose of this file is to store sensitive information and configuration variables required for the proper functioning of the script.

5. In order to integrate real-time audio-to-text conversion capabilities into the script, you need to create a free account on Deepgram. Deepgram is a cutting-edge platform that specializes in audio transcription services. By visiting the Deepgram website at Deepgram, you can easily create an account and generate a new API key.

Copy this API key and paste it into the designated field labeled “DEEPGRAM_API_KEY” within the “.env” file.

6. Create a free account on Twilio, a renowned communication platform. Upon signing up and creating an account, you will be granted a free phone number and credits to send and receive messages. Visit the Twilio homepage at Twilio and follow the instructions to set up your account. Once your account is created, you will find a picture or illustration displaying three pieces of information.

Copy these details, including the free phone number, and paste them into their respective fields in the “.env” file.

7. Lastly, create a new account on OpenAI, a leading artificial intelligence platform. Retrieve the API key associated with your OpenAI account and populate the “OPENAI_API_KEY” field within the “.env” file with this key. This step ensures seamless integration with OpenAI’s powerful language models.

8. In the “.env” file, locate the designated field for writing your phone number, the number to which you wish to receive notifications and messages. Insert your desired phone number in this field, allowing you to conveniently receive important updates.

Having completed all the necessary setup procedures, everything is now in place, and you are ready to harness the power of this remarkable script. To attentively listen for discussions on a specific topic, simply run the following code in your console: “python meeting.py — topic ‘YOUR_TOPIC’”. Replace ‘YOUR_TOPIC’ with the specific topic you wish to monitor. This topic can be a sentence or a single word, providing you with flexibility and customization.

python meeting.py --topic 'YOUR_TOPIC'

To enable name detection, execute the following code in your console: “python meeting.py — name ‘YOUR_NAME’”. Replace ‘YOUR_NAME’ with the name you want the script to identify. Whenever your name is called during the meeting, the script will instantly send a text message to the phone number specified in the “.env” file, ensuring you never miss any crucial interactions.

python meeting.py --name 'YOUR_NAME'

To illustrate an example, I was in a zoom meeting and I launched the Python script.

The meeting’s participants were engrossed in a discussion about photosynthesis when my name was unexpectedly called. Promptly, the script sent me a detailed message summarizing the key points of the conversation. Furthermore, as they posed a question directed towards me, the script automatically generated and sent a response, skillfully disguising the fact that I had momentarily drifted away from the meeting. This seamless integration ensured that my absence went unnoticed, preserving my professional reputation.

While the project already showcases remarkable capabilities, there is always room for improvement. One such enhancement includes transitioning to OpenAI’s Whisper, an advanced speech recognition system, thereby reducing reliance on numerous third-party dependencies. Initially, I chose Deepgram due to its real-time audio-to-text capabilities, which were not readily available in Whisper. However, migrating to Whisper would consolidate functionalities and enhance the overall performance of the script.

Looking ahead, my plans for the future development of this project extend beyond its current state. I envision introducing a multitude of other notification systems, offering users a diverse range of options to suit their individual preferences and requirements. By diversifying the notification methods, users will have the freedom to choose the most convenient and efficient way to stay informed and engaged during important meetings.

In conclusion, the Python script I have developed is a powerful tool that addresses common challenges faced during important meetings, such as name recognition, focused topic monitoring, and attentive participation. By leveraging advanced technologies like artificial intelligence and real-time communication platforms, the script provides a comprehensive solution to keep users engaged, informed, and proactive in virtual meeting environments. As I continue to refine and expand the capabilities of this script, I aim to provide users with a seamless, customizable, and reliable assistant that optimizes their meeting experiences and boosts their professional presence.

--

--