top of page

Ses Kaydının Gizli Dünyası - Yazılım


Ses Kaydının Gizli Dünyası - Yazılım

Ses kaydı, çağımızın teknolojik gelişmeleriyle birlikte dijital bir dönüşüm yaşamıştır. Eski zamanlarda, ses kayıtları CD'ler gibi fiziksel ortamlara kaydedilirken, bugün akıllı telefonlar gibi cihazlarda dijital olarak saklanmaktadır.

Ses kaydı, ses dalgalarının özel bir sayısal formata dönüştürülerek dijital belleğe kaydedilmesi işlemidir. Genellikle bu işlem için "Pulse Code Modulation (PCM)" adı verilen bir yöntem kullanılır.


"Pulse Code Modulation" diğer değişle "Darbe Kodu Modülasyonu" ve Demodülasyonu Nedir?


Darbe kodu modülasyonu, bir analog sinyali dijital bir sinyale dönüştürmek ve böylece değiştirilmiş bir analog sinyalin dijital iletişim ağı üzerinden iletilmesini sağlamak için kullanılan bir yöntemdir . PCM ikili formda olduğundan yalnızca iki olası durum yüksek ve düşük olacaktır (0 ve 1). Analog sinyalimizi demodülasyonla da geri alabiliriz. Darbe Kodu Modülasyonu işlemi, Örnekleme, Niceleme ve Kodlama olmak üzere üç adımda gerçekleştirilir. Diferansiyel darbe kodu modülasyonu (DPCM) ve uyarlanabilir diferansiyel darbe kodu modülasyonu (ADPCM) gibi iki spesifik darbe kodu modülasyonu türü vardır.


PCM, ses dalgalarının sürekli analog dalga formundan, kesikli bir sayısal formata çevrilmesini sağlar. Bu yöntem, ses kayıtları, telekomünikasyon ve dijital ses işleme gibi birçok uygulamada yaygın olarak kullanılır.


Konuştuğumuzda veya her hangi bir ses çıkardığımızda bunun ses dalgası Görsel[1] şeklinde yayıldığını biliyoruz.


ses dalgası
Görsel[1] - Ses Dalgası

Elektronik Cihazlarda Ses Kaydı: Sayı Sistemlerinin Rolü


Ses kaydı, elektronik cihazlarda sesi dijital formatta saklamak ve tekrar çalmak için kullanılan temel bir teknolojidir. Bu teknoloji sayesinde, sesleri kaydedebilir, saklayabilir ve kusursuz bir şekilde yeniden dinleyebiliriz. Ancak, bu işlem nasıl olur ve ses dalgaları nasıl sayılara dönüştürülüp belleğe Görsel[2] kaydedilir?


bellek kayıt
Görsel[2] - Bellek ve Kayıt

Ses kaydının temelini, sayı sistemleri oluşturur. Bilgisayarlar ve diğer elektronik cihazlar, ikili sayı sistemi (binary) temelinde çalışırlar ve ses kaydı da bu sisteme dayanır. İkili sayı sistemi, yalnızca iki rakam içerir: 0 ve 1. Her bir sayı, bu iki rakamın bir kombinasyonuyla temsil edilir.


Örneğin, günlük hayatta kullandığımız "1" rakamı ikili sayı sisteminde "0001" olarak temsil edilir. Benzer şekilde, "2" rakamı "0010," "6" rakamı ise "0110" gibi bir dizi "0" ve "1" ile ifade edilir. Bu ikili sayılar, bilgisayarların belleğine (hafızasına) kaydedilir.

Ses kaydı işlemi sırasında, analog ses dalgaları önce belirli aralıklarla örneklere bölünür.

Analog signal ve Discrete Time Signal
Görsel[3]

Discrete Time Signal - Görsel[3], bir işaretin belirli zaman aralıklarında örneklenmiş ve sayısal değerlerle temsil edildiği bir tür işarettir. İkili sayı sistemi (binary) veya ondalık sayı sistemi (decimal) gibi bir sayı sistemi kullanılarak temsil edilir. Bu tür işaretler, genellikle bilgisayarlar ve dijital sinyal işleme sistemleri tarafından işlenebilen dijital sinyallerdir.


