← Back to list

Bölüm 1: Sesin Dijitale Aktarımı

Metni sese dönüştürme (TTS), ses tanıma (ASR) veya müzik oluşturmak gibi amaçlarla bir çoğumuz ses mimarisi teknolojilerini kullanıyoruz…

Muhammed Saban · 2026-02-17 17:28 · 0 claps · 5.8 min read
#quantization #aliasing #sample-rate #ses-işleme #audio-processing
Open on Medium ↗
Wiki topics: OPS · LLMOps & Inference 🎵 · Music & Audio

Bölüm 1: Sesin Dijitale Aktarımı

Metni sese dönüştürme (TTS), ses tanıma (ASR) veya müzik oluşturmak gibi amaçlarla bir çoğumuz ses mimarisi teknolojilerini kullanıyoruz. Bazılarımız proje geliştirmek için bazılarımız sadece yapay zeka ile sesli sohbet etmek için kullanıyor. Peki arka planda bu teknolojiler nasıl çalışıyor? Her bölüm ses mimarilerini katman katman ayırarak öğreneceğiz, bu bölüm de ise ses dalgalarının nasıl dijitalleştiğini inceleyeceğiz.

Örnekleme (Sampling)

Ses, doğası gereği süreklidir. Bir keman yayının titreşimi veya rüzgarın uğultusu, sonsuz sayıda zaman noktasında sonsuz sayıda değere sahiptir. Ancak bilgisayarların sonsuzluğu işleyecek kapasitesi yoktur; onlar kesiklidir.

Analog bir sinyali dijital bir dile çevirmek için, bu sürekli zaman akışını belirli aralıklarla durdurup o andaki değerini kaydetmemiz gerekir. İşte bu işleme Örnekleme (Sampling), elde edilen ham veriye ise teknik olarak PCM (Pulse Code Modulation) denir.

Bunu bir videonun kare hızı (FPS) gibi düşünebilirsiniz. Gerçek hayattaki hareket süreklidir, ancak kamera saniyede 60 kare fotoğraf çeker. Eğer kare hızı yeterince yüksekse, beynimiz bu ayrık fotoğrafları akıcı bir hareket olarak algılar. Ses dünyasında da kulağımızı kandırmak için aynısını yaparız.

Buradaki en kritik parametre Örnekleme Hızıdır (Sampling Rate).

  • fs: Saniyede kaç kez voltaj ölçümü yapıldığını ifade eder (Hertz cinsinden).
  • Örnek: 44.1 kHz, saniyede tam 44.100 adet nokta (sample) toplandığı anlamına gelir.

Ses için Örnekleme Hızı

Ses için Örnekleme Hızı

Burada bazı kodlar paylaşacağım, bu kodları çalıştırmanızı şiddetle tavsiye ederim çünkü pratik örneklerle ilerlemek bilgilerin kalıcı hale gelmesine yardımcı olacaktır hatta değişkenleri değiştirerek nasıl çıktılar alacağınızı gözlemleyebilirsiniz.

Python ile analog bir sinyali, bilgisayarın anlayacağı dijital hale getirebiliriz. Bunu bir “çizgi film” ya da “stop-motion video” mantığıyla düşünebilirsin. Gerçek hayatta zaman kesintisizdir ama bilgisayarda zamanı küçük karelere bölmek zorundayız. Aşağıda ki kodda 100 Hz değerinde bir sample rate ve 5 Hz değerinde frekansla bir sinüs dalgası oluşturduk. Eğer sample rate değerini 44.100 yapsaydık o zaman pürüzsüz bir çıktı alırdık ki bu değer bizim dinlediğimiz dijital içeriklerde kullanılan CD kalitesidir.

import numpy as np
import matplotlib.pyplot as plt

sample_rate = 100  
sure = 2           
frekans = 5        

t = np.linspace(0, sure, int(sure * sample_rate), endpoint=False)

sinyal = np.sin(2 * np.pi * frekans * t)

print(f"Toplam Örnek Sayısı: {len(sinyal)}")
print(f"İlk 10 örnek: {sinyal[:10]}")

plt.figure(figsize=(10, 4))
plt.plot(t, sinyal, 'o-') 
plt.title(f"Sample Rate: {sample_rate} Hz, Frekans: {frekans} Hz")
plt.xlabel("Zaman (saniye)")
plt.ylabel("Genlik")
plt.grid(True)
plt.show()

Nyquist-Shannon Örnekleme Teoremi

Harry Nyquist ve Claude Shannon, dijital sinyal işlemenin anayasasını yazmıştır:

“Eğer sürekli bir sinyali, veri kaybı olmadan dijitalleştirmek ve sonra tekrar kusursuzca analoğa çevirmek istiyorsanız; örnekleme hızınız, sinyalin içindeki en yüksek frekans bileşeninin en az iki katı olmalıdır.”

Burada örnekleme hızımızın yarısı, bizim için Nyquist Frekansı (Nyquist Frequency) olarak bilinir. Bu, sistemin tanımlayabileceği “tavan” frekanstır. Bu tavanın üzerindeki her frekans, sistem tarafından yanlış yorumlanır ve örtüşmeye dönüşür.

