Tüm Yazılar
KategoriAI
Okuma Süresi
20 dk okuma
Yayın Tarihi
...
Kelime Sayısı
2.474kelime

Kahveni hazırla - bu içerikli bir makale!

Gemini ile gorsel reasoning, video anlama, ses transkripsiyonu ve PDF analizi. Multimodal AI uygulamalari gelistirmek icin adim adim kapsamli teknik rehber.

Gemini Multimodal: Görsel + Ses + Video Anlama

# 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


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 okuma
8async 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 ornekleri
27const 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 analizi
21const 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

  1. UI/UX Analizi: Ekran goruntusunden erisilebilirlik sorunlarini tespit etme
  2. OCR ve Veri Cikarma: Fatura, fiis, kartvizit tarama
  3. Urun Tespiti: E-ticaret icin gorsel arama
  4. Medikal Goruntu: Radyoloji raporlarina yardimci analiz
  5. 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 yukle
6async 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 bekle
13 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 analiz
27async 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// Kullanim
45const 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 olustur
7 2. Konusmacilari ayirt et (Konusmaci 1, Konusmaci 2...)
8 3. Her konusmacinin duygusal tonunu belirle
9 4. Ana konulari ve alinan kararlari ozetle
10 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 et
2const 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// Kullanim
19const 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 ile
5 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 ekle
19 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 GoogleGenerativeAI
2import UIKit
3 
4actor MultimodalService {
5 private let model: GenerativeModel
6 
7 init() {
8 self.model = GenerativeModel(
9 name: "gemini-2.5-flash",
10 apiKey: Configuration.geminiAPIKey
11 )
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.imageConversionFailed
17 }
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 in
29 Task {
30 guard let jpegData = image.jpegData(compressionQuality: 0.8) else {
31 continuation.finish(throwing: MultimodalError.imageConversionFailed)
32 return
33 }
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 dengele
2const optimizationConfig = {
3 maxDuration: 120, // 2 dakika (uzun videolar icin clip)
4 resolution: '720p', // 1080p gereksiz, 720p yeterli
5 frameRate: 1, // 1 FPS yeterli (video anlama icin)
6 audioSampleRate: 16000 // 16kHz ses kalitesi yeterli
7};

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!

Etiketler

#AI#Gemini#Multimodal#Computer Vision#NLP#Google#2026
Muhittin Çamdalı

Muhittin Çamdalı

Senior iOS Developer

12+ yıllık deneyime sahip iOS Developer. Swift, SwiftUI ve modern iOS mimarileri konusunda uzman. Apple platformlarında performanslı ve kullanıcı dostu uygulamalar geliştiriyorum.

iOS Geliştirme Haberleri

Haftalık Swift tips, SwiftUI tricks ve iOS best practices. Spam yok, sadece değerli içerik.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.

Paylaş

Bunu da begenebilirsiniz