Wav dosya formatı, Microsoft'un media dosyalarını saklamak için kullandığı RIFF (Resource Interchange File Format) formatının bir alt formatı. RIFF formatı, dosya başlığından ve onu takip eden alt parçalardan oluşur. Bir wav dosyasını okumak ve dosyaya yazmak için wav dosya formatının alt parçalarını bilmek yeterli. Parçaların, pozisyonlarının, boyutlarının, kullandıkları bayt sıralama tipinin ve gerekli açıklamaların yer aldığı tablo aşağıda:
İsim | Pozisyon | Boyut | Bayt Sıralaması | Açıklama |
Parça Kimliği | 0 | 4 | Big Endian | R,I,F,F karakterlerinin ascii kodlarını içerir. |
Dosya Boyutu | 4 | 4 | Little Endian | Bu kısımdan sonraki verilerin boyutunu içerir. Değeri: (Tüm dosya boyutu-8) |
Dosya Formatı | 8 | 4 | Big Endian | W,A,V,E karakterlerinin ascii kodlarını içerir. |
Alt Parça1 Kimliği | 12 | 4 | Big Endian | f,m,t ve " " (bir boşluk) karakterlerinin ascii kodunu içerir. |
Alt Parça1 Boyutu | 16 | 4 | Little Endian | PCM dosyaları için bu değer 16dır. |
Ses Formatı | 20 | 2 | Little Endian | Sıkıştırılmamış dosyalar için bu değer 1dir. Eğer 1den farklı bir değer okursanız, okuyacağınız değer dosyanın hangi formatta sıkıştırılmış olduğunu gösterir. |
Kanal Sayısı | 22 | 2 | Little Endian | Ses dosyası içine kaç kanal yazıldığını belirtir (1,2,...). |
Örnekleme Frekansı | 24 | 4 | Little Endian | Örnekleme frekansının değerini tutar. |
Bayt Oranı | 28 | 4 | Little Endian | Saniyede kaç bayt okunması gerektiğini gösterir. Değeri (ÖrneklemeFrekansı*KanalSayısı*ÖrnekBaşınaBit/8) işlemiyle hesaplanır. |
Blok Boyutu | 32 | 2 | Little Endian | Blok boyutu kavramı için yukarda linki bulunan yazıyı okuyabilirsiniz. Değeri (KanalSayısı*ÖrnekBaşınaBit/8) işlemiyle hesaplanır. |
Örnek Başına Bit | 34 | 2 | Big Endian | Her örneğin kaç bit ile ifade edildiğini gösterir. 8, 16, 24 ... değererini alabilir. |
Alt Parça2 Kimliği | 36 | 4 | Little Endian | d,a,t,a karakterlerinin ascii kodlarını içerir. |
Ses Verisi Boyutu | 40 | 4 | Little Endian | Bu kısımdan sonra gelecek veri boyutunu yani aslında ses verisinin boyutunu gösterir. |
Yukaridaki kurallara uyularak, örneklenmiş ses sinyali wav dosyasına kaydedilebilir veya wav formatında kaydedilmiş bir dosya açılıp örneklere uaşılabilir. Örneklenen sesin direkt olarak okunabilmesi için ses formatına ayrılan baytlardan "1" değerinin okunması gerekir. Başka değerlerin okunması, dosyanın sıkıştırıldığına işaret eder.
ÖrnekBaşınaBit değeri kodlanabilecek genlik aralığını genişletir. 8, 16, 24,... değerlerini alabilir.
İki kanalı bir dosyada kanallara ait veriler, sol kanal solda, sağ kanal sağda olacak şekilde yazılır.
Son olarak big endian ve little endian sıralamalarından bahsedelim. 2 bayt boyut tanınmış ses formatı kısmına "1" değeri, little endian sıralamasına göre 01 00 olarak yazılır(hexadecimal). Bunun big endian sıralamasına göre yazılış şekli ise 00 01 dir. Little endian sıralamada, isimden anlaşılabileceği gibi değeri en az etkileyen (en önemsiz) baytlar sonlara yazılır. Big endianda ise en etkili/önemli (most significant) bitler sona yazılır.
herhangi bir sesin bigisayara kaydedip ve mikrofina gönderilen kadarki işaret işleme süreci hangi aşamalardan gerçekleşir ve blok şeması nasıldır ve her bir aşamanın matematiksel ifadesi nasıldır
Bu çok genel bir soru olmuş, bunun için ayrı bir yazı yazmam gerekir sanırım.