Nyquist-Shannon Sinyal Örnekleme Teoremi

Nyquist-Shannon Sinyal Örnekleme Teoremi

Neden 44.1 kHz?

Bu sayı rastgele seçilmemiştir. İki temel sebebi vardır:

  1. Biyolojik Sınır: İnsan kulağının duyabileceği frekans aralığı 20 Hz ile 20 kHz arasındadır. Nyquist teoremine göre, 20 kHz’lik en tiz sesi dijital ortamda kaybetmemek için en az 40 kHz ile örnekleme yapmamız şarttır
  2. Mühendislik Payı: Teoride 40 kHz yeterlidir, ancak pratikte mükemmel filtreler yoktur. 20 kHz’in üzerindeki sinyalleri kesmek için kullanılan analog filtrelerin yumuşak bir geçiş yapabilmesi için 4.1 kHz’lik bir tampon bölge bırakılmıştır.

Modern Modellerde Örnekleme Hızı

Modern TTS (Text-to-Speech) ve ASR (Automatic Speech Recognition) modellerinde genellikle 16 kHz veya 22.05 kHz örnekleme hızlarını görürsünüz. Neden daha düşük?

Çünkü insan konuşma sesi enerjisinin büyük kısmını 4 kHz — 8 kHz aralığında taşır.

  • Eğer fmaksimum=8 kHz kabul edersek, Nyquist’e göre 16 kHz örnekleme hızı konuşmayı anlamak için yeterlidir.
  • Veri boyutunu küçültmek, Transformer modellerinin daha hızlı eğitilmesini ve daha az bellek tüketmesini sağlar.

Bu yüzden 44.1 kHz müzik için standartken, yapay zeka dünyasında verimlilik adına Nyquist sınırları tercih edilir.

Görünmez Tehlike: Örtüşme (Alias)

sinyalin frekansı örnekleme hızımızın yarısından daha yüksek olduğunda Yüksek frekanslı bir sinyal, yetersiz örnekleme sebebiyle sanki daha düşük frekanslı bir sinyalmiş gibi dijital dünyaya giriş yapar. Bu, sisteme sızan bir “ajan” gibidir; bir kez dijitalleştiğinde, artık o sinyalin gerçek mi yoksa bir “alias” (kopya) mı olduğunu ayırt etmenin hiçbir yolu yoktur.

Araba Tekerleği Efekti

Bunu en iyi aksiyon filmlerindeki araba sahnelerinde görürüz. Araba hızlandıkça tekerlekler önce doğru yöne döner, sonra yavaşlar ve bir noktada geriye doğru dönüyormuş gibi görünür.

Oysa tekerlek fiziksel olarak hala ileri ve çok hızlı dönmektedir. Ancak kameranın saniyedeki kare hızı , tekerleğin dönüş hızına yetişemediği için gözümüzü yanıltan bu optik illüzyon ortaya çıkar.

Noktaları Birleştirmek

Bir sinüs dalgası düşünün. Eğer bu dalgadan yeterince sık örnek almazsanız (örneğin tepe ve dip noktalarını kaçırırsanız), elinizdeki seyrek noktaları birleştirdiğinizde ortaya tamamen farklı, daha geniş (düşük frekanslı) bir dalga çıkar.

Bilgisayar sadece elindeki noktalara bakar. O noktaların aslında çok hızlı titreşen bir dalgadan geldiğini bilmez. O noktaları birleştiren en basit (en düşük frekanslı) yolu çizer. İşte bu “uydurma” dalga, Alias Sinyalidir.

Frekans Katlanması (Frequency Folding)

Aliasing rastgele bir gürültü değildir; matematiksel olarak tahmin edilebilir bir yansımadır. Buna Katlanma (Folding) denir.

Nyquist Frekansı bir ayna gibidir. Eğer bu sınıra bir frekans çarparsa, geri seker.

  • Örnek: Örnekleme hızımız 40 kHz olsun. Nyquist sınırımız 20 kHz’dir.
  • Eğer sisteme 22 kHz’lik bir sinyal girerse ne olur?
  • Sistem bunu 20 kHz’in üzerinde göremez. 2 kHz fazlalık, sınırdan içeriye doğru katlanır

Sisteme giren 22 kHz’lik ses, hoparlörden 18 kHz olarak çıkar. Bu, sesin karakterini bozar, metalik ve uyumsuz (inharmonic) seslere yol açar.

Çözüm: Anti-Aliasing Filtre

Aliasing dijital dünyada oluştuktan sonra onu temizlemek imkansızdır. Çünkü “gerçek” 18 kHz ile “sahte” (alias) 18 kHz artık ayırt edilemez.

Bu yüzden sorun daha dijitalleşmeden önce, analog dünyada çözülmelidir.

ADC (Analog-to-Digital Converter) çipinin hemen girişinde bir Alçak Geçiren Filtre bulunur. Bu analog devre:

Örnekleme hızınızın yarısından (Nyquist Limiti) yüksek olan frekansları tespit eder, bunları içeri almaz.

Bit Derinliği ve Niceleme (Quantization)

