Stop 21 · Build AI Engineer Portfolio ProjectsProjects · 6/8

Multi-Modal AI Application

Part of the AI Engineer Roadmap

In short

People don't only type. They snap photos and send voice notes. An app that combines a picture and speech to answer one question shows you can work with how users really communicate.

An application that combines two or more modalities (text + image, text + audio) — shows familiarity with the multimodal direction the field is moving toward.

The purple blob holds a medicine strip up to a phone camera while speaking into the phone.

Think of it like this

Asking the chemist uncle

You show the chemist a medicine strip and ask, out loud, "Is this the fever one?" He looks at the strip, hears your question, and answers both together. A multi-modal app does the same: it takes an image and a voice note and reasons about them as one request.

Watch it happen

Photo plus voice, one answer

User
App
Speech model
Vision LLM

photo + voice note

1/7The user uploads a photo of a medicine strip and a short spoken question.

The big ideas

What you need to know

Modalities must need each other

The best ideas need both inputs: the photo alone or the question alone isn't enough to answer.

Prepare each input

Resize images, trim silence from audio, and check file types before they reach any model.

Watch the latency

Speech, then vision, then speech again adds up. Measure each step and show a loading state.

Safety for real-world advice

For health, money or legal topics, add clear limits and point users to a professional.

See it in code

Walk through the code

python
1import base64, io2import whisper3from PIL import Image4 5stt = whisper.load_model("base")6question = stt.transcribe("question.mp3")["text"]7 8img = Image.open("medicine.jpg").convert("RGB")9img.thumbnail((1024, 1024))               # smaller image = faster, cheaper call10buf = io.BytesIO()11img.save(buf, format="JPEG", quality=85)12image_b64 = base64.b64encode(buf.getvalue()).decode()13 14# Send question + image_b64 to any vision-capable LLM API15print(question, len(image_b64))

1/3Load a small Whisper model locally and transcribe the voice note.

The prep stage: open-source Whisper turns speech into text (it needs ffmpeg installed), and Pillow shrinks the photo before it's base64-encoded for a vision model.

Save yourself the pain

Common mistakes

Oops

Gluing two unrelated features together, like a chatbot that also has a separate image filter.

Do this instead

Design one task where both inputs are needed to answer. That's what makes it truly multi-modal.

Oops

Sending full-size 12 MB phone photos straight to the model.

Do this instead

Resize and compress first. It cuts latency and cost, and rarely hurts the answer.

Your mission

Milestone one: speech plus image prep

~40 min

Quick check

Which project idea is the strongest multi-modal portfolio piece?

Go deeper

  1. 1Build something that genuinely needs multiple modalities, not modalities bolted on artificially.
  2. 2Use a multimodal model API directly rather than gluing separate single-modal models together.
  3. 3Keep the UI simple enough that the multimodal capability is the clear star of the demo.

More projects at this stop

Stuck on this topic? Ask an Insider

Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.

Download
InsideEdge