# Gemini Multimodal: Görsel + Ses + Video Anlama
Yapay zeka artik sadece metin islemiyor. Gemini 2.5 modelleri, görsel, ses ve video verisini ayni anda isleyerek insana yakin bir anlama yetenegine sahip. Eger sen de uygulamana multimodal yetenekler eklemek istiyorsan, doğru yerdesin. Goruntuden bilgi çıkarma, videoyu özetleme, ses analizi veya PDF'yi işlemek — hepsini tek bir API çağrısinda yapabiliyorsun. Aşağıda Gemini'nin multimodal yeteneklerini mobil ve web uygulamalarinda nasil kullanacagini adım adım kesfedeceksin.
💡 Pro Tip: Gemini 2.5 Pro'nun 2M token context window'u, 2 saatlik bir videoyu tek seferde isleyebilir. Bu, video anlama alaninda devrim niteliginde bir kapasite.
İçindekiler
- Multimodal AI Nedir?
- Görsel Anlama ve Reasoning
- Video İşleme ve Analiz
- Ses Transkripsiyonu ve Anlama
- PDF ve Dokuman Analizi
- Multi-Turn Multimodal Chat
- Mobil Uygulamalarda Multimodal
- Performance ve Optimizasyon
- Sonuç ve Öneriler
1. Multimodal AI Nedir?
Multimodal AI, birden fazla veri tipini — metin, görsel, ses, video — ayni anda isleyebilen yapay zeka sistemlerini ifade eder. Gemini, Google'in "natively multimodal" olarak tasarladigi ilk model ailesidir. Yani multimodal yetenek sonradan eklenmedi, modelin DNA'sinda var.
Geleneksel yaklaşımda görsel işleme için ayrı bir model, ses için ayrı bir model ve metin için ayrı bir model kullanman gerekiyordu. Gemini bu parcali yapiyi ortadan kaldıriyor. Tek bir API çağrısinda bir görsel gönderebilir, ustune metin sorusu sorabilir ve modelden hem görsel analiz hem de metin tabanli cevap alabilirsin. Google AI Studio arayuzunde bu multimodal yetenekleri doğrudan test edebilirsin.
Eger daha önce DeepSeek R1 yazisini okudunysan, düşünce zinciri yaklasiminin AI modellerini ne kadar guclendirdigini biliyorsundur. Gemini de benzer şekilde multimodal girdiler uzerinde adım adım reasoning yaparak daha tutarlı sonuçlar uretiyor.
Desteklenen Veri Tipleri
Veri Tipi | Desteklenen Formatlar | Maks Boyut | Context Karsiligi |
|---|---|---|---|
**Görsel** | PNG, JPEG, WebP, GIF | 20 MB/görsel | ~258 token/görsel |
**Video** | MP4, MPEG, MOV, AVI, MKV, WebM | 2 GB (File API) | ~258 token/saniye |
**Ses** | MP3, WAV, AIFF, AAC, OGG, FLAC | 2 GB (File API) | ~32 token/saniye |
**PDF** | Standart PDF | 300 sayfa | Sayfa basina ~258 token |
**Kod** | Tum diller | Metin olarak | Normal token sayimi |
Rakiplerle Karşılaştırma
GPT-4o ve Claude 3.5 Sonnet da multimodal yetenek sunuyor ama Gemini'nin avantajlari belirgin:
- Video nativ destegi:: Diger modeller kare kare görsel olarak işliyor, Gemini videoyu temporal olarak anliyor
- Uzun context:: 2M token ile 2 saatlik video veya 1500 sayfalik PDF tek seferde
- Ses anlama:: Sadece transkripsiyon değil, ton, duygu ve konusmaci tespiti de yapiyor
Ozellikle video anlama konusunda Gemini'nin rakiplerinden ciddi bir farkı var. Diger modellere video gonderdiginde, arka planda video karelere bolunuyor ve her kare bağımsiz bir görsel olarak işleniyor. Gemini ise videoyu temporal akış içinde anliyor — yani "3. dakikada ne oldu?" gibi zamana bagli sorulara doğru cevap verebiliyor. Bu fark, ozellikle egitim videolari, toplanti kayitlari ve güvenlik kamerasi analizinde büyük avantaj sagliyor.
Sen kendi uygulamanda multimodal yetenekleri kullanmaya başlamadan önce, Google Cloud Vertex AI uzerinden enterprise-grade API erisimi ve Google Developers Blog uzerinden en güncel model güncellemelerini takip etmeni oneririm.
On-Device ML ve Core ML yazimda cihaz uzerinde AI islemeden bahsetmistim. Gemini'nin multimodal yetenekleri ise bulut tarafinda bu islemi çok daha güçlü yapıyor.
2. Görsel Anlama ve Reasoning
Gemini'ye bir görsel gonderdiginde sadece "bu bir kedi" demekle kalmiyor. Gorseldeki detaylari analiz edebiliyor, sayisal degerler okuyabiliyor, grafik ve tablolari yorumlayabiliyor.
Görsel reasoning ozellikle mobil uygulamalarda çok güçlü senaryolar açiyor. Örneğin bir e-ticaret uygulamasinda kullanıcı telefonuyla bir ürünun fotografini çekiyor ve senin uygulamanda Gemini bu görseli analiz ederek benzer ürünleri buluyor, fiyat karşılaştırmasi yapiyor ve hatta ürünun durumunu (yeni, kullanılmış, hasarli) tespit edebiliyor. Sağlık uygulamalarinda ise cilt lezyonlarinin on taramasinda, gida kalori tahmininde veya ilac kutusundaki prospektusu okumada kullanilabiliyor.
Temel Görsel Analiz
typescript
1import { GoogleGenerativeAI } from '@google/generative-ai';2import * as fs from 'fs';3 4const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);5const model = genAI.getGenerativeModel({ model: 'gemini-2.5-flash' });6 7// Dosyadan görsel okuma8async function analyzeImage(imagePath: string, prompt: string) {9 const imageData = fs.readFileSync(imagePath);10 const base64Image = imageData.toString('base64');11 const mimeType = imagePath.endsWith('.png') ? 'image/png' : 'image/jpeg';12 13 const result = await model.generateContent([14 prompt,15 {16 inlineData: {17 data: base64Image,18 mimeType,19 },20 },21 ]);22 23 return result.response.text();24}25 26// Kullanım örnekleri27const description = await analyzeImage(28 './screenshot.png',29 'Bu mobil uygulama ekran goruntusunu analiz et. UI/UX acisindan iyilestirme önerileri ver.'30);31 32const ocrResult = await analyzeImage(33 './receipt.jpg',34 'Bu fisteki tum ürünleri ve fiyatlari JSON formatinda cikart.'35);Çoklu Görsel Karşılaştırma
typescript
1async function compareImages(images: string[], prompt: string) {2 const imageParts = images.map(path => {3 const data = fs.readFileSync(path).toString('base64');4 return {5 inlineData: {6 data,7 mimeType: 'image/jpeg',8 },9 };10 });11 12 const result = await model.generateContent([13 prompt,14 ...imageParts,15 ]);16 17 return result.response.text();18}19 20// A/B test analizi21const comparison = await compareImages(22 ['./design-a.png', './design-b.png'],23 'Bu iki mobil uygulama tasarimini karşılaştır. Hangisi daha iyi kullanıcı deneyimi sunuyor ve neden?'24);Görsel Reasoning Kullanım Alanlari
- UI/UX Analizi: Ekran goruntusunden erisilebilirlik sorunlarini tespit etme
- OCR ve Veri Çıkarma: Fatura, fiis, kartvizit tarama
- Ürün Tespiti: E-ticaret için görsel arama
- Medikal Görüntü: Radyoloji raporlarina yardimci analiz
- Harita ve Plan: Mimari plan yorumlama, konum tespiti
Görsel reasoning'in en etkileyici yonu, modelin sadece "ne gordugunu" değil "ne anlam ifade ettigini" de kavrayabilmesi. Bir grafik görselini gonderdiginde Gemini trend cizgisini okuyabiliyor, anomali tespit edebiliyor ve hatta grafik verisinden gelecege yonelik tahmin yapabiliyor. Eger senin uygulamanda raporlama veya dashboard ozelligi varsa, kullanicilarin ekran goruntusunu Gemini'ye gondererek "bu grafikteki dusus neden olmus olabilir?" gibi sorular sormasini saglayabilirsin.
3. Video İşleme ve Analiz
Gemini'nin en etkileyici özelliklerinden biri video anlama. Bir video dosyasini yukleyip "bu videoda ne oluyor?" diye sorabiliyorsun ve model temporal olarak (zaman akışi içinde) videoyu anliyor.
Video işleme için iki temel yaklaşım var. Kısa videolar (30 saniyenin altinda) için base64 encode ederek doğrudan API'ye gonderebilirsin. Ancak daha uzun videolar için Google'in File API'sini kullanman gerekiyor. File API videoyu sunucuya yukluyor, işliyor ve sana bir URI donduruyor. Sonraki API çağrılarinda bu URI'yi referans olarak kullaniyorsun. Maksimum dosya boyutu 2 GB ve işlem süresi videonun uzunluguna bagli olarak birkac dakika surebiliyor.
Video Yükleme (File API)
typescript
1import { GoogleAIFileManager } from '@google/generative-ai/server';2 3const fileManager = new GoogleAIFileManager(process.env.GEMINI_API_KEY!);4 5// Video yükle6async function uploadVideo(videoPath: string) {7 const uploadResult = await fileManager.uploadFile(videoPath, {8 mimeType: 'video/mp4',9 displayName: 'analiz-videosu',10 });11 12 // İşleme tamamlanana kadar bekle13 let file = uploadResult.file;14 while (file.state === 'PROCESSING') {15 await new Promise(resolve => setTimeout(resolve, 5000));16 file = await fileManager.getFile(file.name);17 }18 19 if (file.state === 'FAILED') {20 throw new Error('Video işleme başarısız');21 }22 23 return file;24}25 26// Video analiz27async function analyzeVideo(videoPath: string, prompt: string) {28 const file = await uploadVideo(videoPath);29 30 const model = genAI.getGenerativeModel({ model: 'gemini-2.5-pro' });31 const result = await model.generateContent([32 prompt,33 {34 fileData: {35 fileUri: file.uri,36 mimeType: file.mimeType,37 },38 },39 ]);40 41 return result.response.text();42}43 44// Kullanım45const summary = await analyzeVideo(46 './meeting-recording.mp4',47 'Bu toplanti kaydini özetle. Alinan kararlar ve aksiyon maddelerini listele.'48);Video Anlama Senaryoları
Senaryo | Prompt Ornegi | Kullanım Alani |
|---|---|---|
**Toplanti ozeti** | "Konusmacilarin ana fikirlerini özetle" | Kurumsal |
**Egitim içerik** | "Bu derste anlatilan kavramlari listele" | EdTech |
**Güvenlik kamerasi** | "Anormal bir hareket var mi?" | Güvenlik |
**Spor analizi** | "Oyuncunun teknik hatalarini belirle" | Spor teknolojisi |
**Ürün inceleme** | "Videodaki ürünlerin artilari ve eksileri" | E-ticaret |
4. Ses Transkripsiyonu ve Anlama
Gemini sadece sesi metne cevirmiyor — konusmacilari ayirt edebiliyor, duygu analizi yapabiliyor ve ses tonundan anlam cikarabiliyor.
Ses anlama ozelligi ozellikle podcast özetleme, müşteri hizmetleri çağrı analizi ve toplanti notlari oluşturma gibi alanlarda devrim yaratıyor. Geleneksel ses tanıma servisleri (Google Speech-to-Text, Whisper) sadece transkripsiyon yapiyor. Gemini ise transkripsiyonun otesine gecip "bu konusmada müşteri ne kadar memnun?" veya "hangi konularda anlasmazlik var?" gibi üst duzey analizler yapabiliyor.
typescript
1async function analyzeAudio(audioPath: string) {2 const file = await uploadFile(audioPath, 'audio/mp3');3 4 const result = await model.generateContent([5 `Bu ses kaydini analiz et:6 1. Tam transkripsiyon oluştur7 2. Konusmacilari ayirt et (Konusmaci 1, Konusmaci 2...)8 3. Her konusmacinin duygusal tonunu belirle9 4. Ana konulari ve alinan kararlari özetle10 5. Turkce olmayan kisimlar varsa tercume et`,11 {12 fileData: {13 fileUri: file.uri,14 mimeType: file.mimeType,15 },16 },17 ]);18 19 return result.response.text();20}Ses + Görsel Birlesik Analiz
typescript
1// Podcast'i hem ses hem de gosterim slaytlariyla analiz et2const result = await model.generateContent([3 'Bu podcast kaydini dinle ve sunumdaki slaytlari incele. Her slaytta anlatilan konuyu eslestir.',4 { fileData: { fileUri: audioFile.uri, mimeType: 'audio/mp3' } },5 { fileData: { fileUri: slidesFile.uri, mimeType: 'application/pdf' } },6]);Flutter Clean Architecture yazimda katmanli mimari yaklaşımini anlatmistim. Multimodal servisleri de ayni şekilde repository pattern ile sarmalayarak temiz bir yapi kurabilirsin.
5. PDF ve Dokuman Analizi
Gemini'nin PDF işleme yetenegini, ozellikle dokuman yogun uygulamalarda çok isine yarayacak bir özellik olarak gormelisin.
PDF analizi için Gemini sayfadaki metni, tablolari, grafikleri ve görselleri birlikte değerlendiriyor. Yani bir finansal rapor PDF'i gonderdiginde sadece metni okumakla kalmiyor, tablolardaki sayisal verileri de anlamli şekilde yorumluyor. 300 sayfaya kadar destekleyen bu özellik, hukuk, muhasebe ve akademik arastirma gibi dokuman-yogun sektorlerde ciddi zaman tasarrufu sagliyor.
typescript
1async function analyzePDF(pdfPath: string, questions: string[]) {2 const file = await uploadFile(pdfPath, 'application/pdf');3 4 const prompt = `Bu PDF dokumanini analiz et ve aşağıdaki sorulari yanitla:5 6 ${questions.map((q, i) => `${i + 1}. ${q}`).join('\n')}7 8 Her soru için ilgili sayfa numarasini da belirt.`;9 10 const result = await model.generateContent([11 prompt,12 { fileData: { fileUri: file.uri, mimeType: 'application/pdf' } },13 ]);14 15 return result.response.text();16}17 18// Kullanım19const analysis = await analyzePDF('./contract.pdf', [20 'Sozlesme süresi ne kadar?',21 'Cezai şart maddeleri nelerdir?',22 'Fesih koşullari nelerdir?',23 'KVKK ile ilgili maddeler hangileri?',24]);6. Multi-Turn Multimodal Chat
Gemini ile multimodal bir sohbet oturumu açabilir, önceki görsel ve metin baglamini koruyarak devam edebilirsin.
Multi-turn multimodal chat, kullanıcı deneyimi acisindan en değerli özelliklerden biri. Örneğin bir tasarim review araci geliştirdiğini düşün: kullanıcı ilk mesajda ekran goruntusunu paylaşiyor, ikinci mesajda belirli bir bolgeyi soruyor, üçüncü mesajda alternatif bir tasarimi gönderiyor. Gemini tum bu baglami koruyarak tutarlı ve bağlam-duyarli cevaplar veriyor. Senin uygulamanda bu pattern'i kullanarak adım adım ilerleyen, görsel destekli asistan deneyimleri kurabilirsin.
typescript
1async function multimodalChat() {2 const chat = model.startChat();3 4 // İlk mesaj: görsel ile5 const imageData = fs.readFileSync('./app-screenshot.png').toString('base64');6 const response1 = await chat.sendMessage([7 'Bu uygulama ekran goruntusunu incele. Genel izlenimini paylaş.',8 { inlineData: { data: imageData, mimeType: 'image/png' } },9 ]);10 console.log('Yanit 1:', response1.response.text());11 12 // Ikinci mesaj: detay sorusu (görsel bağlam korunuyor)13 const response2 = await chat.sendMessage(14 'Navigation yapısıni iyilestirmek için ne onerirsin?'15 );16 console.log('Yanit 2:', response2.response.text());17 18 // Üçüncü mesaj: yeni görsel ekle19 const newImage = fs.readFileSync('./wireframe.png').toString('base64');20 const response3 = await chat.sendMessage([21 'Bu wireframe ile önceki tasarimi karşılaştır. Hangisi kullanıcı için daha iyi?',22 { inlineData: { data: newImage, mimeType: 'image/png' } },23 ]);24 console.log('Yanit 3:', response3.response.text());25}7. Mobil Uygulamalarda Multimodal
Swift ile Görsel Analiz
swift
1import GoogleGenerativeAI2import UIKit3 4actor MultimodalService {5 private let model: GenerativeModel6 7 init() {8 self.model = GenerativeModel(9 name: "gemini-2.5-flash",10 apiKey: Configuration.geminiAPIKey11 )12 }13 14 func analyzePhoto(_ image: UIImage, prompt: String) async throws -> String {15 guard let jpegData = image.jpegData(compressionQuality: 0.8) else {16 throw MultimodalError.imageConversionFailed17 }18 19 let response = try await model.generateContent(20 prompt,21 ModelContent.Part.data(mimetype: "image/jpeg", jpegData)22 )23 24 return response.text ?? ""25 }26 27 func analyzeWithStreaming(_ image: UIImage, prompt: String) -> AsyncThrowingStream<String, Error> {28 AsyncThrowingStream { continuation in29 Task {30 guard let jpegData = image.jpegData(compressionQuality: 0.8) else {31 continuation.finish(throwing: MultimodalError.imageConversionFailed)32 return33 }34 let stream = model.generateContentStream(35 prompt,36 ModelContent.Part.data(mimetype: "image/jpeg", jpegData)37 )38 for try await chunk in stream {39 if let text = chunk.text {40 continuation.yield(text)41 }42 }43 continuation.finish()44 }45 }46 }47}Apple Vision Framework yazısında cihaz uzerinde görsel işleme kapasitesini incelemiştim. Gemini ile bulut tarafinda çok daha güçlü görsel reasoning yapabilirsin — ikisini birleştirmek en iyi strateji.
8. Performance ve Optimizasyon
Multimodal işlemlerin performansi doğrudan kullanıcı deneyimini etkiliyor. Büyük dosyalar daha fazla token tuketiyor, daha uzun işlem süresi gerektiriyor ve daha yuksek maliyet oluşturuyor. Aşağıdaki optimizasyon stratejileri ile hem hız hem maliyet acisindan ciddi iyilestirme saglayabilirsin.
Görsel Optimizasyonu
Strateji | Etki | Uygulama |
|---|---|---|
**Boyut küçültme** | %60 token tasarruf | 1024px max kenar uzunlugu |
**JPEG sikistirma** | %30 boyut azalma | quality: 0.8 yeterli |
**Gereksiz görsel atma** | %100 tasarruf | Sadece ilgili görselleri gönder |
**Batch işleme** | %40 hız artisi | Birden fazla görseli tek istekte |
Görsel optimizasyonunda en sık yapılan hata, kamera çözünürlüğündeki görseli doğrudan API'ye göndermek. Modern telefonlar 12-48 MP görsel uretiyor ama Gemini için 1024px kenar uzunlugu fazlasıyla yeterli. Client tarafinda görseli küçültmek hem upload suresini hem de API maliyetini dramatik şekilde dusuruyor.
Video Optimizasyonu
typescript
1// Video süresi ve kaliteyi dengele2const optimizationConfig = {3 maxDuration: 120, // 2 dakika (uzun videolar için clip)4 resolution: '720p', // 1080p gereksiz, 720p yeterli5 frameRate: 1, // 1 FPS yeterli (video anlama için)6 audioSampleRate: 16000 // 16kHz ses kalitesi yeterli7};ALTIN İPUCU
Bu yazının en değerli bilgisi
Bu ipucu, yazının en önemli çıkarımını içeriyor.
Easter Egg
Gizli bir bilgi buldun!
Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?
Okuyucu Ödülü
Multimodal AI ile en etkili 3 proje fikri: (1) **Fotograf Portfoy Asistani** — Fotograflari otomatik etiketle, kategorize et ve en iyilerini seç, (2) **Toplanti Asistani** — Video kaydi + slaytlari birlestirerek aksiyon maddeleri çıkar, (3) **Erisilebilirlik Denetcisi** — Ekran goruntusunden WCAG uyumluluk raporu oluştur. Bu projelerin hepsi Gemini Flash ile ucretsiz katmanda prototiplenebilir.
Sonuç ve Öneriler
Gemini'nin multimodal yetenekleri, mobil ve web uygulamalarinda yepyeni kapilar açiyor. Görsel anlama, video analizi, ses transkripsiyonu ve PDF işleme — bunlarin hepsi tek bir API uzerinden erisilebilir durumda.
Multimodal AI'nin gerçek güçu, farklı veri tiplerini birlestirdiginde ortaya çıkıyor. Bir kullanıcının gonderdigi fotografi analiz ederken ayni anda sesli aciklamasini dinlemek, veya bir PDF raporundaki grafikleri video sunumuyla eslestirmek — bu tür cross-modal senaryolar geleneksel yaklasimlarla çok zor ama Gemini ile tek bir API çağrısinda mumkun hale geliyor.
Onerilerim:
- Görsel islerinde Flash modeli çok yeterli — Pro sadece karmaşık reasoning için
- Video işleme için File API kullan, base64 gönderme
- Mobil uygulamalarda görseli client'ta küçült, sonra API'ye gönder
- Multi-turn chat ile bağlam koruyarak daha iyi sonuçlar al
- WebSocket Real-Time ile streaming yanitlar sun
- Cursor AI IDE yazimda multimodal debugging orneklerini incelemiştim — görsel hata ayıklamada Gemini çok değerli
Multimodal AI, kullanıcı deneyimini bir üst seviyeye taşiyor. Şimdi kodlamaya başla!