Örnekleme (Sampling) ile zaman eksenini (x-ekseni) dilimledik. Ancak henüz işimiz bitmedi. Şimdi elimizdeki her bir zaman dilimindeki voltaj seviyesini (y-ekseni) bilgisayarın anlayacağı bir sayıya çevirmemiz gerekiyor.

Analog dünyada voltaj süreklidir; bir sinyal 0.1 Volt olabilir, 0.1000001 Volt da olabilir. Sonsuz hassasiyete sahiptir. Dijital dünyada ise elimizde sınırlı sayıda “basamak” vardır. Sonsuz hassasiyetteki bu voltaj değerini, elimizdeki en yakın basamağa zorla oturtma işlemine Niceleme (Quantization) denir.

Bit Derinliği (Bit Depth)

Bu basamakların sayısı, Bit Derinliği ile belirlenir. Her bir bit, çözünürlüğü basamak sayısını iki katına çıkarır.

  • 8-bit (Retro Ses): 2⁸ = 256 seviye. (Eski oyun konsolları, metalik ve gürültülü ses.)
  • 16-bit (CD Kalitesi): 2¹⁶ = 65,536 seviye. (Standart müzik dinleme.)
  • 24-bit (Stüdyo Kalitesi): 2²⁴ = 16.7 milyon seviye. (Profesyonel kayıt.)

Basamak sayısı ne kadar fazlaysa, analog dalganın kıvrımlarını o kadar hassas taklit edebiliriz. 24-bit bir ses, 16-bit sese göre “daha gürültülü” değil, “daha sessizdir” (daha düşük dip gürültüsüne sahiptir).

Niceleme Hatası (Quantization Error)

Diyelim ki sisteminiz sadece tam sayıları kaydedebiliyor (1, 2, 3…)

Analog sinyalden gelen voltaj değeri ise: 2.6 Volt.

Bilgisayar bunu “3” olarak kaydeder.

Aradaki 0.4 Volt nereye gitti?

Bu yuvarlama hatası, rastgele bir dağılıma sahiptir. Sinyal işleme dünyasında rastgelelik = Gürültü (Noise) demektir. İşte dijital seslerde duyduğumuz o hafif tıslama, aslında kaybettiğimiz bu küsuratlardır. Buna Niceleme Gürültüsü (Quantization Noise) denir.

Niceleme Hatası

Niceleme Hatası

6 dB Kuralı ve Dinamik Aralık

Mühendislikte altın bir kural vardır: Her 1 bitlik artış, dinamik aralığı yaklaşık 6 dB artırır.

  • 16-bit: 16 x 6 = 96 dB
  • 24-bit: 24 x 6 = 144 dB

96 dB, en sessiz ses ile en gürültülü ses arasındaki farktır. CD kalitesindeki bir müzikte, sessiz bölümlerdeki dip gürültüsü -96 dB seviyesindedir ki bu insan kulağı için neredeyse tam sessizliktir.

Neden 32-bit Float?

Ses dosyalarını diskte saklarken genellikle 16-bit veya 24-bit tamsayı (Integer — PCM) formatında tutarız çünkü yer tasarrufu sağlar. Ancak bir Transformer veya CNN modelini eğitirken işler değişir.

Model eğitimlerinde (PyTorch/TensorFlow) ses verisini genellikle 32-bit Float formatına dönüştürürüz.

Neden?

  1. Gradyan Hassasiyeti: Sinir ağları, ağırlıklarını güncellerken çok küçük sayılarla (0.00001 gibi) çarpma işlemleri yapar. Eğer tamsayı kullanırsak, bu küçük değişimler “0”a yuvarlanıp kaybolur. Buna Vanishing Gradient (Kaybolan Gradyan) problemi denir. Float, bu mikro değişimleri korur.
  2. Normalizasyon: Modeller genellikle -1.0 ile +1.0 arasındaki değerlerle çalışmayı sever. 16-bit bir sesi (0 ile 65535 arası) float’a çevirip normalize etmek, modelin matematiksel stabilitesini sağlar.

Bu yüzden, ses mühendisliğinde Depolama için Integer, İşleme (Processing & AI) için Float kullanılır.

İlk bölümde ses dalgalarının kullanabilmemiz için nasıl dijitalleştiğini temel olarak anlatmaya çalıştım ama bunlar sesi işleyip kontrol etmemiz için yeterli değil, sonra ki bölüm de Fourier Dönüşümü’nü (FFT) ve Spektrogramları detaylı olarak inceleyeceğiz. Okuduğunuz için teşekkür ederim.


메타데이터
post_id
1ba5d5abc453
slug
bölüm-1-dijital-sesin-anatomisi-1ba5d5abc453
url
https://medium.com/@muhammedsaban/b%C3%B6l%C3%BCm-1-dijital-sesin-anatomisi-1ba5d5abc453
canonical_url
https://medium.com/@muhammedsaban/b%C3%B6l%C3%BCm-1-dijital-sesin-anatomisi-1ba5d5abc453
author_url
https://medium.com/@muhammedsaban
status
ok
fetched_at
2026-08-24 20:24:03