İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • Geliştirici Araçları
  • Foundry Local ve C# ile Canlı Konuşma-Metin Dönüşümü
Bulut Altyapı Geliştirici Araçları C# Canlı Transkripsiyon, Foundry Local, NAudio, PCM Ses Akışı, Windows ML Aşkın KILIÇ 05/08/2026 0 Yorumlar

Foundry Local ve C# ile Canlı Konuşma-Metin Dönüşümü

Foundry Local ve C# ile Canlı Konuşma-Metin Dönüşümü
📑 İçindekiler
  1. Uygulamanın genel akışı
  2. Soyutlama nerede biter, sağlayıcıya özel API nerede başlar?
  3. Modeli Foundry Local'a yönetteyin
  4. Canlı transkripsiyon oturumu oluşturmak
  5. Sesin akıtılması: backpressure neden önemli?
  6. Ara ve nihai sonuçları okumak
  7. Kaynak temizliği ve yaşam döngüsü
  8. Yerelde konuşma-metin: ne zaman anlamlı?
  9. İlgili İçerikler
  10. Kaynaklar ve İleri Okuma
⏱️ 4 dk okuma📅 5 Ağustos 2026

Yerel yapay zeka denilince akla önce sohbet uygulamaları gelir. Oysa Foundry Local yalnızca küçük dil modellerini çalıştırmak için değil, konuşma tanıma gibi özelleşmiş iş yükleri için de kullanılabilen bir yerel çalışma zamanı. Bruno Capuano imzalı.NET Blog yazısı bu senaryoyu somutlaştıran küçük bir C# konsol uygulamasını adım adım anlatıyor: mikrofondan gelen sesi gerçek zamanlı olarak, tamamen cihazda transkribe eden bir uygulama.

Bu yazıda söz konusu örneğin mimarisini, kullandığı API’leri ve yerel konuşma-metin dönüşümünü.NET tarafında pratik kılan noktaları özetliyorum.

Uygulamanın genel akışı

Örnek uygulama.NET 10 hedefliyor ve Windows’a özgü bir senaryo üzerine kurulu. Microsoft.AI.Foundry.Local.WinML, Windows ML üzerinde çalışıyor; ses yakalama tarafında ise NAudio.WaveInEvent Windows ses API’lerini kullanıyor. Yani örnek yalnızca Windows’ta koşuyor.

Uygulamanın işleyişi sade:

  • Foundry Local başlatılır ve katalogdan bir konuşma modeli çözümlenir.
  • Model indirilir ve belleğe yüklenir.
  • Canlı bir transkripsiyon oturumu oluşturulur.
  • Mikrofon sesi 16 kHz, 16 bit, tek kanal PCM formatında yakalanır.
  • Ses akışı modele beslenirken ara ve nihai sonuçlar ekrana yazdırılır.

Kullanılan model, Foundry Local kataloğundaki nemotron-speech-streaming-en-0.6b; İngilizce akış tabanlı bir ASR modeli.

Soyutlama nerede biter, sağlayıcıya özel API nerede başlar?

Yazının en dikkat çekici mimari mesajı burada. Sohbet senaryolarında Microsoft.Extensions.AI paketindeki IChatClient soyutlaması, farklı sağlayıcılar arasında geçiş yapabilen taşınabilir kod yazmayı mümkün kılıyor. Ancak canlı ses akışı için kullanılan AudioClient, Microsoft.Extensions.AI soyutlamasının bir parçası değil; doğrudan yerel Microsoft.AI.Foundry.Local SDK’sına ait.

Sebebi net: canlı transkripsiyon oturumları, ham PCM akışı ve ara sonuçlar Foundry Local’a özgü yetenekler. Yazının önerdiği pratik şu: soyutlama senaryoya uyduğunda Microsoft.Extensions.AI kullanın, özelleşmiş bir sağlayıcı yeteneğine ihtiyaç duyduğunuzda sağlayıcı SDK’sına doğrudan başvurun. İki yaklaşım birbirini tamamlıyor.

Modeli Foundry Local’a yönetteyin

Örneğin en rahatlatıcı yani, model yaşam döngüsünün büyük ölçüde Foundry Local tarafından üstlenilmesi. Uygulama modeli takma adıyla (alias) istiyor; uygun varyantı seçmek, donanıma göre execution provider’ları indirmek, dosyaları önbelleğe almak ve çıkarım için yüklemek Foundry Local’ın işi.

