Untuk mencari saiz bunyi bersampel tanpa mampatan, darabkan kadar sampel × kedalaman bit × tempoh dalam saat × saluran, kemudian bahagi dengan 8 untuk bait. Ia muncul apabila soalan memberi panjang rakaman dan tetapan kualiti, lalu bertanya storan yang diperlukan.
Ia mengikut idea yang sama seperti saiz imej: kira bilangan item, darab dengan bit bagi setiap item, kemudian tukar unit.
Bagaimana komputer menyimpan bunyi?
Bunyi ialah gelombang berterusan. Untuk menyimpannya, komputer mengukur ketinggian gelombang berkali-kali setiap saat. Setiap ukuran ialah satu sampel, dan bilangan sampel setiap saat ialah kadar sampel (sample rate) dalam hertz (Hz).
Setiap sampel disimpan sebagai nombor binari. Bilangan bit yang digunakan ialah resolusi sampel atau kedalaman bit. Kadar sampel dan kedalaman bit yang lebih tinggi kedua-duanya menangkap gelombang dengan lebih tepat, dan kedua-duanya menambah saiz fail.
Bagaimana mengira langkah demi langkah?
- Tukar masa kepada saat (minit × 60).
- Darab bilangan sampel: kadar sampel × saat.
- Darab dengan kedalaman bit untuk mendapat bit setiap saluran.
- Darab dengan bilangan saluran (mono ialah 1, stereo ialah 2).
- Bahagi dengan 8 untuk bait, kemudian tukar unit mengikut konvensyen yang dinyatakan.
Kaedah sebagai pseudokod gaya Cambridge:
INPUT Rate, Depth, Seconds, Channels
Bits ← Rate * Depth * Seconds * Channels
Bytes ← Bits / 8
OUTPUT Bytes
Jejak dengan Rate = 44100, Depth = 16, Seconds = 10, Channels = 1: Bits = 44 100 × 16 × 10 × 1 = 7 056 000, jadi Bytes = 882 000.
Contoh berlangkah
Sebuah nota suara berlangsung 30 saat. Ia dirakam secara mono pada 8 000 Hz dengan resolusi sampel 8 bit. Beri saiz tanpa mampatan dalam bait dan KiB (1 KiB = 1 024 bait).
Langkah 1, sampel: 8 000 × 30 = 240 000 sampel.
Langkah 2, bit: 240 000 × 8 = 1 920 000 bit.
Langkah 3, bait: 1 920 000 ÷ 8 = 240 000 bait.
Langkah 4, KiB: 240 000 ÷ 1 024 = 234.375 KiB.
Semakan: setiap sampel ialah 8 bit, iaitu tepat 1 bait, jadi bait sama dengan sampel: 240 000. Ini sepadan.
Andaian: tiada pemampatan, tiada metadata, satu saluran.
Kesilapan yang perlu diawasi
Kesilapan lazim ialah membiarkan tempoh dalam minit.
Jawapan salah: Klip 2 minit pada 44 100 Hz, 16 bit, mono. Bit = 44 100 × 16 × 2 = 1 411 200.
Pelajar mendarab dengan 2 minit, tetapi kadar sampel mengira sampel setiap saat.
Pembetulan: 2 minit = 120 saat.
Bit = 44 100 × 16 × 120 = 84 672 000 bit = 10 584 000 bait. Jawapan salah itu 60 kali terlalu kecil. Menulis unit di sebelah setiap nombor semasa mengira akan menangkap kesilapan ini.
Semak kendiri
Tunjukkan setiap langkah, kemudian buka setiap jawapan.
1. Rakaman mono 1 minit dibuat pada 22 050 Hz dengan sampel 16 bit. Berapa bait diperlukan?
Tunjukkan jawapan
Saat = 60. Bit = 22 050 × 16 × 60 = 21 168 000. Bait = 21 168 000 ÷ 8 = 2 646 000 bait.
2. Klip stereo 5 saat dirakam pada 48 000 Hz dengan sampel 24 bit. Berapa bait diperlukan?
Tunjukkan jawapan
Bit = 48 000 × 24 × 5 × 2 = 11 520 000. Bait = 11 520 000 ÷ 8 = 1 440 000 bait.
3. Sebuah rakaman berukuran 100 KiB pada kadar sampel 40 000 Hz. Rakaman yang sama dibuat semula pada 20 000 Hz dengan semua yang lain tidak berubah. Apakah saiz baharu?
Tunjukkan jawapan
Saiz berkadar terus dengan kadar sampel, dan kadar dikurangkan separuh, jadi saiz juga separuh: 50 KiB.
Seterusnya
Fail mentah yang besar ialah sebab pemampatan wujud, jadi teruskan dengan mampatan tanpa kehilangan dan dengan kehilangan. Anda juga boleh menyemak aritmetik dengan menulis formula sebagai kod dalam kotak pasir penaakulan Python, kemudian uji semuanya dalam set latihan.
Jika anda tahu formula tetapi masih tertinggal satu faktor semasa tekanan peperiksaan, seorang guru boleh melihat kerja anda dan mengesan kuantiti yang cenderung anda langkau dalam tuisyen Computer Science dalam talian satu dengan satu.