- Nhập tần số lấy mẫu mới, biến đổi file wav theo tần số lấy mẫu mới - Viết báo cáo file âm thanh theo định dạng .wav - Nhập số bit lượng tử mới, biến đổi file wav theo số bit lượng tử
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN SƯ PHẠM KỸ THUẬT
-o0o -BÁO CÁO BÀI TẬP LỚN NHÓM 11
KHAI THÁC THÔNG TIN ĐA PHƯƠNG TIỆN
Đề tài:
“Tìm hiểu cấu trúc của một file âm thanh wav Xây dựng một chương trình đọc nội dung một file wav.”
Giảng viên hướng dẫn: Đỗ Thị Ngọc Diệp & Lê Thị Lan Nhóm sinh viên:
Nguyễn Phước Hội 20191402
Trần Nguyệt Ánh 20202024
Trần Hoài An 20202017
Trang 2PHÂN CÔNG CÔNG VIỆC
hoàn thành
dung một file âm thanh wav.
- Nhập tần số lấy mẫu mới, biến đổi file wav theo tần
số lấy mẫu mới
- Viết báo cáo
file âm thanh theo định dạng wav
- Nhập số bit lượng tử mới, biến đổi file wav theo số bit lượng tử mới
- Viết powerpoint
số lấy mẫu, biến đổi số bit lượng tử một file âm thanh
- Tìm hiểu cấu trúc của một file âm thanh theo định dạng wav
- Viết báo cáo
Trang 31.File WAV
• WAV là viết tắt của Waveform Audio File Format, một định dạng âm thanh được phát triển bởi Microsoft và IBM Nếu như WAM và MP3
là những đuôi file âm thanh đã trải qua quá trình nén và mất dữ liệu, thì WAM là một dạng file âm thanh gốc, không nén
• Định dạng tệp âm thanh dạng sóng (WAV, hoặc được công chúng biết đến vì hậu tố "wav") sử dụng cấu trúc định dạng tệp "RIFF" (Định dạng tệp trao đổi tài nguyên) Nó thường được sử dụng để lưu dữ liệu
âm thanh gốc ở định dạng PCM, vì vậy nó thường được gọi là âm thanh không mất dữ liệu Nhưng nói đúng ra, wav cũng có thể lưu trữ
dữ liệu âm thanh ở các định dạng nén khác Định dạng tệp WAVE là 1 tệp con của riff dùng để lưu trữ các tệp đa phương tiện WAVE file là tập tin chứa các dữ liệu của mẫu âm thanh được số hoá Phương pháp
mã hoá PCM 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ố hiệu này lại được lượng tử hoá bằng 1 hay 2 byte cho mỗi mẫu âm thanh Với mỗi mẫu âm thanh phát ra trong một phút cần phải lưu trữ it nhất 660 kB Đó là lý do tại
Trang 4• Cấu trúc của file thuộc lớp các file được sử dụng bởi hàm Multiemdia của Windows : đó là RIFF file (Resoure Interchange File Format) Một RIFF file gồm một hoặc nhiều loại Chunk và dữ liệu theo sau 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ượt từng chunk đọc dữ liệu từng chunk mà nó quan tâm và có thể bỏ qua các chunk mà nó không quan tâm
2 Tìm hiểu về cấu trúc của một file âm thanh theo định dạng wav
- Định dạng tệp wav là một tập hợp con của đặc điểm kỹ thuật RIFF của Microsoft để lưu trữ các tệp đa phương tiện
- Tệp RIFF bắt đầu với header, theo một quy luật của khối dữ liệu
- Tệp wav thường chỉ là một tệp RIFF với một đoạn “wave” duy nhất bao gồm hai phần con
- Hình ảnh minh họa :
Trang 5- Mô tả hình ảnh
Endian : Phương thức lưu trữ dữ liệu dạng nhị phân
little endian : byte nhị phân cuối cùng sẽ được ghi trước big endian : ngược lại của little endian ( cơ chế thông thường )
Trang 6Field name : Tên của vùng dữ liệu
Field size : kích thước của vùng dữ liệu
- Bộ mô tả đoạn “RIFF” : định dạng cần quan tâm ( ở đây là wave )
yêu cầu hai khối con : “fmt” và “data” Nó mô tả ID, kích thước và định dạng RIFF chunk có cấu trúc như sau:
o Chunk ID: Chứa các chữ cái "RIFF" ở dạng ASCII
o Chunk Size: Đây là kích thước của toàn bộ tệp theo byte
o Format: Định dạng Chứa các chữ cái "WAVE"
- Fmt sub chunk (mô tả định dạng của thông tin âm thanh trong phân
đoạn dữ liệu con dữ liệu âm thanh) :
Cụ thể : mô tả về thông tin metadata, thông tin về âm thanh như: loại định dạng âm thanh, có bao nhiêu kênh được sử dụng, một loạt các điểm dữ liệu khác
o Subchunk1ID: Chứa các chữ cái "fmt"
o Subchunk1Size: Đây là kích thước của phần còn lại của
Subchunk theo sau số này
o Audio Format: là lượng tử hóa tuyến tính Các giá trị khác 1
chỉ ra một số dạng nén
o Num Channels: Mono = 1, Stereo = 2, v.v.
Trang 7o Sample Rate: 8000, 44100, v.v.
o ByteRate == SampleRate * NumChannels * BitsPerSample / 8
o BlockAlign == NumChannels * BitsPerSample / 8
o BitsPerSample 8 bit = 8, 16 bit = 16, v.v.
- Data chunk (Vùng phụ "dữ liệu" chứa kích thước của dữ liệu và âm
thanh thực tế) , cho biết kích thước của thông tin âm thanh và dữ liệu
âm thanh thô
Subchunk2ID : Chứa các chữ cái "dữ liệu"
Subchunk2Size NumSamples * NumChannels * BitsPerSample / 8
3 Tìm hiểu về biến đổi tần số lấy mẫu, biến đổi
số bit lượng tử của một file âm thanh
3.1 Biến đổi tần số lấy mẫu
Thuật ngữ chúng ta thường nghe trong xử lý âm thanh là tốc độ lấy mẫu (Sampling Rate) và tần số lấy mẫu (Sampling Frequency), đều chỉ chung một thứ Chúng thường có một số giá trị đặc trưng như
Trang 8Tốc độ lấy mẫu của âm thanh là số lượng mẫu (sample) được lấy trong mỗi giây Chúng được đo đạc như là số mẫu trên giây hay Hertz (được viết tắt như Hz hay kHz với 1 kHz = 1000 Hz) Một mẫu âm thanh là một con số đo đạc biểu diễn cho giá trị của sóng âm thanh tại một thời điểm cụ thể Những mẫu âm thanh này được lấy tại một thời điểm nào đó trong 1 giây Ví dụ, nếu tốc độ lấy mẫu là 8000 Hz thì không có nghĩa là 8000 mẫu đã được lấy trong một giây, chúng phải được lấy cách nhau 1/8000 của một giây Con số 1/8000 này là khoảng thời gian giữa hai lần lấy mẫu (đo bằng giây) và tốc độ lấy mẫu đơn giản là nghịch đảo của nó
Tốc độ lấy mẫu của âm thanh tương tự với số khung hình trên giây (FPS) trong xử lý video Một video đơn giản là chuỗi các hình ảnh nối tiếp nhau, mà thường được gọi là khung hình (frame) Chuyển cảnh nhanh tạo ra ảo giác (ít nhất là với con người) rằng đoạn video
đó liên tục và không bị gián đoạn
Mặc dù tốc độ lấy mẫu âm thanh và tốc độ khung hình video khá giống nhau Con số tối thiểu để đảm bảo khả năng sử dụng được là khác nhau Đối với video, con số tối thiểu là 24 khung hình trên giây
để đảm bảo rằng chuyển động được mô tả chính xác Nhỏ hơn con số
Trang 9đó, chuyển động sẽ bị giật và con người không có cảm giác chuyển động đó là liên tục Với âm thanh, con số tối thiểu để có thể nghe phát
âm rõ ràng bằng tiếng Anh là 8000 Hz Nhỏ hơn con số đó, âm thanh phát ra có thể không thể hiểu được trong một số trường hợp Tốc độ lấy mẫu âm thanh thấp không thể phân biệt được một số âm vị Ví dụ với 5000 Hz rất khó phân biệt được âm /s/, /sh/ và /f/ trong tiếng Anh
Khi ta đề cập đến khung hình trong video, audio cũng có một khái niệm là audio frame, mặc dù audio frame và mẫu âm thanh cùng
có đơn vị là Hz, chúng là 2 khái niệm khác nhau Một audio frame là một tập hợp của mẫu âm thanh tại một thời điểm được lấy từ 1 hoặc nhiều kênh (channel)
3.2 Biến đổi bit lượng tử
Bitrate là một thuật ngữ chuyên ngành trong âm thanh và ánh sáng chỉ khối lượng
dữ liệu được tính chính xác là bằng đơn vị bit (và bội số của nó) được truyền trong một khoảng thời gian nhất định Phụ thuộc vào hoàn cảnh cần sử dụng, những đơn vị dùng để đo lường bitrate thường là kbit/s (kilobit trên giây) và Mbps (megabit trên giây) Về cơ bản, con số bitrate càng cao càng tốt, đem lại chất lượng bài nhạc hoặc chất lượng video càng cao mà thôi.
Kbps tên gọi chung là Bit-rate, Bit-rate là số bit mà máy tính cần xử lý trong một giây, đơn cử như nhạc 128 Kbps thì yêu cầu máy tính phải xử lý 128000 bit/giây (vì 1 Kbps = 1000 bit/giây), tương tự với nhạc 320 Kbps thì máy tính phải xử lý ở mức độ
Trang 10Bit rate sử dụng trong xử lý âm thanh thay đổi phụ thuộc vào ứng dụng Ứng dụng yêu cầu chất lượng âm thanh cao, như nhạc thường sử dụng bit rate cao hơn sẽ cho chất lượng nhạc tốt hơn Âm thanh truyền đi trong điện thoại, thường không cần bit rate cao Vì vậy cuộc gọi thoại thông thường có bit rate thấp hơn khá nhiều so với một đĩa nhạc CD Đối với tốc độ lấy mẫu hay tốc độ bit, con số càng thấp thì âm thanh càng kém hơn Nhưng phụ thuộc vào mục đích sử dụng, bit rate thấp giúp cho tiết kiệm bộ nhớ vào tốc độ xử lý dữ liệu nhanh hơn.
4 Viết chương trình đọc nội dung một file âm thanh wav
4.1 Thông số header: ( sử dụng google colab)
4.2 Nhập tần số lấy mẫu mới, biến đổi file wav theo tần số lấy mẫu mới
( Sử dụng google colab)
4.3 Nhập số bit lượng tử mới, biến đổi file wav theo số bit lượng tử mới
( Sử dụng google colab )