using Microsoft.AI.Foundry.Local;
using Microsoft.Extensions.Logging.Abstractions;
using NAudio.Wave;
using System.Threading.Channels;
var config = new Configuration
{
AppName = "dotnet-local-ai-live-transcription",
LogLevel = LogLevel.Information
};
await FoundryLocalManager.CreateAsync(config, NullLogger.Instance);
using var manager = FoundryLocalManager.Instance;
await manager.DownloadAndRegisterEpsAsync();
var catalog = await manager.GetCatalogAsync();
var model = await catalog.GetModelAsync(
"nemotron-speech-streaming-en-0.6b")
? throw new InvalidOperationException("Speech model not found.");
await model.DownloadAsync(progress =>
Console.Write($"\rDownloading model: {progress:F2}%"));
await model.LoadAsync();

İlk çalıştırmada model ve gerekli execution provider’lar indiriliyor. Sonraki çalıştırmalarda önbellekten yüklendiği için ek indirmeye gerek kalmıyor. Yazıda vurgulanan bir nokta da şu: modeli Hugging Face gibi kaynaklardan ayrı ayrı indirmek yerine katalog üzerinden model.DownloadAsync() ile almak öneriliyor, çünkü katalog metadata’sı ve dosya yerleşimi Foundry Local’a ait.

Canlı transkripsiyon oturumu oluşturmak

Model yüklendikten sonra AudioClient üzerinden akış oturumu açılıyor:

var audioClient = await model.GetAudioClientAsync();
using var session = audioClient.CreateLiveTranscriptionSession();
session.Settings.SampleRate = 16000;
session.Settings.Channels = 1;
session.Settings.Language = "en";
await session.StartAsync();

Bu, tamamlanmış bir ses dosyasını toplu şekilde transkribe eden bir API değil. Oturum açık kalıyor ve kullanıcı konuştukça ham PCM verisi kabul ediyor.

Sesin akıtılması: backpressure neden önemli?

NAudio ile mikrofon yakalama işlemi senkron bir geri çağırma modeliyle çalışıyor; buna karşın session.AppendAsync() asenkron. İki modelin uyumlu şekilde birlikte çalışabilmesi için örnek, sınırlı kapasiteli bir Channel<byte[]> kullanıyor. Kanal dolduğunda en eski parçalar düşürülüyor; böylece sınırsız sayıda “fire-and-forget” işinin oluşmasının önüne geçiliyor.

var audioChannel = Channel.CreateBounded<byte[]>(new BoundedChannelOptions(50)
{
FullMode = BoundedChannelFullMode.DropOldest
});
var appendTask = Task.Run(async () =>
{
await foreach (var chunk in audioChannel.Reader.ReadAllAsync())
{
await session.AppendAsync(chunk);
}
});

Ara ve nihai sonuçları okumak

Transkripsiyon sonuçları asenkron bir akıştan geliyor. Yazının vurguladığı önemli detay: bu akışı, AppendAsync()‘i çağıran görevden farklı bir görevden okumak gerekiyor. Yoksa sonuçları okumak ses yakalamayı bloklayabilir.

await foreach (var result in session.GetStream())
{
var text = result.Content?[0]?.Text;
if (result.IsFinal)
{
Console.WriteLine();
Console.WriteLine($"[FINAL] {text}");
}
else if (!string.IsNullOrEmpty(text))
{
Console.Write(text);
}
}

Ara sonuçlar kullanıcı konuşurken anında görüntülenebiliyor. Model bir söylemi tamamladığında ise nihai sonucu yayınlıyor. Bu yapı canlı altyazı, toplantı notu, sesle kontrol edilen masaüstü uygulamaları veya sınırlı bağlantıya sahip uç senaryolar için doğrudan uygun.

Kaynak temizliği ve yaşam döngüsü

Örnekte kaynak temizliği bir istisna durumunda da çalışacak biçimde koruma altına alınmış. Sadeleştirilmiş yaşam döngüsü şöyle:

await model.LoadAsync();
try
{
using var session = audioClient.CreateLiveTranscriptionSession();
await session.StartAsync();
try
{
using var waveIn = new WaveInEvent();
// Mikrofon sesini yakala ve akıt.
}
finally
{
await session.StopAsync();
}
}
finally
{
await model.UnloadAsync();
}

Uygulama düzgün kapanış için Enter tuşunu kullanıyor. Ctrl+C desteği isteyen bir komut satırı uygulamasında Console.CancelKeyPress yakalanmalı, aktif iş iptal edilmeli ve aynı finally bloğunun tamamlanması sağlanmalı. Örnek ayrıca RemoveFromCacheAsync() ile indirilen modelin önbellekten açıkça kaldırılabildiğini de gösteriyor; normal senaryoda modeli önbellekte tutmak yeniden indirmeyi önlüyor.

Yerelde konuşma-metin: ne zaman anlamlı?

