How to Build a Meeting Transcription Python Script

Introduction #
Transform your meetings into actionable insights with a Python-powered transcription tool. By the end of this guide, you'll have a robust application that can transcribe audio from various file formats, generate concise summaries, and suggest next steps—all powered by AI.
Getting Started #
To begin, fork this template by clicking "Use Template" below:
OpenAI API Key

- Log in to the OpenAI developer platform.
- Navigate to API keys and create a new secret key.
- Copy the secret key and add it to Replit's Secrets tab as OPENAI_API_KEY.

Using the Tool #
Uploading Files
- In the Files sidebar, you'll see an uploads folder

- Click on the three dots next to uploads and select "Add file"
- Choose your meeting recording (supported formats: mp4, avi, mov, wav)
- The file will appear in the uploads folder
Running the Tool #
Click the Run button at the top of your Repl
The console will show the progress:
python
1
2
3
4
> Converting audio
> Transcribing audio
> Generating output
Output file generated: output/your_file_name.md
Accessing Transcriptions #
- Your transcriptions will be saved in the output folder
- Each transcription includes:
- Full transcript of the audio
- A summary of the content
- Suggested next steps based on the content
- To download:
- Click on the file in the output folder
- Click the "Download" button at the top of the file viewer
Breaking down the code #
Let's explore the key components of our meeting transcription tool.
Setting up the environment
python
1
2
3
4
5
6
7
8
9
10
11
12
13
import os
import openai
from utils import (
chunk_audio,
chunk_text,
convert_to_audio,
generate_next_steps,
generate_output_file,
generate_summary,
transcribe_audio,
)
# Set up OpenAI API key
openai.api_key = os.environ['OPENAI_API_KEY
This section imports necessary modules and sets up the OpenAI API key from the secret we added earlier.
Processing Files
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def process_file(file_path):
"""Process the uploaded file and generate the document."""
print("> Converting audio")
audio_path = convert_to_audio(file_path)
audio_chunks = chunk_audio(audio_path)
print("> Transcribing audio")
transcript = transcribe_audio(audio_chunks)
transcript_chunks = chunk_text(transcript)
summary = generate_summary(transcript_chunks)
next_steps = generate_next_steps(transcript_chunks)
print("> Generating output")
output_path = generate_output_file(file_path, transcript, summary, next_steps)
print(f"Output file generated: {output_path}")
# Clean up temporary audio chunks
for chunk in audio_chunks:
os.remove(chunk)
The process_file function handles the entire workflow:
- Converts the input file to audio
- Chunks the audio for processing
- Transcribes the audio
- Generates a summary and next steps
- Creates an output file with all the information
Main Execution
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def main():
upload_folder = 'uploads'
output_folder = 'output'
os.makedirs(upload_folder, exist_ok=True)
os.makedirs(output_folder, exist_ok=True)
print("Please place your audio or video file in the 'uploads' folder.")
input("Press Enter when you've uploaded the file...")
files = os.listdir(upload_folder)
if not files:
print("No files found in the 'uploads' folder. Thank you for using our service. Goodbye!")
return
for filename in files:
file_path = os.path.join(upload_folder, filename)
process_file(file_path)
The main function:
- Creates necessary folders
- Waits for user input
- Processes all files in the uploads folder
What's Next #
- Enhanced Features
- Add support for real-time transcription
- Implement speaker diarization to identify different speakers
- Create a web interface for easier file uploads
- Optimization
- Optimize audio chunking for better performance
- Implement parallel processing for faster transcription
- Add error handling and retry mechanisms
- Integration Ideas
- Connect with calendar apps to automatically process meeting recordings
- Integrate with project management tools to create tasks from next steps
- Build a Slack bot for easy access to transcription services
If you’d like to bring this project and similar templates into your team, set some time here with the Replit team for a quick demo of Replit Teams.
Happy coding!