ses dalgası ve ikili sayı sistemi
Görsel[4] - Ses Dalgası ve İkili Sayı Sistemi

Yukarıda ki örnekte olduğu gibi 
000 = 0,
001 = 1,
010 = 2,
011 = 3,
100 = 4,
...
şeklinde gidiyor. Bunlar bilgisayarda ilgili yerlere daha kompleks ve düzenli biçimde kayıt ediliyor. Ardından dinlenileceği vakit örnek ilgili çıktı verisi [Hoparlör] bu sinyalleri ilgili frekanslarda çalıştırıyor yani aslında sesimizin detaylı haritasını kaydetmiş oluyoruz ve sonra o haritayı bir coğrafyacı [Hoparlör] okuyor. 


Bu örnekler, analog sesin belli bir zaman dilimindeki yükseklik (genlik) değerlerini temsil eder. Her bir örnek, ikili sayı sistemi kullanılarak dijital bir değere dönüştürülür. Örnekleme hızı (sampling rate) ve bit derinliği (bit depth) gibi parametreler bu dönüşümün kalitesini belirler. Daha yüksek örnekleme hızı ve bit derinliği, daha yüksek ses kalitesi anlamına gelir.

Dönüştürülen bu dijital değerler, sayısal kodlama yöntemleri kullanılarak temsil edilir. Bu kodlama, ses dalgalarının yükseklik ve frekans değişikliklerini ifade eden bir sayısal formda saklanmasını sağlar.


analogic signal



Sonuç olarak, elektronik cihazlar ses kaydı yaparken analog ses dalgalarını ikili sayı sistemi kullanılarak Görsel[3] - Görsel[4] dijital formatta saklarlar. Bu sayılar, bilgisayar belleği içinde muhafaza edilir Görsel[2] ve daha sonra ses çalma cihazları veya hoparlörler Görsel[5] tarafından alınıp ses dalgalarına dönüştürülerek kusursuza yakın bir şekilde tekrar dinlenir. Bu sayısal işlem sayesinde, ses kaydı yüksek kalitede saklanabilir ve paylaşılabilir hale gelir, bu da günlük yaşamımızda müziği ve sesi keyifle deneyimlememizi sağlar.



Kulaklığın yapısı
Görsel[5] - Kulaklık yapısı ve Hoparlörler


Biz Yapalım Kısmı:



#Peki sizler ile beraber neden kendi sesimizin haritasını #oluşturmayalım ?
#Oluşturduğum kodu paylaşmak isterim:

from pydub import AudioSegment
import wave     # kütüphanaler
import numpy as np
import matplotlib.pyplot as plt

def convert_mp3_to_wav(mp3_path, wav_path):
    audio = AudioSegment.from_mp3(mp3_path)
    audio.export(wav_path, format="wav")

def plot_waveform(audio_path):
    wave_file = wave.open(audio_path, 'r')
    sample_width = wave_file.getsampwidth()
    frame_rate = wave_file.getframerate()
    num_frames = wave_file.getnframes()
    num_channels = wave_file.getnchannels()
    
    audio_data = wave_file.readframes(num_frames)
    audio_array = np.frombuffer(audio_data, dtype=np.int16)
    
    # Eğer iki kanallı ise, kanalları birleştir
    if num_channels == 2:
        audio_array = audio_array.reshape(-1, 2).mean(axis=1)
    
    time = np.arange(0, num_frames) * (1.0 / frame_rate)
    
    plt.plot(time, audio_array, linewidth=0.5)
    plt.xlabel('Time (s)')
    plt.ylabel('Amplitude')
    plt.title('Audio Waveform')
    plt.show()

# MP3 dosyasını WAV formatına dönüştürüyoruz
mp3_path = 'a.mp3'  # ilk a.mp3 diye ses dosyası oluşturdum 
wav_path = 'a.wav'
convert_mp3_to_wav(mp3_path, wav_path)
# Dönüştürülmüş WAV dosyasının ses dalgasını çizdirmek için #kullanıyoruz
plot_waveform(wav_path)

# Çıktı:






ses kaydının dijital evrimi

Ses Kaydının Gizli Dünyası - Yazılım


Yardımcı kaynak:




bottom of page