Kemas Kini Terakhir: 16 Apr, 2025

Apabila bekerja dengan fail audio, terutamanya dalam format seperti WAV, memahami header fail WAV adalah penting. Header mengandungi maklumat penting tentang data audio, seperti formatnya, kadar sampel, dan lain-lain. Dalam artikel ini, kita akan menyelami struktur header fail WAV, menjelaskan setiap bahagian, dan juga meneroka cara membaiki header yang rosak.
Apa itu Fail WAV?
WAV (Waveform Audio File Format) ialah format fail audio standard yang dibangunkan oleh Microsoft dan IBM. Ia menyimpan data audio mentah yang tidak termampat dan banyak digunakan untuk rakaman serta penyuntingan audio berkualiti tinggi.
Fail WAV terdiri daripada dua bahagian utama:
- Header — mengandungi metadata tentang fail.
- Data — mengandungi data sampel audio sebenar.
Struktur Header Fail WAV
Header fail WAV biasanya merupakan 44 bait pertama dalam fail. Ia memberikan maklumat terperinci tentang cara data audio harus ditafsirkan. Berikut ialah pecahan strukturnya:
| Offset (Bait) | Medan | Saiz (Bait) | Keterangan |
|---|---|---|---|
| 0 | ID Chunk | 4 | Mesti “RIFF” untuk menunjukkan format fail. |
| 4 | Saiz Chunk | 4 | Saiz fail tolak 8 bait untuk medan RIFF dan saiz. |
| 8 | Format | 4 | Mesti “WAVE”. |
| 12 | ID Subchunk1 | 4 | “fmt " (termasuk ruang di akhir). |
| 16 | Saiz Subchunk1 | 4 | Saiz bahagian format (biasanya 16 untuk PCM). |
| 20 | Format Audio | 2 | Kod format (1 untuk PCM/tidak termampat). |
| 22 | Bilangan Saluran | 2 | Mono = 1, Stereo = 2, dll. |
| 24 | Kadar Sampel | 4 | Frekuensi pensampelan (contoh: 44100 Hz). |
| 28 | Kadar Bait | 4 | SampleRate × NumChannels × BitsPerSample / 8. |
| 32 | Penjajaran Blok | 2 | NumChannels × BitsPerSample / 8. |
| 34 | Bit per Sampel | 2 | Kedalaman bit (contoh: 16, 24, atau 32 bit). |
| 36 | ID Subchunk2 | 4 | “data” — menunjukkan permulaan data audio. |
| 40 | Saiz Subchunk2 | 4 | Bilangan bait dalam bahagian data. |
Visual Representation of a WAV Header
+-----------------+---------+
| Chunk ID | "RIFF" |
| Chunk Size | FileSize|
| Format | "WAVE" |
| Subchunk1 ID | "fmt " |
| Subchunk1 Size | 16 |
| Audio Format | 1 (PCM) |
| Num Channels | 1/2 |
| Sample Rate | 44100 |
| Byte Rate | ... |
| Block Align | ... |
| Bits per Sample | 16/24/32|
| Subchunk2 ID | "data" |
| Subchunk2 Size | DataLen |
+-----------------+---------+
Mengapa Header Fail WAV Penting
Memahami header fail WAV adalah penting untuk:
- Jurutera audio menala kualiti audio.
- Pembangun membina alat atau perisian audio.
- Penyelidik menganalisis bentuk gelombang bunyi.
- Pengeluar muzik bekerja dengan trek audio berketepatan tinggi.
Jika header tidak betul atau rosak, fail audio mungkin tidak dapat dimainkan dengan betul, atau perisian penyuntingan audio mungkin tidak mengenalinya langsung.
Membaca dan Menyunting Header WAV Secara Programatik
Anda boleh menggunakan pelbagai alat dan bahasa pengaturcaraan untuk membaca serta memanipulasi header fail WAV. Berikut contoh menggunakan Python:
Skrip ini membantu anda memeriksa sifat-sifat header WAV secara programatik.
Cara Membaiki Header Fail WAV yang Rosak
Kadang‑kadang, fail WAV boleh menjadi rosak, terutamanya jika proses rakaman terhenti secara tiba‑tiba. Berikut cara anda boleh cuba membaiki header yang rosak:
1. Gunakan Perisian Penyuntingan Audio
Program seperti Audacity kadang‑kadang dapat membuka fail WAV yang rosak dan mengeksportnya dengan header yang diperbetulkan.
2. Gantikan Header Secara Manual
Jika anda mengetahui sifat‑sifatnya (saluran, kadar sampel, kedalaman bit), anda boleh menyalin header daripada fail WAV yang baik dengan tetapan serupa dan menggantikan yang rosak.
3. Gunakan Alat Baris Perintah
Utiliti seperti FFmpeg boleh mengekod semula fail dan menghasilkan header baru:
ffmpeg -i corrupted.wav -c copy fixed.wav
Anda juga boleh melihat panduan kami tentang penggunaan FFmpeg: Tukar fail WAV ke MP3 dan format lain menggunakan FFmpeg.
4. Tulis Skrip untuk Membina Semula Header
Jika anda biasa dengan pengekodan, anda boleh menulis skrip Python untuk menulis header baru dan menambah data mentah.
Petua Pro: Sentiasa simpan sandaran fail asal anda sebelum mencuba sebarang pembaikan.
Soalan Lazim Mengenai Header WAV
S1: Bolehkah saya menyunting header fail WAV secara manual?
Ya, jika anda memahami strukturnya, anda boleh menggunakan penyunting heks untuk menyunting medan header secara manual.
S2: Apa yang berlaku jika header WAV tiada?
Tanpa header, pemain media dan perisian tidak dapat memahami cara menafsir data audio, menjadikan fail tidak dapat dimainkan.
S3: Bagaimana saya mengetahui kedalaman bit fail WAV?
Anda boleh memeriksa medan “Bits per Sample” dalam header atau menggunakan perisian seperti Audacity atau skrip Python untuk membacanya.
S4: Bolehkah kualiti audio ditingkatkan dengan menyunting header?
Tidak, header hanya menerangkan data. Untuk meningkatkan kualiti, anda perlu merakam semula atau memproses audio itu sendiri.
S5: Adakah terdapat format WAV termampat?
Ya, walaupun fail WAV biasa menggunakan PCM (tidak termampat), WAV juga boleh mengandungi format audio termampat, tetapi PCM adalah yang paling umum.
Pemikiran Akhir
Header fail WAV memainkan peranan kritikal dalam cara data audio disimpan, ditafsirkan, dan dimainkan semula. Sama ada anda seorang profesional audio, pembangun, atau sekadar ingin tahu, memahami header WAV memberi anda kawalan yang lebih baik ke atas fail audio anda. Dengan pengetahuan ini, anda bukan sahaja boleh membaca dan menyunting fail WAV tetapi juga membaikinya apabila sesuatu tidak berjalan lancar.