# Gemini Multimodal: Gorsel + Ses + Video Anlama
Yapay zeka artik sadece metin islemiyor. Gemini 2.5 modelleri, gorsel, ses ve video verisini ayni anda isleyerek insana yakin bir anlama yetenegine sahip. Eger sen de uygulamana multimodal yetenekler eklemek istiyorsan, dogru yerdesin. Goruntuden bilgi cikarma, videoyu ozetleme, ses analizi veya PDF'yi islemek — hepsini tek bir API cagrisinda yapabiliyorsun. Asagida Gemini'nin multimodal yeteneklerini mobil ve web uygulamalarinda nasil kullanacagini adim adim 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.
Icindekiler
- Multimodal AI Nedir?
- Gorsel Anlama ve Reasoning
- Video Isleme ve Analiz
- Ses Transkripsiyonu ve Anlama
- PDF ve Dokuman Analizi
- Multi-Turn Multimodal Chat
- Mobil Uygulamalarda Multimodal
- Performance ve Optimizasyon
- Sonuc ve Oneriler
1. Multimodal AI Nedir?
Multimodal AI, birden fazla veri tipini — metin, gorsel, 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 yaklasimda gorsel isleme icin ayri bir model, ses icin ayri bir model ve metin icin ayri bir model kullanman gerekiyordu. Gemini bu parcali yapiyi ortadan kaldiriyor. Tek bir API cagrisinda bir gorsel gonderebilir, ustune metin sorusu sorabilir ve modelden hem gorsel analiz hem de metin tabanli cevap alabilirsin. Google AI Studio arayuzunde bu multimodal yetenekleri dogrudan test edebilirsin.
Eger daha once DeepSeek R1 yazisini okudunysan, dusunce zinciri yaklasiminin AI modellerini ne kadar guclendirdigini biliyorsundur. Gemini de benzer sekilde multimodal girdiler uzerinde adim adim reasoning yaparak daha tutarli sonuclar uretiyor.
Desteklenen Veri Tipleri
Veri Tipi | Desteklenen Formatlar | Maks Boyut | Context Karsiligi |
|---|---|---|---|
**Gorsel** | PNG, JPEG, WebP, GIF | 20 MB/gorsel | ~258 token/gorsel |
**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 Karsilastirma
GPT-4o ve Claude 3.5 Sonnet da multimodal yetenek sunuyor ama Gemini'nin avantajlari belirgin:
- Video nativ destegi:: Diger modeller kare kare gorsel olarak isliyor, Gemini videoyu temporal olarak anliyor
- Uzun context:: 2M token ile 2 saatlik video veya 1500 sayfalik PDF tek seferde
- Ses anlama:: Sadece transkripsiyon degil, ton, duygu ve konusmaci tespiti de yapiyor
Ozellikle video anlama konusunda Gemini'nin rakiplerinden ciddi bir farki var. Diger modellere video gonderdiginde, arka planda video karelere bolunuyor ve her kare bagimsiz bir gorsel olarak isleniyor. Gemini ise videoyu temporal akis icinde anliyor — yani "3. dakikada ne oldu?" gibi zamana bagli sorulara dogru cevap verebiliyor. Bu fark, ozellikle egitim videolari, toplanti kayitlari ve guvenlik kamerasi analizinde buyuk avantaj sagliyor.
Sen kendi uygulamanda multimodal yetenekleri kullanmaya baslamadan once, Google Cloud Vertex AI uzerinden enterprise-grade API erisimi ve Google Developers Blog uzerinden en guncel model guncellemelerini takip etmeni oneririm.
On-Device ML ve Core ML yazimda cihaz uzerinde AI islemeden bahsetmistim. Gemini'nin multimodal yetenekleri ise bulut tarafinda bu islemi cok daha guclu yapıyor.
2. Gorsel Anlama ve Reasoning
Gemini'ye bir gorsel gonderdiginde sadece "bu bir kedi" demekle kalmiyor. Gorseldeki detaylari analiz edebiliyor, sayisal degerler okuyabiliyor, grafik ve tablolari yorumlayabiliyor.
Gorsel reasoning ozellikle mobil uygulamalarda cok guclu senaryolar aciyor. Ornegin bir e-ticaret uygulamasinda kullanici telefonuyla bir urunun fotografini cekiyor ve senin uygulamanda Gemini bu gorseli analiz ederek benzer urunleri buluyor, fiyat karsilastirmasi yapiyor ve hatta urunun durumunu (yeni, kullanilmis, hasarli) tespit edebiliyor. Saglik uygulamalarinda ise cilt lezyonlarinin on taramasinda, gida kalori tahmininde veya ilac kutusundaki prospektusu okumada kullanilabiliyor.
Temel Gorsel 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 gorsel 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// Kullanim ornekleri27const description = await analyzeImage(28 './screenshot.png',29 'Bu mobil uygulama ekran goruntusunu analiz et. UI/UX acisindan iyilestirme onerileri ver.'30);31 32const ocrResult = await analyzeImage(33 './receipt.jpg',34 'Bu fisteki tum urunleri ve fiyatlari JSON formatinda cikart.'35);Coklu Gorsel Karsilastirma
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 karsilastir. Hangisi daha iyi kullanici deneyimi sunuyor ve neden?'24);Gorsel Reasoning Kullanim Alanlari
- UI/UX Analizi: Ekran goruntusunden erisilebilirlik sorunlarini tespit etme
- OCR ve Veri Cikarma: Fatura, fiis, kartvizit tarama
- Urun Tespiti: E-ticaret icin gorsel arama
- Medikal Goruntu: Radyoloji raporlarina yardimci analiz
- Harita ve Plan: Mimari plan yorumlama, konum tespiti
Gorsel reasoning'in en etkileyici yonu, modelin sadece "ne gordugunu" degil "ne anlam ifade ettigini" de kavrayabilmesi. Bir grafik gorselini 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 Isleme ve Analiz
Gemini'nin en etkileyici ozelliklerinden biri video anlama. Bir video dosyasini yukleyip "bu videoda ne oluyor?" diye sorabiliyorsun ve model temporal olarak (zaman akisi icinde) videoyu anliyor.
Video isleme icin iki temel yaklasim var. Kisa videolar (30 saniyenin altinda) icin base64 encode ederek dogrudan API'ye gonderebilirsin. Ancak daha uzun videolar icin Google'in File API'sini kullanman gerekiyor. File API videoyu sunucuya yukluyor, isliyor ve sana bir URI donduruyor. Sonraki API cagrilarinda bu URI'yi referans olarak kullaniyorsun. Maksimum dosya boyutu 2 GB ve islem suresi videonun uzunluguna bagli olarak birkac dakika surebiliyor.
Video Yukleme (File API)
typescript
1import { GoogleAIFileManager } from '@google/generative-ai/server';2 3const fileManager = new GoogleAIFileManager(process.env.GEMINI_API_KEY!);4 5// Video yukle6async function uploadVideo(videoPath: string) {7 const uploadResult = await fileManager.uploadFile(videoPath, {8 mimeType: 'video/mp4',9 displayName: 'analiz-videosu',10 });11 12 // Isleme 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 isleme basarisiz');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// Kullanim45const summary = await analyzeVideo(46 './meeting-recording.mp4',47 'Bu toplanti kaydini ozetle. Alinan kararlar ve aksiyon maddelerini listele.'48);Video Anlama Senaryolari
Senaryo | Prompt Ornegi | Kullanim Alani |
|---|---|---|
**Toplanti ozeti** | "Konusmacilarin ana fikirlerini ozetle" | Kurumsal |
**Egitim icerik** | "Bu derste anlatilan kavramlari listele" | EdTech |
**Guvenlik kamerasi** | "Anormal bir hareket var mi?" | Guvenlik |
**Spor analizi** | "Oyuncunun teknik hatalarini belirle" | Spor teknolojisi |
**Urun inceleme** | "Videodaki urunlerin 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 ozetleme, musteri hizmetleri cagri analizi ve toplanti notlari olusturma gibi alanlarda devrim yaratıyor. Geleneksel ses tanima servisleri (Google Speech-to-Text, Whisper) sadece transkripsiyon yapiyor. Gemini ise transkripsiyonun otesine gecip "bu konusmada musteri ne kadar memnun?" veya "hangi konularda anlasmazlik var?" gibi ust 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 olustur7 2. Konusmacilari ayirt et (Konusmaci 1, Konusmaci 2...)8 3. Her konusmacinin duygusal tonunu belirle9 4. Ana konulari ve alinan kararlari ozetle10 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 + Gorsel 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 yaklasimini anlatmistim. Multimodal servisleri de ayni sekilde repository pattern ile sarmalayarak temiz bir yapi kurabilirsin.
5. PDF ve Dokuman Analizi
Gemini'nin PDF isleme yetenegini, ozellikle dokuman yogun uygulamalarda cok isine yarayacak bir ozellik olarak gormelisin.
PDF analizi icin Gemini sayfadaki metni, tablolari, grafikleri ve gorselleri birlikte degerlendiriyor. Yani bir finansal rapor PDF'i gonderdiginde sadece metni okumakla kalmiyor, tablolardaki sayisal verileri de anlamli sekilde yorumluyor. 300 sayfaya kadar destekleyen bu ozellik, 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 asagidaki sorulari yanitla:5 6 ${questions.map((q, i) => `${i + 1}. ${q}`).join('\n')}7 8 Her soru icin 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// Kullanim19const analysis = await analyzePDF('./contract.pdf', [20 'Sozlesme suresi ne kadar?',21 'Cezai sart maddeleri nelerdir?',22 'Fesih kosullari nelerdir?',23 'KVKK ile ilgili maddeler hangileri?',24]);6. Multi-Turn Multimodal Chat
Gemini ile multimodal bir sohbet oturumu acabilir, onceki gorsel ve metin baglamini koruyarak devam edebilirsin.
Multi-turn multimodal chat, kullanici deneyimi acisindan en degerli ozelliklerden biri. Ornegin bir tasarim review araci gelistirdigini dusun: kullanici ilk mesajda ekran goruntusunu paylasiyor, ikinci mesajda belirli bir bolgeyi soruyor, ucuncu mesajda alternatif bir tasarimi gonderiyor. Gemini tum bu baglami koruyarak tutarli ve baglam-duyarli cevaplar veriyor. Senin uygulamanda bu pattern'i kullanarak adim adim ilerleyen, gorsel destekli asistan deneyimleri kurabilirsin.
typescript
1async function multimodalChat() {2 const chat = model.startChat();3 4 // Ilk mesaj: gorsel ile5 const imageData = fs.readFileSync('./app-screenshot.png').toString('base64');6 const response1 = await chat.sendMessage([7 'Bu uygulama ekran goruntusunu incele. Genel izlenimini paylas.',8 { inlineData: { data: imageData, mimeType: 'image/png' } },9 ]);10 console.log('Yanit 1:', response1.response.text());11 12 // Ikinci mesaj: detay sorusu (gorsel baglam korunuyor)13 const response2 = await chat.sendMessage(14 'Navigation yapisini iyilestirmek icin ne onerirsin?'15 );16 console.log('Yanit 2:', response2.response.text());17 18 // Ucuncu mesaj: yeni gorsel ekle19 const newImage = fs.readFileSync('./wireframe.png').toString('base64');20 const response3 = await chat.sendMessage([21 'Bu wireframe ile onceki tasarimi karsilastir. Hangisi kullanici icin 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 Gorsel 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 yazisinda cihaz uzerinde gorsel isleme kapasitesini incelemistim. Gemini ile bulut tarafinda cok daha guclu gorsel reasoning yapabilirsin — ikisini birlestirmek en iyi strateji.
8. Performance ve Optimizasyon
Multimodal islemlerin performansi dogrudan kullanici deneyimini etkiliyor. Buyuk dosyalar daha fazla token tuketiyor, daha uzun islem suresi gerektiriyor ve daha yuksek maliyet olusturuyor. Asagidaki optimizasyon stratejileri ile hem hiz hem maliyet acisindan ciddi iyilestirme saglayabilirsin.
Gorsel Optimizasyonu
Strateji | Etki | Uygulama |
|---|---|---|
**Boyut kucultme** | %60 token tasarruf | 1024px max kenar uzunlugu |
**JPEG sikistirma** | %30 boyut azalma | quality: 0.8 yeterli |
**Gereksiz gorsel atma** | %100 tasarruf | Sadece ilgili gorselleri gonder |
**Batch isleme** | %40 hiz artisi | Birden fazla gorseli tek istekte |
Gorsel optimizasyonunda en sik yapilan hata, kamera cozunurlugundeki gorseli dogrudan API'ye gondermek. Modern telefonlar 12-48 MP gorsel uretiyor ama Gemini icin 1024px kenar uzunlugu fazlasiyla yeterli. Client tarafinda gorseli kucultmek hem upload suresini hem de API maliyetini dramatik sekilde dusuruyor.
Video Optimizasyonu
typescript
1// Video suresi ve kaliteyi dengele2const optimizationConfig = {3 maxDuration: 120, // 2 dakika (uzun videolar icin clip)4 resolution: '720p', // 1080p gereksiz, 720p yeterli5 frameRate: 1, // 1 FPS yeterli (video anlama icin)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 sec, (2) **Toplanti Asistani** — Video kaydi + slaytlari birlestirerek aksiyon maddeleri cikar, (3) **Erisilebilirlik Denetcisi** — Ekran goruntusunden WCAG uyumluluk raporu olustur. Bu projelerin hepsi Gemini Flash ile ucretsiz katmanda prototiplenebilir.
Sonuc ve Oneriler
Gemini'nin multimodal yetenekleri, mobil ve web uygulamalarinda yepyeni kapilar aciyor. Gorsel anlama, video analizi, ses transkripsiyonu ve PDF isleme — bunlarin hepsi tek bir API uzerinden erisilebilir durumda.
Multimodal AI'nin gercek gucu, farkli veri tiplerini birlestirdiginde ortaya cikiyor. Bir kullanicinin gonderdigi fotografi analiz ederken ayni anda sesli aciklamasini dinlemek, veya bir PDF raporundaki grafikleri video sunumuyla eslestirmek — bu tur cross-modal senaryolar geleneksel yaklasimlarla cok zor ama Gemini ile tek bir API cagrisinda mumkun hale geliyor.
Onerilerim:
- Gorsel islerinde Flash modeli cok yeterli — Pro sadece karmasik reasoning icin
- Video isleme icin File API kullan, base64 gonderme
- Mobil uygulamalarda gorseli client'ta kucult, sonra API'ye gonder
- Multi-turn chat ile baglam koruyarak daha iyi sonuclar al
- WebSocket Real-Time ile streaming yanitlar sun
- Cursor AI IDE yazimda multimodal debugging orneklerini incelemistim — gorsel hata ayiklamada Gemini cok degerli
Multimodal AI, kullanici deneyimini bir ust seviyeye tasiyor. Simdi kodlamaya basla!

