1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ Án Tốt Nghiệp DigitalSound

127 2.2K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Mục lục Mục lục Giới thiệu chung .11 Giới thiệu chung 11 Đặt vấn đề 11 Chủ đề luận án .12 Chơng 13 Chơng 13 lý thuyết xử lý tín hiệu số 13 Tín hiệu số 13 Xử lý tín hiệu số (DSP - Digital Signal Processing) 13 2.1 Phép biến đổi Z 14 2.2 Biến đổi Fourier rời rạc (DFT - Discrete Fourier Transform) 16 2.3 Lọc tín hiệu 16 2.4 Hàm cửa sổ 17 2.5 Phép biến đổi nhanh Fourier (FFT - Fast Fourier Transform) .18 2.6 Cepstrum 19 Chơng 20 Chơng 20 giới thiệu chung âm số .20 Âm đặc tính âm 20 1.1 Sóng âm cảm giác âm 20 1.2 Độ cao âm .20 1.3 Âm lợng âm (độ to âm) 20 1.4 Âm sắc âm .21 Âm số 21 2.1 Nguyên lý .21 2.2 Tần số cờng độ 22 Định dạng liệu 23 Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Khuôn dạng lu trữ 25 sox filename.au filename.wav 26 Chơng 27 Chơng 27 khuôn dạng tệp âm .27 Khuôn dạng lu trữ 27 1.1 Au/ Snd 27 1.2 Voc 29 1.3 Wave/ Riff .33 1.4 Aiff/ Aiff-C/ Aif/ Snd 37 1.5 IFF/8 SVX .40 1.6 MIDI 43 1.7 Mod/ Sam 46 1.8 MPEG 49 1.9 VBA , VBase ADPCM (.VBA) 52 1.10 VCE, NMS VCE (.VCE) 52 1.11 TXT 52 1.12 SMP, SampleVision (.Smp) 53 1.13 VOX 53 1.14 PCM, PCM Raw Data (.PCM) 53 1.15 DWD , DiamondWare Digitized (.DWD) 54 1.16 RA, RealAudio 3.0 (.RA) 54 Thao tác với tệp âm 54 2.1 Thu tạo tệp âm 54 2.2 Soạn thảo 54 2.3 Phát âm 55 Chơng 56 Chơng 56 Hàm cửa sổ lọc tín hiệu .56 Hàm cửa sổ 56 1.1 Rectangular 56 1.2 Hamming .57 1.3 Hanning 57 1.4 Triangle (Bartlett) 57 Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số 1.5 Black man 58 Real Function I0(X) .58 DS=1.0 58 D=0.0 58 S=1.0 58 D=D+2.0 58 DS=DS*X*X/(D*D) 58 S=S+DS 58 IF(DS-.2E-8*S) 2, 1, .58 I0 = S 58 Return .58 End .58 1.6 Flat top 58 1.7 Exponent down 58 Lọc tín hiệu 59 Chơng 60 Chơng 60 FFt cepstrum .60 FFT (Fast Fourier Transform) .60 1.1 Nguyên lý .60 1.2 FFT âm số 60 Cepstrum 61 Chơng 63 Chơng 63 Phơng pháp thiết kế 63 Khái quát chức 63 Cơ chế thực 64 Chơng 65 Chơng 65 Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Thao tác với tệp âm .65 Truy nhập tệp Wave .65 WaveHeader=record 65 case boolean of 65 false:( 65 rID:longint; { 'RIFF' rLen:longint; wID:longint; } 65 { dLen+36 } .65 { 'WAVE' fID:longint; { 'fmt ' fLen:longint; { 16 wFT:word; } 65 } .65 65 { FormatTag : 1:PCM } 65 nC:word; { Chanel: 1-mono; 2-stereo nSp:word; { NumSamplesPerSecond } .65 nAB:word; { 0: AvegBytesPerSecond } 65 nBA:word; { BlockAligne = nSp*un1 } 65 Fs:word; { 0: FormatSpecific } 65 } 65 un1:word; { BitsPerSample:1-PCM8bit;2-PCM16bit } 65 un2:word; { cbSize: 8-PCM8bits; 16-PCM16bits } 65 dID:longint; dLen:longint; { 'data' } .65 {NumBytes of TotalSamples } 65 ); 65 true:(hb:array[0 43]of byte); 65 end; 65 i:= 0; 66 While i < numSamples 66 Begin 66 Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số For c:= to numChannels - 66 { xử lý Sample[i+c] }; 66 i:= i + numChanels; .66 End; 66 Truy nhập tệp Voc .66 VocBlockFormat = record 66 header: VocBlockHeader; 66 data: VocData; 66 End; 66 VocBlockHeader = record 66 blockType:byte; {1 byte định danh dạng khối } 66 dataLen: longint; {3 byte xác định độ dài liệu } 66 End; 66 VocData1 = record .67 SamRateCode :byte; {1 byte mã tần số lấy mẫu} .67 DataCompresCode :byte; {1 byte mã phơng thức nén liệu} 67 End; 67 VocData8 = record .67 SamRateCode :word; {2 byte mã tần số lấy mẫu} 67 DataCompresCode :byte; {1 byte mã phơng thức nén liệu} 67 Mode :byte; {0: mono; 1: stereo} 67 End; 67 VocData9 = record .67 SamRate :longint; {4 byte tần số lấy mẫu} 67 NumBitsPerSam :byte; {Số bits cho mẫu} 67 Đồ án tốt nghiệp NumChannel :byte; Xây dựng chơng trình xử lý âm số {Số kênh truyền: 1-mono; 2-stereo} 67 DataCompresCode :word; {2 byte mã phơng thức nén liệu} 67 Exten :longint; {Phần mở rộng} 67 End; 67 Cấu hình liệu 67 Soạn thảo 68 4.1 Nguyên lý .68 Assigned(F, MainFilename); .69 Assigned(Fsave, CurentFilename); .69 Reset(F); .69 Rewrite(Fsave); 69 BlockRead(F, Header, 44); 69 { Thay đổi tham số độ dài liệu } 69 BlockWrite(Fsave, Header); 69 Close(F); .69 Close(Fsave); 69 4.2 Thao tác dới dạng trực quan 69 4.3 Cơ chế thực 71 Begin 71 for i:=StartPoint to FinitPoint DelCut[i]:=false; 71 CutDel:=true; 71 End; 71 Seek(F,44); 71 For i:=1 to DebutPoint-1 .71 { chép mẫu từ F sang Fsave }; 71 seek(F, 44+ (DebutPoint + NumSamples)*numBytesPerSample); 71 Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số While not eof(F) .71 { chép liệu từ F sang Fsave }; 71 for i:= to NumSamples 71 begin 71 if DelCut[i] then .71 begin 71 seek(F,44+ (DebutPoint+i)*numBytesPerSample); .71 { read(F,temp);write(fSave,temp); } 71 end; 71 end; 71 seek(F,44 + (DebutPoint + StartPoint)* numBytesPerSample); .72 for i:= to (FinitPoint-StartPoint+1)*numBytesPerSample .72 begin 72 read(F,temp); .72 write(fSave,temp); 72 end; 72 seek(F,44+ (StartPoint + DebutPoint)*numBytesPerSample); .73 for i:= to (FinitPoint-StartPoint+1)*numBytesPerSample .73 begin 73 read(F,temp); .73 PointEdit[i + NumEdit] :=temp; 73 end; 73 NumEdit:=NumEdit+(FinitPoint-StartPoint+ 1)*numBytesPerSample; .73 Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Phát 74 5.1 Thu .74 5.2 Phát 74 PlaySound('Path', 0, SND_SYNC); .74 f:=CreateFile ('Path',GENERIC_READ,0,nil,OPEN_EXISTING,0,0); .74 if not (f=INVALID_HANDLE_VALUE) then 74 begin 74 ReadFile(f,ArrSample, MaxSize,sizs,nil); .74 CloseHandle; 74 end; 74 .74 PointDat:=ArrSample; .74 PlaySound(PointDat, 0, SND_ASYNC or SND_MEMORY); 74 MediaPlayer.FileName:=OpenDialog.FileName; .75 MediaPlayer.Open; .75 Chơng 76 Chơng 76 Phân tích tín hiệu 76 Phổ biên độ 76 Hàm cửa sổ (Windows) .79 Cepstrum .84 Một vài trợ giúp khác 89 3.1 Xác định tần số trội (tần số trung bình vùng biên độ đỉnh) 89 3.2 Tính phổ mẫu cho trớc 90 Chơng 91 Chơng 91 Hớng dẫn sử dụng 91 Giao diện chơng trình 91 Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Tuỳ chọn chức .92 Đánh giá chơng trình 93 Đánh giá chơng trình 93 Hớng phát triển 93 Kết luận .94 Phụ lục A .95 Phụ lục A .95 Giải thích thuật ngữ 95 PAM 95 PWM 95 PCM 95 DPCM .95 Phụ lục B .96 Phụ lục B .96 Tài liệu tham khảo 96 ( Đồ án tốt nghiệp - DigitalSound) 97 97 Chơng 97 Chơng 97 khuôn dạng tệp âm .97 Khuôn dạng lu trữ 97 Dịch phần IV: General File Formats 97 Trong sách: A Programmer's Guide To Sound 97 Addison - Wesley / 1998, Tim Kientzle 97 1.1 Au/ Snd 97 1.2 Voc 99 1.3 Wave/ Riff 103 1.4 Aiff/ Aiff-C/ Aif/ Snd 107 1.5 IFF/8 SVX 111 Dịch phần V: music File Formats 114 Trong sách: A Programmer's Guide To Sound 114 Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Addison - Wesley / 1998, Tim Kientzle 114 1.6 MIDI 114 1.7 Mod/ Sam 117 Dịch phần III: 14 mpeg Audio .121 Trong sách: A Programmer's Guide To Sound 121 Addison - Wesley / 1998, Tim Kientzle 121 1.8 MPEG 121 Dịch phần: Các dạng file âm 125 Trong: cool edit Pro .125 1.9 VBA , VBase ADPCM (.VBA) 125 1.10 VCE, NMS VCE (.VCE) 125 1.11 TXT 125 1.12 SMP, SampleVision (.Smp) 126 1.13 VOX 126 1.14 PCM, PCM Raw Data (.PCM) 126 1.15 DWD , DiamondWare Digitized (.DWD) 126 1.16 RA, RealAudio 3.0 (.RA) 126 Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số phát âm theo tần số (speed) khác Nếu ta biết cờng độ (pitch) nốt nhạc thu cờng độ nốt nhạc mà ta mong muốn, ta điều chỉnh tần số phát lại để đạt đợc cờng độ mong muốn Các tệp IFF/8SVX cho phép lu trữ chuỗi trình thu nhạc cụ cờng độ khác nên ta chọn trình thu gần với cờng độ mong muốn, giảm tối đa sai số Trờng thứ bảng cờng độ nốt nhạc thu cao Khúc BODY lu trữ nốt nhạc đợc thu theo kiểu (nốt nốt khác) mà bắt đầu nốt có cờng độ cao Mỗi nốt quãng (octave) thấp cờng độ so với nốt kế trớc đợc thu tần số lấy mẫu khác Ngoài ra, trờng thứ (số mẫu giây) đợc bỏ qua trình thu nhạc cụ thông tin cờng độ đợc lấy Với âm thu đơn giản, thông tin VHDR không cần hay không đợc sử dụng Trong trờng hợp này, số vòng lặp mẫu, mẫu chu kỳ, trờng octave đợc thiết lập Các tệp IFF/8SVX dạng mono Để lựa chọn giải mã, cần đảm bảo khúc VHDR đợc đọc, sau sử dụng mã dạng Hơn nữa, phần lớn tệp IFF/8SVX sử dụng liệu âm dạng PCM 8-bit Khúc BODY Khúc BODY lu trữ liệu âm đợc nén thời Các liệu âm đợc đọc từ khúc Các khúc văn Một loạt khúc cần tới phần thích dạng văn Các khúc xuất dạng tệp IFF (bao gồm Aiff AiffC) Mọi khúc có khuôn dạng bản; chúng chứa chuỗi ký tự ASCII Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Dịch phần V: music File Formats Trong sách: A Programmer's Guide To Sound Addison - Wesley / 1998, Tim Kientzle 1.6 MIDI Mặc dù lu trữ hát nh dạng thu Wave hay Au, nhng có lý cho việc phải có khuôn dạng âm nhạc riêng biệt Trớc hết kích thớc Việc lu trữ dẫy nốt nhạc tiện lợi cho trình phát so với việc lu trữ trình thu toàn hát Lý thứ hai dễ dàng việc thay đổi Nếu ta có trình thu buổi hoà âm, khó khăn việc tách biệt thay đổi nhạc cụ đơn, nhng đợc lu trữ dới dạng dẫy nốt nhạc ta dễ dàng soạn thảo Các tệp MIDI chuẩn Một tệp MIDI chuỗi khúc Các khúc có khuôn dạng chung giống nh khúc đợc sử dụng tệp Aiff, Iff, Wave Mỗi khúc có ký tự phân loại, mã độ dài kích thớc 4-byte (trong khuôn dạng MSB), vài liệu Tuy nhiên, khác với khuôn dạng khác, khúc MIDI không xếp chồng Hiện nay, có loại khúc Khúc MThd chứa thông tin header nói chung; khúc MTrk chứa rãnh đơn Khúc MThd xuất phần đầu tệp MIDI, dấu hiệu để định danh tệp MIDI chuẩn Khúc MIDI Header Khúc MThd chứa chút kiện sở tệp MIDI Mọi giá trị đợc lu trữ khuôn dạng MSB Sau nội dung khúc MIDI MThd: Bytes 2 Mô tả Dạng tệp Số rãnh Khuôn dạng thời gian Có loại tệp MIDI, chúng đợc phân loại tuỳ theo cách xử lý rãnh: Tệp dạng chứa rãnh Một cách rõ ràng, tệp dễ để phát, nên dạng thông dụng cho tệp quảng cáo Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Tệp dạng chứa nhiều rãnh mà chúng đợc phát cách đồng thời Một chơng trình dùng để phát tệp dạng phải cách san phẳng liệu thành dòng kiện đơn trớc phát Tệp dạng chứa nhiều rãnh nhng không thừa nhận liên hệ rãnh Nói chung, tệp dạng không phổ biến Các rãnh MIDI Chú ý rãnh khác so với kênh MIDI Mặc dù dạng chung cho tệp multi-track để phát rãnh kênh khác nhau, trình tổ hợp nhạc sử dụng số rãnh tuỳ ý để phát rãnh kênh khác theo kiểu mẫu Mỗi rãnh MIDI danh sách kiện, mà kiện có delta time đặt trớc Mỗi khúc tệp MIDI có độ dài đợc ấn định, nên cần thận trọng rãnh hoá số bytes đợc đọc để ta biết liệu rãnh kết thúc Nếu rãnh đầu tiên, cần phải đảm bảo kiện hoàn toàn đợc chèn vào nhớ danh sách kiện Giống nh danh sách mã chèn nào, trình chèn kiện MIDI yêu cầu hai trờng hợp sau: một, kiện vào phần đầu danh sách (trong trờng hợp cần phải cập nhật đầu đọc danh sách); hai, kiện vào danh sách (trong trờng hợp container trỏ khác nhận cập nhật) Điều làm tăng phức tạp cần thiết chèn vào vị trí tạm thời xác điều chỉnh độ trễ cách thích hợp Ngoài ra, để trì không gian, tệp MIDI sử dụng số nguyên biến độ dài để lu trữ delta times giá trị tới hạn khác Điều cho phép giá trị nhỏ (nh giá trị 0) đợc lu trữ byte đơn đồng thời cho phép giá trị đạt tới 32 bits Delta times Các kiện MIDI xuất số thời điểm xác định Có cách để đánh dấu thông tin này: Lu trữ thời gian tuyệt đối thời điểm mà kiện xuất hiện, hay lu trữ quãng thời gian kiện Mỗi kiện đợc đặt trớc số số ticks để tách biệt với kiện trớc Khoảng tồn xác tick phụ thuộc vào khuôn dạng thời gian đợc ấn định header, đợc thay đổi kiện riêng biệt tệp Các kiện MIDI Một kiện MIDI gói liệu mà rõ số kiện âm nhạc, nh việc nhấn nhả phím Byte gói byte trạng Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số thái, mà định rõ dạng kiện, đôi khi, kênh truyền Các bytes trạng thái thờng xuyên có thiết lập bit cao Còn lại byte liệu, mà chúng thiết lập bit cao Sự phân biệt quan trọng Theo cách chung, kênh truyền MIDI đợc đánh số từ tới 16, nhạc cụ MIDI từ tới 128 Tuy nhiên, mã hoá số xắp hàng từ tới 15 tới 127 cách tơng ứng Ta thêm hay bớt chuyển đổi mã số hoá ngôn ngữ MIDI Running Status Để tạo "wire protocol" thêm hiệu quả, MIDI sử dụng kỹ thuật gọi running status, kỹ thuật bỏ qua bytes trạng thái lặp Khi đọc tệp MIDI, gặp byte liệu, ta cần byte trạng thái, ta dùng lại trạng thái trớc Để tạo cho kỹ thuật thêm hữu hiệu, có quy ớc note-on event với vận tốc (velocity) thiết lập giống nh note-off event với vận tốc ngầm định 64 Nh vậy, dẫy dài notes kênh truyền đơn đợc kiểm soát với bytes cho kiện Quản lý kiện MIDI Các tệp MIDI thờng đợc lu trữ nh rãnh đơn Mặc dù kiện rãnh đợc lu trữ theo thứ tự tạm thời, luồng kiện mà nhận đợc để phát tổ hợp rãnh Hơn nữa, kiện rãnh (nh thay đổi nhịp độ) tác động lên trình phát lại kiện rãnh khác Cho tệp dạng 1, cần phải đọc kiện vào nhớ trớc phát chúng Để đạt đợc điều này, cần lu trữ danh sách liên kết đơn kiện MIDI Phần lớn kiện gồm byte trạng thái cặp byte liệu Và cần phải lu trữ giá trị độ trễ số rãnh mà kiện xuất Vài kiện MIDI riêng biệt chứa lợng tuỳ ý liệu, nên cần thêm cấu trúc phụ để nắm giữ liệu cần đến Phần lớn kiện MIDI có độ dài cố định Ví dụ nh note-on event có bytes liệu bytes trạng thái Khuôn dạng MIDI Khuôn dạng MID tệp điều khiển âm multimedia MIDI hệ thống hoàn chỉnh khuôn dạng xác định mà có tín hiệu hệ thống phần cứng Các tệp MIDI lu giữ dòng lệnh cho hệ thống tổng hợp (synthesizer) MIDI Các tệp đợc xây dựng từ khúc (chunks) Có hai loại khúc: header chunk track chunk Mỗi tệp MIDI gồm header chunk nhiều track chunk Mỗi khúc có byte để nhận dạng Các dấu hiệu theo sau byte xác định độ dài liệu khúc (không kể byte liệu mô tả), cho phép Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số khúc dài 4GB Header chunk Bắt đầu ký tự MThd dạng mã ASCII, header chunk thờng có độ dài 16byte, mã hoá nh 06 00 00 00 theo khuôn dạng "little-endian" (Intel) tệp MIDI 8byte đầu header chunk theo dạng word biểu diễn phạm vi liệu tệp 0, (trên đĩa 00 00): tệp định nghĩa rãnh đa kênh đơn 1, (trên đĩa 01 00): tệp giữ nhiều rãnh đợc chơi lúc 2, (trên đĩa 02 00): tệp nén nhiều mẫu rãnh đơn mà chúng độc lập với trình chơi liên tiếp Vị trí từ (byte thứ 11 12) biểu thị số track chunk riêng biệt đợc chứa tệp Khuôn dạng cho phép tới 65.535 chunk liệu tệp Từ cuối header chunk (byte thứ 13 14) xác định gía trị trung bình delta-time track chunk Dữ liệu byte lấy hai dạng Khi bit MSB = 15 bit thấp biểu thị số tick phần t nốt nhạc Khi bit MSB = biểu diễn thời gian time code byte thấp biểu thị số tick khung SMPTE Track chunk Bắt đầu với MTrk dạng mã ASCII, track chunk bắt đầu với 8byte nhận dạng (4byte nh MTrk, 4byte sau biểu diễn độ dài) theo sau track event Mỗi track event có hai phần, biến độ dài delta time (1 tới byte) mô tả thời gian trớc kiện thân kiện Sự kiện số dạng sau: kiện MIDI (đơn giản tin kênh truyền MIDI), tin dành riêng hệ thống (gọi sysex event), Meta event, thông tin cho Một tin dành riêng hệ thống chuỗi liệu có dạng ba phần: byte nhận dạng, thờng F0(Hex) F7(Hex), theo sau tới ba byte biểu diễn độ dài chuỗi liệu thân chuỗi liệu Một Meta event gồm bốn phần: byte thờng FF(Hex), mã kiểu 1byte Tiếp theo biến biểu diễn độ dài liệu Meta event Phần cuối liệu Meta event 1.7 Mod/ Sam Mặc dù MIDI dạng lu trữ nhạc tốt, nhng có vài vấn đề Khởi đầu, MIDI đợc phát triển cho việc kết nối với nhiều loại phần cứng nhạc Một tổng hợp đáp ứng cho tập ấn định âm nhạc cụ, tổng hợp khác Thậm chí, nhạc cụ với Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số tên nhng lại nghe khác nhau, nên nhiều tệp MIDI nghe chuẩn vài tổng hợp Chính vậy, ngời ta sử dụng thêm dạng tệp Mod Bằng cách bao gồm âm nhạc cụ đợc thu thanh, tệp Mod độc lập với tính tổng hợp hay card âm Chính vậy, tệp Mod nghe nh giống hệ thống Khác với MIDI, tệp Mod đợc cấu trúc dựa quanh beat Mỗi beat tơng ứng với quãng thời gian hoàn toàn mô tả xẩy quãng Một kết khác tệp Mod phát số giới hạn nốt nhạc đồng thời Mặc dù điều trở ngại cho nhà soạn nhạc, nhng lại u điểm cho ngời lập trình, ngời khai thác giới hạn để cung cấp trình phát lại thêm xác thực Các tệp Mod đợc định danh cách xác thực giống nh vài dạng khác Dạng biến thể phổ biến Pro Tracker chứa 4-byte ký hiệu, nhng lại không định vị phần đầu tệp Các dạng biến thể Mod khác sử dụng dấu hiệu khác nhau, mà lại định vị chúng vị trí khác tệp Khuôn dạng chung Mod Khuôn dạng tệp Mod đợc coi nh dạng nén Nó định danh chuỗi mẫu hình lặp phần nhạc nên việc lu trữ trở nên gọn nhẹ Ví dụ, lu trữ nốt nhạc thu cho nhạc cụ, mà đợc mở rộng thành chuỗi âm trình phát lại Nó lu trữ mẫu hình, phân đoạn ngắn nhạc mà chúng đợc lặp hay phát lại theo trình tự để tạo thuận lợi cho chuỗi lặp nốt nhạc Các tệp Mod chung cho phép tới 31 âm nhạc cụ khác Mỗi âm đợc đặc trng mẫu đợc số hoá với phân đoạn lặp tuỳ chọn, với âm lợng ngầm định tham số finetune Tham số cho phép tần số phát lại xác (và cờng độ) đợc điều chỉnh nhạc cụ Timing Đơn vị thời gian chuẩn đợc sử dụng tệp Mod tick, thờng 1/50 giây (Tốc độ tơng ứng với tần số vẽ lại theo chiều dọc phiên European/PAL Amiga Một vài tệp Mod không chuẩn lấy giá trị 1/60 giây, tơng ứng với phiên US/NTSC Amiga Rất nhiều trình phát tệp Mod cho phép điều chỉnh tần số tick) Tệp Mod cho phép chuỗi thay đổi âm xuất tick Ví dụ nh, nốt nhạc đợc phát với rung có âm lợng đợc điều chỉnh tick Tuy nhiên, thay đôỉ nốt nhạc xuất phần đầu beat Thông thờng, beat ticks, giá trị cho phép đợc điều chỉnh tuỳ ý Các beats đợc quy chiếu tới nh hàng, nhiều trình soạn thảo tệp Mod hiển thị beat hàng phần hiển thị văn Notes Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Mỗi beat tập hoàn chỉnh nốt nhạc(notes) Mỗi nốt nhạc bao gồm số nhạc cụ, thời đoạn (period), mã tác động (Một vài khuôn dạng biến thể khác lu trữ nốt nhạc mức âm lợng) Số nhạc cụ thời đoạn tơng ứng cách trực tiếp với phần cứng âm Amiga Nếu số nhạc cụ thời đoạn 0, nốt nhạc trớc nên tiếp tục đợc phát Nếu hai số 0, nốt nhạc bắt đầu nhng giá trị đợc thay giá trị trớc Beats Một beat bao gồm định rõ nốt nhạc riêng cho kênh Thông thờng có kênh, nhng dạng biến thể khác có hay kênh Ngoài ra, beat có khoảng xác định, thờng ticks, khoảng đợc thiết lập lại Patterns Các tệp Mod đợc thiết kế cho trình lu trữ âm nhạc, mà chúng có phân đoạn lặp Một mẫu hình (pattern) lu trữ tới 64 beats Tại tần số lấy mẫu phát lại bình thờng, phát nhạc vòng giây Một tệp Mod có tới 64 mẫu hình Một vài dạng Mod khác không lu trữ mẫu hình, mà chúng lu trữ danh sách liên tiếp beats Playlist Playlist danh sách chứa tới 128 số mẫu hình Nói chung, trình phát tệp Mod phức tạp so với trình phát khuôn dạng Wave AIFF, không phức tạp nh trình phát MIDI Cấu trúc chung tệp Mod nh sau: Độ dài 20 30 cho nhạc cụ 1 128 1024 cho mẫu hình Mô tả Tên hát Dữ liệu nhạc cụ Độ dài playlist Số mẫu hình (chỉ tệp cũ) Playlist Signature Các mẫu hình Tiếp theo liệu mẫu hình nhạc cụ Phần "Signature" đợc sử dụng để khuôn dạng xác tệp Nhng phần không xuất định vị khuôn dạng Mod Sau vài số ký hiệu chung nhất: Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Kí hiệu Mô tả M.K M!K! FLT4 FLT8 6CHN 8CHN Chữ ký chung Giống nh dạng trên, nhng có nhiều 64 mẫu hình Tơng tự nh M!K! Mỗi beat có kênh Mỗi beat có kênh Mỗi beat có kênh Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Dịch phần III: 14 mpeg Audio Trong sách: A Programmer's Guide To Sound Addison - Wesley / 1998, Tim Kientzle 1.8 MPEG (Moving Pictures Expert Group) Đây chuẩn mà ISO phát triển (5/1988) cho việc nén chuỗi hình ảnh video Mặc dù chuẩn MPEG tiếng cho việc nén hình ảnh video, nhng chúng đáp ứng cho việc nén âm với chất lợng cao Hiện nay, có dạng chuẩn MPEG chính: MPEG-1, MPEG-2, MPEG-3 Sự phân biệt tệp MPEG âm hình ảnh video quan trọng Các chuẩn MPEG xác định khuôn dạng lu trữ Một tệp chứa dòng hình ảnh (video stream), dòng âm (audio stream), hay dòng hệ thống (system stream) dòng mà đợc chèn vào xen kẽ vài tổ hợp dòng âm hình ảnh Cả dạng tệp đợc sử dụng rộng rãi Nói chung chuẩn MPEG khác so với vài chuẩn khác đây, ta xét tới khuôn dạng dòng bit (bitstream) MPEG, cách mã hoá dòng bit không kỹ thuật nén Một cách chủ yếu, dòng bit âm MPEG định rõ giá trị tần số âm cách giá trị thay đổi theo thời gian Theo cách để lu trữ khoảng trống, nén loại bỏ thông tin cách có lựa chọn Chuẩn rõ cách thông tin giữ lại đợc mã hoá giải mã cấu trúc mẫu âm PCM từ dòng bit MPEG Bằng cách đặt lại trình xử lý mã hóa không xác định, cài đặt tự sử dụng chuỗi kỹ thuật để định xem thông tin quan trọng Những kỹ thuật bao gồm mã hoá đơn giản cho ứng dụng chất lợng thấp hơn, mã hoá đợc chi tiết hoá cho dạng âm riêng biệt (ví dụ nh trình nén chất lợng cao cho dàn nhạc khác với trình nén chất lợng cao cho tiếng nói) Cấu trúc chung Giống nh nhiều kỹ thuật nén định hớng phần cứng, liệu đợc nén MPEG đợc định nghĩa nh dòng bit Một dòng bit MPEG bao gồm khung (frame) liệu nén Mỗi khung chứa "frame header" mà xác định khuôn dạng liệu Để giải mã liệu, cần phải rãnh hoá bytes vào, định danh phân tích "frame header", sử dụng thông tin header để giải nén khung riêng biệt Frame Header MPEG Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Một frame header 32 bits đợc xắp hàng byte đờng biên 12 bits 1, cho đồng hoá; bits lại đợc bảng sau 12 bits giá trị "syncword" Nếu giải mã rãnh nơi mà định vị, tìm phía trớc cho "syncword" định vị lại từ MPEG frame Header: Byte Bits 4 1 2 1 Mô tả Cho đồng bộ, giá trị Cho đồng bộ, giá trị ID: phần mở rông MPEG-2 đợc sử dụng Tầng: 11=tầng 1, 10=tầng 2, 01=tầng 3, 00=dự trữ Bit bảo vệ: CRC đợc kèm vào Chỉ số tần số bit Chỉ số tần số mẫu Chèn thêm: có khe phụ Private Chế độ: 00=stereo, 01=joint stereo, 10=dual channel, 11=mono Sự mở rộng chế độ: dải tần thấp cho âm dạng stereo cờng độ Bản quyền: 1, có Nguồn gốc: 1, gốc Nhấn mạnh Các syncword giả gây khó khăn cho giải mã việc đồng lại cách đáng tin cậy Mặc dù chuẩn đảm bảo syncword giả không xuất dòng âm thích hợp, chúng xuất liệu mã hoá bị lỗi gây h hại Nếu giải mã biết thông tin phụ dòng bit vào (ví dụ nh biết để trông chờ dòng bit MPEG-1 Layer 1), sử dụng bits header phụ nh syncword mở rộng Chuẩn cung cấp dạng mã hoá vòng CRC để đợc lu trữ theo sau header CRC cung cấp dạng kiểm tra lỗi cho header phần lớn liệu âm nhạy cảm đợc mã hoá Nếu trình kiểm tra CRC bị trợt, giải mã bỏ qua khung (làm trầm đầu vào, hay tạo khung tr ớc để che liệu mất), đồng lại, tiếp tục với khung thích hợp Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Các mã hoá tần số lấy mẫu MPEG : MPEG - MPEG - Mã hoá Tần số lấy mẫu Tần số lấy mẫu 00 01 10 11 44,100 48,000 32,000 Reserved 22,050 24,000 16,000 Reserved Frame header tần số lấy mẫu liệu âm không bị nén (samples/giây) tần số liệu nén (bits/giây) Các giá trị đợc lu trữ phần header khung Mặc dù không đồng cho mã hoá việc thay đổi tần số lấy mẫu khung, nhng hợp lý việc thay đổi tốc độ bit (bit rate) khung Bằng cách thay đổi tốc độ bit khung, MPEG sử dụng tốc độ bit thời (trong bảng mã hoá tốc độ bit sau) Trong vài trờng hợp, tốc độ bit "free" đợc sử dụng chúng có vài giới hạn Ngoài ra, để tránh làm sai "syncword", không nên sử dụng giá trị toàn Bảng mã hoá tốc độ bit MPEG: Mã hoá 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Tốc độ bit MPEG-1 Tốc độ bit MPEG-2 Tầng Tầng Tầng Tầng Tầng Tầng Free 32 64 96 128 160 192 224 256 288 320 352 384 416 448 * Free 32 48 56 64 80 96 112 128 160 192 224 256 320 384 * Free 32 40 48 56 64 80 96 112 128 160 192 224 256 320 * Free 32 48 56 64 80 96 112 128 144 160 176 192 224 256 * Free 16 24 32 40 48 56 64 80 96 112 128 144 160 * Free 16 24 32 40 48 56 64 80 96 112 128 144 160 * MPEG-1 đáp ứng cho thiết lập kênh truyền Các chế độ âm Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số thông thờng kênh truyền kép lu trữ dòng liệu nén cách độc lập Thiết lập âm đợc kết nối sử dụng liệu cách chia sẻ vài thông tin kênh Điều tạo thuận lợi cho chơng trình đáp ứng dạng âm có khác kênh trái phải nhỏ Các khe khung (Slots Frames) Các khung MPEG đợc tính khe (slots) Với tầng 1, khe bytes; với tầng byte Sự định vị header đơn giản, nên dễ dàng xác định tốc độ bit liệu vào, tần số lấy mẫu âm ra, nh số mẫu xuất gói: 384 mẫu cho tầng 1; 1,152 mẫu cho tầng Từ số liệu ta tính độ dài trung bình khung Ngoài ra, thông tin header đợc lặp lại khung Phần lớn thông tin naỳ cho phép thay đổi với khung (mặc dù thông số tầng, số, tần số lấy mẫu không nên thay đổi) Bởi tốc độ bit đ ợc thay đổi header, tạo sai số lớn Một cách khác, để sử dụng tốc độ bit không chuẩn ta nên sử dụng mã hoá "free bit rate" Dĩ nhiên, trờng hợp ta tính toán trực tiếp độ dài khung, đó, nên quy định tốc độ bit "free" độ dài khung không đợc thay đổi (ngoại trừ cho khe đợc rõ trình chèn thêm) Điều cho phép tính toán độ dài khung cách tìm kiếm trớc cho header sau sử dụng lại giá trị cho khung đợc giữ lại Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số Dịch phần: Các dạng file âm Trong: cool edit Pro 1.9 VBA , VBase ADPCM (.VBA) Đây dạng Dialogic VOX với đầu đọc nhỏ, cho phép phân đoạn đợc đánh dấu Nó ghi dới dạng âm 16-bit đơn, giống nh dạng ADPCM khác, nén theo kiểu 4-bits/mẫu (tỷ lệ 4:1) Khác với dạng Dialogic VOX, thông tin tần số lấy mẫu đợc giữ lại với tệp 1.10 VCE, NMS VCE (.VCE) Natural MicroSystems (NMS) ADPCM Đây dạng biến đổi G.721 ADPCM đợc sử dụng ứng dụng ngành điện thoại Một tệp vce chứa tin giọng nói đơn với 2,3 hay 4-bit/mẫu tốc độ 8000 mẫu giây Dạng ứng dụng cho dạng đơn, 16-bit tần số 8kHz Tệp vce tệp mỏng đầu đọc Các tệp vce bội có đầu đọc đợc chứa tệp vox dạng NMS đơn 1.11 TXT ASCII Text Data (.TXT) Dữ liệu đợc đọc viết từ tệp theo dạng văn chuẩn, mà mẫu đợc chia carriage return kênh đợc chia ký tự tab Các tuỳ chọn cho phép liệu đợc chuẩn hoá khoảng giá trị 1.0 1.0, đợc viết hay đọc theo giá trị nguyên Một đầu đọc tuỳ chọn đợc xếp trớc liệu Nếu header text, liệu đợc thừa nhận số nguyên hệ 10 dạng 16-bit Đầu đọc đợc định dạng nh từ khoá: gồm giá trị, SAMPLERATE, NORMALIZED Giá trị NORMALIZED TRUE FALSE Ví dụ nh: SAMPLES: 1582 BITSPERSAMPLE: 16 CHANNELS: SAMPLERATE: 22050 NORMALIZED: FALSE 164 -1372 492 -876 vv Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số 1.12 SMP, SampleVision (.Smp) Dạng SampleVision đợc chơng trình SampleVision Turtle Beach sử dụng Nó đáp ứng dạng âm 16-bit đơn 8-bit signed (.Sam) Dạng phổ biến cho việc tạo tệp dạng Mod, kể từ âm tệp Mod dạng 8-bit Rất nhiều trình soạn thảo Mod cho phép mẫu đợc chèn vào từ tệp, đợc xuất sang tệp theo dạng Dữ liệu dạng nguyên 8-bit signed với phần mở rộng Sam đợc thừa nhận liệu dạng nguyên 8-bit signed đầu đọc Tần số lấy mẫu thờng 22050Hz, nhng nay, giá trị đợc thay đổi 1.13 VOX Dialogic ADPCM (.Vox) Dạng Dialogic ADPCM, nói chung, có ứng dụng ngành điện thoại, đợc tối u cho giọng có tần số lấy mẫu thấp Nó ghi âm dạng 16-bit đơn, giống nh dạng ADPCM khác, nén theo kiểu 4bits/mẫu (cho tỷ lệ 4:1) Dạng đầu đọc, dạng tệp có phần mở rộng Vox đợc thừa nhận thuộc dạng Pika ADPCM (.VOX, *.*) Pika ADPCM dạng có ứng dụng hệ thống điện thoại Nó phiên "nibble-reversed" dạng Dialogic VOX chuẩn Để ghi sang dạng Pika, tệp gốc phải dạng đơn 8kHz 16-bit 1.14 PCM, PCM Raw Data (.PCM) Một cách đơn giản, dạng kết xuất PCM cho liệu tệp âm Tệp không chứa thông tin đầu đọc Nên ta không cần quan tâm tới việc lựa chọn tần số lấy mẫu, độ phân giải, nh số kênh truyền trình mở tệp Bằng cách mở liệu âm giống nh PCM, ta diễn xuất hầu nh dạng tệp âm với vài ý tởng tần số lấy mẫu, số kênh truyền, vv Ta biểu diễn liệu nh dạng nén A-Law hay Mu-law 1.15 DWD , DiamondWare Digitized (.DWD) Đây dạng âm đợc Sound Toolkit DiamondWare sử dụng, th viện chơng trình mà cho phép nhanh chóng dễ dàng thêm tơng tác mang tính đặc trng cao vào ứng dụng multimedia hay trò chơi Nó ứng dụng dạng tệp (mono stereo), với tập độ phân giải tần số lấy mẫu khác 1.16 RA, RealAudio 3.0 (.RA) Đây dạng nén Progressive Networks đợc sử dụng cho việc xắp xếp Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm số âm thời gian thực Internet Các tệp RealAudio đợc mã hoá cách sử dụng giải thuật khác Mỗi giải thuật tối u cho dạng âm giải tần kết nối riêng Ta ghi sang dạng từ dạng hay 18-bit, âm mono hay âm stereo, với tần số lấy mẫu thích hợp kHz, 11.025 kHz, 16 kHz, 22.05 kHz, 44.1 kHz Ta sử dụng nguồn âm stereo để tạo tệp RealAudio âm mono hay stereo, nhiên sử dụng tệp đầu vào dạng âm mono để tạo tệp dạng âm stereo Trong trờng hợp này, cần phải chuyển sang dạng âm stereo trớc trình ghi [...]... tối u Khi đó tốt nhất ta nên xem xét ở khía cạnh tần số để xác định N Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm thanh số 2.5 Phép biến đổi nhanh Fourier (FFT - Fast Fourier Transform) Đây thực chất là DFT nhng với một thuật toán nhanh, gọn và hiệu quả FFT đã tạo ra một bớc ngoặt mới và thực sự đóng vai trò hết sức quan trọng trong việc phân tích, thiết kế và thực hiện các thuật toán xử lý tín... đã đổi dấu Đổi dấu phần ảo của kết quả thu đợc, sau đó chia dãy cho hệ số tỷ lệ N Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm thanh số để có kết quả cuối cùng 2.6 Cepstrum Phép biến đổi tín hiệu sang dạng Cepstrum tơng ứng là một phép biến đổi homomorphic, phép giải các bài toán không tuyến tính bằng các công cụ toán tuyến tính đã biết Cepstrum là từ đảo của từ Spectrum (phổ) có nghĩa là chúng ta... -1 y(n) Hình 2.2: Hệ thống xử lý Homomorphic Ưu điểm của hệ thống xử lý này là thuật toán có thể đợc tách thành các thuật toán mắc dây chuyền nh trên Trong đó, các khối A và A -1 là các khối nghịch đảo của nhau Còn khối F là hệ thống tuyến tính, bất biến, hay nói chung đó là một bộ lọc tuyến tính đơn giản Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm thanh số Chơng 2 giới thiệu chung về âm thanh số... thể tránh sự méo cắt (mà nó xuất hiện khi biên độ đỉnh vợt quá khuôn dạng lu trữ) trong khi giữ tỷ lệ tín hiệu/nhiễu ở mức cao nhất có thể Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm thanh số 3 Định dạng dữ liệu Quá trình chuyển đổi âm thanh tơng tự sang dạng âm thanh số cũng nh việc lu trữ âm thanh số liên quan tới 2 vấn đề: Lấy mẫu (sampling): Quá trình lấy mẫu liên quan tới việc tính toán một... toán tính FFT khác nhau, nhng nguyên tắc chung của tất cả các thuật toán này là dựa trên việc phân tích cách tính DFT cuả một dãy N số (gọi tắt là DFT N điểm) thành các phép tính DFT của các dãy nhỏ hơn, trong đó số phép tính tỷ lệ với N.log(N) Trong các cách tính này, FFT có 2 lớp cơ bản: thuật toán FFT đợc phân chia theo thời gian và phân chia theo tần số Cả hai thuật toán đều sử dụng phép tính toán... nhận dạng hay tổng hợp âm sau đó 3 Chủ đề của luận án Chính vì vậy, với đề tài Xây dựng chơng trình xử lý âm thanh số thì nhiệm vụ trớc tiên sẽ phải nghiên cứu, tìm hiểu các khuôn dạng lu trữ dữ liệu, sau đó xây dựng một chơng trình (xử dụng ngôn ngữ lập trình Delphi) để thao tác với các tệp âm thanh và phân tích tín hiệu của các âm thanh đó Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm thanh số Chơng... đổi z và Fourier là đồng nhất X(f) = X(z) = n = x(n).e-2jfn với |z| = 1 (1.5) So với phép biến đổi Laplace Xét tín hiệu tơng tự Xa(t), phép biến đổi Laplace của tín hiệu này là: Xa(t) = xa(t).e-stdt Nếu tín hiệu Xa(t) đợc lấy mẫu đều với chu kỳ T s và (t) là hàm xung Dirac, thì phép biến đổi Laplace của tín hiệu lấy mẫu là: Xe(s) = n = xa(t).(t-n.Ts).e-stdt Đồ án tốt nghiệp Xe(s) = Xây... độ âm chính là năng lợng đợc sóng âm truyền trong một đơn vị thời gian qua một đơn vị diện tích đặt vuông góc với phơng truyền (đơn vị W/m2) Tuy nhiên, để cảm nhận một âm, ta không đánh giá qua giá trị tuyệt đối Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm thanh số của cờng độ âm I, mà xét theo mức cờng độ âm L Tức là: L(B) = lg(I/I0) , với I0 là một giá trị chuẩn nào đó Thông thờng, L lấy đơn vị là... với các tệp âm thanh qua một trình soạn thảo âm thanh với các phép sao chép, cắt, dán, lọc, trộn âm hay chuyển đổi khuôn dạng tệp lu trữ cũng nh phơng thức lu trữ dữ liệu Đây là cách để chúng ta có thể cảm nhận đợc âm thanh một cách rõ nét Phân tích tín hiệu của âm thanh bằng cách biểu diễn dữ liệu âm thanh d- Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm thanh số ới dạng tín hiệu tuỳ theo mục đích... xử lý hiệu ứng âm thanh Ví dụ nh chuyển tệp au thành wav với dòng lệnh sau: sox filename.au filename.wav Đồ án tốt nghiệp Xây dựng chơng trình xử lý âm thanh số Chơng 3 khuôn dạng tệp âm thanh 1 Khuôn dạng lu trữ 1.1 Au/ Snd Dạng tệp Au là đơn giản và hiện nay đợc sử dụng khá rộng rãi cho sự phân tán trên mạng Internet, và cho sự tích hợp vào các ứng dụng Java và Apples Đây là dạng chuẩn đợc sử dụng

Ngày đăng: 19/11/2016, 16:06

Xem thêm: Đồ Án Tốt Nghiệp DigitalSound

TỪ KHÓA LIÊN QUAN

Mục lục

    3. Chủ đề của luận án

    lý thuyết xử lý tín hiệu số

    2. Xử lý tín hiệu số (DSP - Digital Signal Processing)

    2.1. Phép biến đổi Z

    Phép biến đổi z ngược

    Quan hệ của phép biến đổi Z với phép biến đổi Fourier

    So với phép biến đổi Laplace

    2.2. Biến đổi Fourier rời rạc (DFT - Discrete Fourier Transform)

    2.5. Phép biến đổi nhanh Fourier (FFT - Fast Fourier Transform)

    giới thiệu chung về âm thanh số

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w