19 thg 3, 2016

Chuẩn nén âm thanh và biến đổi file đuôi Wave sang file đuôi MP3 (có mã nguồn chương trình bằng VB)

đại lượng thuần túy vật lý. Vấn đề có ý nghóa to lớn trong thực tế là cần biết được sức mạnh của âm thanh đo bằng tai người. • Mức to, độ to của 1 âm là sức mạnh cảm giác do âm thanh gây nên trong tai người, nó không những phụ thuộc vào áp suất âm mà còn phụ thuộc vào tần số của âm đó. Thí dụ 2 âm có tần số 100 Hz và 1000 Hz áp suất âm đều bằng 0,02 µbar nhưng nghe to nhỏ khác nhau, âm 1000 Hz nghe to hơn âm 100 Hz. Muốn nghe to bằng âm 1000 Hz thì âm 100 Hz phải có áp suất bằng 0,25 µbar. Như vậy tai người không nhạy đối với âm 100 Hz bằng âm 1000 Hz. Tần số càng thấp tai người càng kém nhạy. a. Mức to: - Để biểu thò mức to trên cảm giác chủ quan, ta dùng đại lượng “mức to”, đơn vò là “Fôn” với đònh nghóa như sau : Fôn là mức to của âm chuẩn, về gía trò bằng mức áp suất âm của âm chuẩn tức là : L = 20lg P/Po (Fôn). - Vậy mức to của một âm bất kỳ đo bằng Fôn, về gía trò bằng mức áp suất âm của âm chuẩn đo bằng db có cùng mức to với âm đó. Thí dụ: âm có tần số 500 Hz mức áp suất âm bằng 25 db và âm có tần số 50 Hz mức áp suất âm bằng 64 db sẽ có cùng mức to bằng 20 Fôn, bằng mức to của âm 1000 Hz mức áp suất bằng 20 db. - Muốn biết mức to của 1 âm bất kỳ phải so sánh với âm chuẩn. - Đối với âm chuẩn, mức to ở ngưỡng nghe là 0 Fôn, ngưỡng chói tai là 120 Fôn. - Cùng một gía trò áp suất, âm tần số càng cao, mức to càng lớn. b. Độ to: - Khi so sánh âm này to hơn âm kia bao nhiêu lần, dùng khái niệm “độ to” đơn vò là “Sôn” với đònh nghóa như sau: Số lượng Sôn biểu thò số lần mạnh hơn của 1 âm nào đó so với âm chuẩn mà tai người có thể phân biệt được. - Độ to là 1 thuộc tính của thính giác, cho phép phán đoán tính chất mạnh yếu của âm thanh. Căn cứ vào độ to mà sắp xếp âm từ nhỏ tới to. - Mức to tăng 10 Fôn thì độ to tăng gấp đôi và ngược lại. {PAGE } 2. m điệu và âm sắc: • m điệu chỉ âm cao hay thấp, trầm hay bổng. m điệu chủ yếu phụ thuộc vào tần số của âm, tần số càng cao, âm nghe càng cao, tần số càng thấp âm nghe càng trầm. • m sắc chỉ sắc thái của âm du dương hay thô kệch, thanh hay rè, trong hay đục. m sắc phụ thuộc vào cấu tạo của sóng âm điều hòa, biểu thò bằng số lượng các loại tần số, cường độ và sự phân bố của chúng quanh âm cơ bản. m sắc có quan hệ mật thiết với cường độ, âm điệu và thời gian âm vang, sự trưởng thành và tắt dần của trường âm. • Khi hai ca só cùng hát một câu ở cùng một độ cao, ta vẫn phân biệt được giọng hát của từng người. Khi đàn ghi-ta, sáo, kèn.. cùng tấu lên một đoạn nhạc ở cùng một độ cao, ta vẫn phân biệt được tiếng của từng nhạc cụ. Mỗi người, mỗi nhạc cụ phát ra những âm có sắc thái khác nhau mà tai ta phân biệt được. Đặc tính đó của âm chính là âm sắc. • m sắc là một đặc tính sinh lý của âm, được hình thành trên cơ sở các đặc tính vật lý của âm là tần số và biên độ. Thực nghiệm chứng tỏ rằng khi một nhạc cụ phát ra một âm có tần số f1 thì đồng thời cũng phát ra các âm có tần số f2=2f1, f3=3f1... • m có tần số f1 gọi là âm cơ bản hay họa âm thứ nhất, các âm có tần số f2 , f3 .. gọi là các họa âm thứ hai, thứ ba... m cơ bản bao giờ cũng mạnh nhất, các họa âm có tác dụng quyết đònh âm sắc của âm cơ bản, giúp ta phân biệt các nguồn âm khác nhau. Chẳng hạn tiếng đàn Pi-a-nô và tiếng sáo tuy cùng một âm cơ bản nhưng lại rất dễ phân biệt, nguyên nhân là do số lượng, cấu trúc những họa âm quanh âm cơ bản của chúng khác nhau. Họa âm càng nhiều âm nghe càng du dương phong phú. 3. Thính giác đònh vò (hiệu ứng Stereo): • Khi nghe âm tuy mắt không nhìn thấy nguồn âm nhưng có thể xác đònh chính xác vò trí của nguồn âm. Đặc điểm này là kết qủa của hai tác dụng: - Do cường độ, độ to, âm sắc của âm đến hai tai không giống nhau. - Do âm đến hai tai lệch pha nhau, vì thời gian đến hai tai không giống nhau. • Cường độ, độ to của âm đến hai tai chênh lệch nhau là do nhiễu xạ gây ra. m có tần số f < 1000 Hz sự chênh lệch cường độ do nhiễu xạ gây ra rất bé nhưng ở những tần số cao, sự chênh lệch này có thể đạt tới 20 - 30 db. {PAGE } • Do khả năng đònh vò của tai như vậy cho nên khi nghe âm có thể tập trung chú ý vào nguồn âm cần nghe, bỏ qua một cách tự nhiên những âm không cần nghe. Nhờ hiệu qủa này mà tiếng ồn bò phủ lấp hoặc giảm nhỏ một cách tự nhiên. Nếu chỉ nghe âm một tai thì hiệu qủa này mất. 4. Nghe âm và chênh lệch thời gian: • Tương tự như tác dụng lưu ảnh của mắt, tai người cũng có tác dụng lưu âm. • Thí nghiệm với nhiều thính giác bình thường cho thấy rằng, nếu hai âm như nhau đến tai người cách nhau < 50 ms thì tai người không phân biệt được, nghe như một âm duy nhất. {PAGE } CHƯƠNG 2. TẬP TIN DẠNG SÓNG (WAVE FILE). II.1. MULTIMEDIA WINDOWS • Từ Windows 3.1, Multimedia đã trở thành một tính năng của Windows. Multimedia Windows đã bổ sung một tính năng mới: đó là sự độc lập thiết bò trong việc xử lý âm thanh. Sự độc lập thiết bò này thể hiện qua bộ API (Applycation Program Interface – Bộ giao diện lập trình ứng dụng). Bộ API độc lập về thiết bò đối với phần cứng và đó là một chức năng quan trọng của Windows. Người lập trình sẽ lập trình điều khiển phần cứng trên Windows dựa trên chức năng của phần cứng hơn là các chi tiết cụ thể của nó. Các nhà cung cấp phần cứng chỉ cần cung cấp một bộ điều khiển thiết bò (device driver) cho Windows, nhờ đó một ứng dụng trên Windows có thể điều khiển phần cứng thông qua Windows API. • Với Multimedia Windows, hãng Microsoft đã thực hiện được ba điều : ◊ Đònh nghóa một tiêu chuẩn phần cứng tối thiểu cho loại máy Multimedia PC (viết tắt là MPC). Tiêu chuẩn này dựa trên chức năng tổng quát hơn là sản phẩm cụ thể. Ví dụ nếu PC có thêm ổ đóa CD-ROM và một card âm thanh thì trở thành MPC cấp 1. ◊ Microsoft đã cung cấp phần mềm Multimedia Extension cho Windows 3.0 và đã được ghép luôn vào hệ điều hành Windows từ phiên bản 3.1. Phần mềm này bao gồm các bộ điều khiển thiết bò dành cho việc truy xuất đến các phần cứng gắn thêm vào MPC. ◊ Microsoft đưa ra công cụ phát triển Multimedia Development Kit (MDK). Lập trình viên kết hợp công cụ trên với bộ Windows Software Development Kit (SDK) để viết các ứng dụng về Multimedia. • Có hai dạng xử lý âm thanh số hóa trên Windows. Loại thứ nhất microsoft gọi là “Wave Form Audio” (m thanh dạng sóng), dựa trên nguyên tắc số hóa sóng âm, MPC lưu chúng trên bộ nhớ hay tập tin.WAV trên đóa. Các dữ liệu số này có thể thông qua phần cứng biến đổi lại thành âm thanh. • Dạng thứ hai là MIDI. Khác với âm thanh dạng sóng, MIDI chỉ lưu lại những thông điệp điều khiển bộ tổng hợp phát ra âm thanh. Do đó kích thước của tập tin .MID nhỏ hơn nhiều so với tập tin.WAV. II.2. CẤU TRÚC WAVE FILE. {PAGE } 1. RIFF file. Wave File là tập tin chứa các dữ liệu của mẫu âm thanh đã được số hóa. Phương pháp số hóa âm thanh hiện nay là phương pháp PCM. Phương pháp này sẽ lấy mẫu âm thanh với tần số khoảng 11.025 kHz cho đến 44.1 kHz. Mỗi lần lấy mẫu, số liệu này lại được lượng tử hóa bằng một hay hai byte cho một mẫu âm thanh. Như vậy tần số lấy mẫu càng cao, số byte dùng lượng tử hóa càng nhiều thì âm thanh phát lại càng trung thực, nhưng lại tăng số byte cần lưu trữ.Với một mẫu âm thanh phát ra trong một phút cần phải lưu trữ ít nhất 660 kB. Đó là lý do tại sao các Wave File luôn có kích thước khá lớn so với MIDI File. Cấu trúc của Wave File thuộc vào lớp file được sử dụng bởi các hàm Multimedia của Windows : đó là RIFF FILE. RIFF là chũ viết tắt của Resource Interchange File Format (dạng file trao đổi tài nguyên). Một RIFF file gồm một hoặc nhiều loại chunks, trong mỗi chunk lại chứa con trỏ chỉ đến chunk kế tiếp. Mỗi chunk bao gồm loại chunk và dữ liệu theo sau loại chunk đó. Một ứng dụng muốn đọc RIFF file có thể đi qua lần lược từng chunk, đọc dữ liệu ở chunk nó quan tâm và có thể bỏ qua các chunk mà nó không quan tâm.một chunk của RIFF file luôn bắt đầu bởi một header có cấu trúc như sau: Typedef struct { FOURCC ckid; DWORD ckSize; } CK; Trường FOURCC có 4 bytes chỉ ra loại chunk. Đối với Wave File, trường này có gía trò là “WAVE”. Nếu loại chunk ít hơn 4 ký tự thì các ký tự còn lại bên phải sẽ được đệm thêm vào các khoảng trắng. Cần chú ý là các ký tự trong FOURCC có phân biệt chữ hoa và chữ thường. Trường DWORD chứa kích thước vùng dữ liệu của chunk, vùng dữ liệu này nằm ngay sau header và có kích thước là ckSize bytes. Chunk có thể chứa các subchunks. Subchunk cũa là một chunk. Một RIFF file luôn bắt đầu bằng một chunk loại “RIFF”. 2. Cấu trúc Wave file. {PAGE } Wave file bắt đầu là chunk loại “RIFF”. Hai subchunk trong wave chunk đặc tả thông tin về âm thanh của wave file và tiếp đó là dữ liệu của từng subchunk. Đó là subchunk “fmt” và subchunk “data”. a. subchunk “fmt”: Dữ liệu của “fmt” chunk là đối tượng WAVEFORMAT có cấu trúc như sau: Typedef struct waveformat_tag { WORD wFormatTag; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; WORD nBlockAlign; } WAVEFORMAT; - wFormatTag thường có gía trò là WAVE_FORMAT_PCM được đònh nghóa trong tập tin MMSYSTEM.H nhu sau : #define WAVE_FORMAT_PCM 1 Gía trò này báo cho phần mềm đang đọc Wave File biết kiểu mã hóa dữ liệu âm thanh sang dữ liệu số là kiểu mã hóa PCM. Hiện nay đây là kiểu mã hóa duy nhất của Wave file. - nChannels: có hai gía trò: bằng 1 cho âm thanh mono và bằng 2 cho âm thanh steréo. - nSamplesPerSec: cho biết tốc đọ lấy mẫu, có các gía trò: 11025 -- 11.025 kHz 22050 -- 22.050 kHz 44100 -- 44.100 kHz - nAvgBytesPerSec: cho biết số bytes yêu cầu trung bình trong một giây để phát lại mẫu dữ liệu của sóng âm. {PAGE }

Không có nhận xét nào:

Đăng nhận xét