Vissza a HF generátor hangkártyából oldalra Hangmintakészítő algoritmus >>
A *.wav hangfájlformátum
A *.wav hangfájlformátum egy szabványos Microsoft Windows formátum, amelyet digitális hangminták tárolására hoztak létre. A wav fájlok a RIFF multimédia-formátum egyik alformátuma.
A RIFF formátumú fájlok felépítését mutatja a következő táblázat.
Mezőazonosító | Hossz | Leírás |
---|---|---|
RIFF azonosító | 4 bájt | "RIFF" szöveg ASCII kóddal |
Adatmező hossza | 4 bájt | a következő adatmező hossza [bájt] |
Adatmező | ... | adatmező a tárolt adatokkal |
A wav fájlrész a fent bemutatott RIFF fájl adatmezőjében van elhelyezve.
A wav fájlrész felépítését mutatja a következő táblázat.
Mezőazonosító | Hossz | Leírás |
---|---|---|
WAVE azonosító | 4 bájt | "WAVE" szöveg ASCII kóddal |
Formátum | 20 bájt | a *.wav adatformátum paramétereinek megadása |
Adatmező | ... | adatmező a tárolt adatokkal |
A wav fájlrész hangmintáinak formátumát leíró rész a későbbiekben részletes bemutatásra kerül.
A wav fájlrész adatmezőjének felépítését mutatja a következő táblázat.
Mezőazonosító | Hossz | Leírás |
---|---|---|
data azonosító | 4 bájt | "data" szöveg ASCII kóddal |
Adatmező hossza | 4 bájt | a következő adatmező hossza [bájt] |
Adatmező | ... | adatmező a tárolt adatokkal |
A tényleges *.wav formátumú fájl a fenti három táblázat egymásbaágyazásával jön létre.
A következő táblázat a *.wav fájl teljes felépítését mutatja a gyakorlatban közvetlenül felhasználható formában.
Cím | Mezőazonosító | Hossz | Leírás |
---|---|---|---|
00 - 03. | RIFF azonosító | 4 bájt | "RIFF" szöveg ASCII kóddal (52h, 49h, 46h, 46h) |
04 - 07. | Adatmező hossza | 4 bájt | a következő fájlrész hossza [bájt] |
08 - 11. | WAVE azonosító | 4 bájt | "WAVE" szöveg ASCII kóddal (57h, 41h, 56h, 45h) |
12 - 15. | fmt azonosító | 4 bájt | "fmt_" szöveg ASCII kóddal (66h, 6Dh, 74h, 20h) |
16 - 19. | Leírómező hossza | 4 bájt | a következő leírómező hossza: 16 bájt (00h, 00h, 00h, 10h) |
20 - 21. | Hullámtárolási mód | 2 bájt | a hullámtárolási mód kódja: tömörítés nélküli egyszerű hangminta (00h, 01h) |
22 - 23. | Csatornák száma | 2 bájt | a hangcsatornák száma: sztereó hang (00h, 02h) |
24 - 27. | Mintavételi frekvencia | 4 bájt | a mintavételi frekvencia: 44100 Hz (00h, 00h, ACh, 44h) |
28 - 31. | Átviteli sebesség | 4 bájt | az átviteli sebesség: 176400 bájt/s (00h, 02h, B1h, 10h) |
32 - 33. | Blokkméret | 2 bájt | az egyszerre kikerülő adatblokk mérete: 4 bájt (00h, 04h) |
34 - 35. | Adathossz | 2 bájt | egyetlen hangminta hossza: 16 bit (00h, 10h) |
36 - 39. | data azonosító | 4 bájt | "data" szöveg ASCII kóddal (64h, 61h, 74h, 61h) |
40 - 43. | Adatmező hossza | 4 bájt | a következő fájlrész hossza [bájt] |
44 ... | Adatmező | ... | a hangminta |
A 16 bites hangminták a következő sorrend szerint kell, hogy elhelyezkedjenek: bal csatorna első minta, jobb csatorna első minta, bal csatorna második minta, jobb csatorna második minta...
A 16 bites hangminta értéke kettes komplemens módban tárolva a -32768..+32767 intervallumban lehet, tehát a 0 érték 0V feszültségnek felel meg.
A következő táblázatok egy 40 másodperces, 1kHz-es, sztereó, azonos fázisú, 16 bites hangmintafájlra mutatnak példát 44100 Hz-es mintavételi frekvenciával. Az elsőben a fájl konkrét adatbájtjai szerepelnek, mellette a másikban pedig a jelentésük van feltüntetve. (A több bájtos adatokat az IBM PC kompatibilis számítógépek "little endian" adatsorrendben tárolják, vagyis a legkisebb helyiértékűt először, majd a sorban következőket.)
|
|
A fenti táblázatokból is látható, hogy a hangmintafájlt célszerű 4 bájtos szavanként kezelni, amint az a következő oldalakon látható is.
Tudomány és Technika (test@t-es-t.hu)
Vissza a HF generátor hangkártyából oldalra Hangmintakészítő algoritmus >>