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 meydana gelir. Bir wav dosyasını okumak ve dosyaya yazmak için wav dosya formatının alt parçalarını bilmek gerekiyor. 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 bu dosyanın 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ının ne olduğunu biraz daha açalım. Örnek daha açıklayıcı olur. 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. Sanırım aradaki fark rahatça anlaşılır oldu. Little endian sıralamada, adından 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. Daha önce de "
ilerde wav dosyalarını açıp işlemeye başladığımızda işimize yarayacak" diyerek bayt sıralamalarından bahsetmiştim, yazıyı okumak
tıklayın.
Okunma Sayısı: 834
Yayınlanma Tarihi: 31 Aralık 2009 Perşembe - 21:18
Anahtar Kelimeler: wav dosya formatı, ses dosyası, okuma, yazma, wave, format, riff
Onaylı yorum bulunmuyor.
Yorum/Görüş Bildir