Yazının altını çizdiği pratik kazanımlar şunlar:

  • Mikrofon sesi cihazda kalıyor.
  • Bulut AI kaynağı veya API anahtarı gerekmiyor.
  • İlk model indirmesinden sonra çıkarım için ağ turuna ihtiyaç yok.
  • Akış modeli, Foundry Local’ın seçtiği CPU varyantı üzerinden çalışabiliyor.

Bunlar olurken uygulama tarafı hala tanıdık C# desenlerinden yararlanıyor: async/await, asenkron akışlar, kanallar ve çeşitli SDK istemcileri. Yerel çıkarım her senaryonun cevabı değil; büyük modeller, merkezi yönetim ve elastik ölçek gibi ihtiyaçlar için bulut hala önemli. Ama gizlilik hassasiyeti yüksek ses verisi, çevrimdışı deneyimler ve cihaz üzerinde çalışması gereken uygulamalar için yerel seçenek somut bir değer sunuyor.

İlgili İçerikler

  • AT&T ve Microsoft Foundry ile Trilyon Token Ölçeğinde AI
  • Discovery to Execution: Foundry’de Ajanları Toolbox ile Ölçeklemek
  • Koddan Buluta: azd ile AI Ajanınızı Microsoft Foundry’ye Dakikalar İçinde Taşıyın

Kaynaklar ve İleri Okuma

  • youtube.com
  • devblogs.microsoft.com
  • learn.microsoft.com
  • devblogs.microsoft.com
  • Orijinal yazı: Beyond Chat: live Speech-to-Text with Foundry Local and C# (Bruno Capuano,.NET Blog)
  • Tam çalışan C# örneği (GitHub)
  • Foundry Local ile canlı ses transkripsiyonu (Microsoft Learn)
  • Foundry Local dokümantasyonu
  • Önceki yazı: GPT-OSS, C# ve Ollama
  • .NET & AI Community Standup
  • Generative AI for Beginners.NET
  • Foundry Local 1.1: Mikrofondan Canlı Transkripsiyon Geldi
  • Foundry Local GA Oldu: Bulut Olmadan Yerel AI
  • Foundry Local ile Uçta Yapay Zekâ: Bulut Dışı Hızın Gerçek Yüzü
🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ
Aşkın KILIÇYazar

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

İlgili Yazılar

GitHub’da “Low Quality” Etiketi: Moderasyonda Küçük Ama Yerinde Bir Hamle
GitHub’da “Low Quality” Etiketi: Moderasyonda Küçük Ama Yerinde Bir Hamle10 Nis 2026
Kubernetes’te AI Dönemi: Microsoft’un KubeCon 2026 Hamlesi
Kubernetes’te AI Dönemi: Microsoft’un KubeCon 2026 Hamlesi30 Mar 2026
Copilot Usage Metrics API ile Kullanıcı Bazlı AI Kredisi
Copilot Usage Metrics API ile Kullanıcı Bazlı AI Kredisi19 Haz 2026
MSVC Build Tools Haziran 2026 Önizleme: Sessiz Ama Derin İyileştirmeler
MSVC Build Tools Haziran 2026 Önizleme: Sessiz Ama Derin İyileştirmeler15 Haz 2026

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

YouTube GitHub

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket C# Canlı Transkripsiyon Foundry Local NAudio PCM Ses Akışı Windows ML
Önceki yazı

NuGet API Anahtarı Süresi Kısalıyor: Yeni Güvenlik Planı

İlginizi Çekebilir

NuGet API Anahtarı Süresi Kısalıyor: Yeni Güvenlik Planı
Aşkın KILIÇ 0

NuGet API Anahtarı Süresi Kısalıyor: Yeni Güvenlik Planı

04/08/2026
Dependabot Pull Request Dal Adlarını Özelleştirme
Aşkın KILIÇ 0

Dependabot Pull Request Dal Adlarını Özelleştirme

04/08/2026
Customize the reasoning level for Copilot cloud agent
Aşkın KILIÇ 0

Customize the reasoning level for Copilot cloud agent

04/08/2026

Yorum gönder Yanıtı iptal et

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • Foundry Local ve C# ile Canlı Konuşma-Metin Dönüşümü
    05/08/2026 Foundry Local ve C# ile Canlı Konuşma-Metin Dönüşümü
  • NuGet API Anahtarı Süresi Kısalıyor: Yeni Güvenlik Planı
    04/08/2026 NuGet API Anahtarı Süresi Kısalıyor: Yeni Güvenlik Planı
  • Dependabot Pull Request Dal Adlarını Özelleştirme
    04/08/2026 Dependabot Pull Request Dal Adlarını Özelleştirme
  • Customize the reasoning level for Copilot cloud agent
    04/08/2026 Customize the reasoning level for Copilot cloud agent
  • Gateway API v1.6: TCPRoute ve UDPRoute Standard Oldu
    04/08/2026 Gateway API v1.6: TCPRoute ve UDPRoute Standard Oldu
  • Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
    11/04/2026 Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
  • Azure MCP Server 2.0: Kendi Sunucunuzda Ajan Otomasyonu
    10/04/2026 Azure MCP Server 2.0: Kendi Sunucunuzda Ajan Otomasyonu
  • GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
    03/04/2026 GitHub Copilot Cloud Agent İçin Runner Kontrolü: Kurumsal Düzen
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
    07/04/2026 GitHub Code Scanning’de Toplu Düzeltme: PR’lar Hızlandı
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

SİZİN İÇİN DERLEDİK

Foundry Local ve C# ile Canlı Konuşma-Metin Dönüşümü
Bulut Altyapı Geliştirici Araçları

Foundry Local ve C# ile Canlı Konuşma-Metin Dönüşümü

05/08/2026 Aşkın KILIÇ
NuGet API Anahtarı Süresi Kısalıyor: Yeni Güvenlik Planı
Bulut Altyapı Güvenlik & Kimlik

NuGet API Anahtarı Süresi Kısalıyor: Yeni Güvenlik Planı

04/08/2026 Aşkın KILIÇ
Dependabot Pull Request Dal Adlarını Özelleştirme
Bulut Altyapı Geliştirici Araçları Kurumsal Teknoloji

Dependabot Pull Request Dal Adlarını Özelleştirme

04/08/2026 Aşkın KILIÇ
Customize the reasoning level for Copilot cloud agent
Bulut Altyapı Yapay Zeka

Customize the reasoning level for Copilot cloud agent

04/08/2026 Aşkın KILIÇ
Gateway API v1.6: TCPRoute ve UDPRoute Standard Oldu
Bulut Altyapı Geliştirici Araçları

Gateway API v1.6: TCPRoute ve UDPRoute Standard Oldu

04/08/2026 Aşkın KILIÇ
Disrupting supply chain attacks on npm and GitHub Actions
Bulut Altyapı DevOps Güvenlik & Kimlik

Disrupting supply chain attacks on npm and GitHub Actions

03/08/2026 Aşkın KILIÇ
VS Code Temmuz 2026: Copilot Ajanları ve Çoklu Sohbet
Geliştirici Araçları Güvenlik & Kimlik Microsoft Azure Yapay Zeka

VS Code Temmuz 2026: Copilot Ajanları ve Çoklu Sohbet

03/08/2026 Aşkın KILIÇ
Visual Studio'da GitHub Copilot: Temmuz 2026 Güncellemesi
Geliştirici Araçları Microsoft Azure Yapay Zeka

Visual Studio’da GitHub Copilot: Temmuz 2026 Güncellemesi

03/08/2026 Aşkın KILIÇ
SQL MCP Server ile Kullanıcı Kimliğini Koruyan Denetim
Bulut Altyapı Güvenlik & Kimlik Veri & Analitik

SQL MCP Server ile Kullanıcı Kimliğini Koruyan Denetim

03/08/2026 Aşkın KILIÇ
az webapp deploy'da Zenginleştirilmiş Hata Çıktıları
Bulut Altyapı Geliştirici Araçları Microsoft Azure

az webapp deploy’da Zenginleştirilmiş Hata Çıktıları

03/08/2026 Aşkın KILIÇ
GitHub Stacked Pull Requests Public Preview'da
Geliştirici Araçları Kurumsal Teknoloji

GitHub Stacked Pull Requests Public Preview’da

02/08/2026 Aşkın KILIÇ
GitHub Copilot App'te Stacked Sessions ve Stacked PR'lar
Bulut Altyapı Geliştirici Araçları Yapay Zeka

GitHub Copilot App’te Stacked Sessions ve Stacked PR’lar

02/08/2026 Aşkın KILIÇ

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL bulut bilişim C++ CI/CD copilot Copilot CLI DevOps DevSecOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu Microsoft Agent Framework Microsoft Azure Microsoft Foundry MSVC otomasyon performans Pull Request Python RAG SEO uyumlu verimlilik veri yönetimi Visual Studio VS Code yapay zeka yapay zeka ajanları Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 339 yazı 🏗️ Bulut Altyapı 280 yazı 🤖 Yapay Zeka 240 yazı 🔧 DevOps 198 yazı ☁️ Microsoft Azure 186 yazı 🔒 Güvenlik & Kimlik 161 yazı 🏢 Kurumsal Teknoloji 65 yazı 📊 Veri & Analitik 57 yazı 🐳 Konteyner & Kubernetes 47 yazı 📧 Microsoft 365 21 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← NuGet API Anahtarı Süresi Kısa...
    →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS