Xây dựng chương trình xử lý âm thanh số
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
Giíi thiÖu chung
1. Giíi thiÖu chung
Cïng víi sù ph¸t triÓn cña cuéc c¸ch m¹ng khoa häc vµ c«ng nghÖ ®ang
diÔn ra mét c¸ch s«i ®éng, chóng ta ®ang tiÕn dÇn tíi thÕ giíi cña sù sè ho¸.
Víi c¸c −u ®iÓm cña xö lý sè, nhanh gän, chÝnh x¸c víi chÊt l−îng cao, mäi
lÜnh vùc ho¹t ®éng cña x· héi loµi ng−êi, nhÊt lµ c¸c ngµnh trong c¸c lÜnh vùc
th«ng tin liªn l¹c, ph¸t thanh truyÒn h×nh ... ®Òu tiÕn tíi viÖc ¸p dông mét c¸ch
®ång bé vµ cã hiÖu qu¶ c¸c c«ng cô còng nh− c¸c phÐp xö lý sè. Trong ®ã, ©m
thanh lµ mét lÜnh vùc ®Æc biÖt quan träng, ®©y lµ mét ph−¬ng thøc dïng ®Ó trao
®æi còng nh− c¶m nhËn tin, kh«ng chØ lµ tiÕng nãi, b¶n nh¹c mµ ®ã lµ tÊt c¶ c¸c
©m mµ ta c¶m nhËn ®−îc trong cuéc sèng hµng ngµy, do ®ã, lÜnh vùc vÒ ©m
thanh kh«ng thÓ n»m ngoµi xu h−íng ph¸t triÓn chung mµ cßn cÇn sù nghiªn
cøu s©u h¬n n÷a.
2. §Æt vÊn ®Ò
Víi ©m thanh sè, b»ng viÖc l−u tr÷ ©m thanh d−íi d¹ng c¸c d·y sè,
chóng ta ®¹t ®−îc yªu cÇu vÒ tèc ®é truyÒn còng nh− vÒ khèi l−îng l−u tr÷ vµ
®é trung thùc trong c¸c phÐp xö lý nh− khö nhiÔu, so¹n th¶o hay c¸c hiÖu qu¶
t¹o ®é vang, trÔ ... Do vËy, ngoµi c¸c ph−¬ng tiÖn sö dông kü thuËt sè, nh−
camera sè, thiÕt bÞ ghi sè, ®iÖn tho¹i sè... víi chÊt l−îng cao, th× nh÷ng ©m
thanh t−¬ng tù ®−îc ghi tõ micro víi c¸c nh¹c cô truyÒn thèng ®Òu ®−îc
chuyÓn ®æi sang d¹ng sè ho¸.
H¬n n÷a, víi ©m thanh, chóng ta kh«ng chØ quan t©m tíi kh¶ n¨ng c¶m
nhËn mét c¸ch trung thùc nhÊt ©m thanh tù nhiªn, mµ ta cßn h−íng tíi viÖc t¹o
ra (hay tæng hîp) ®−îc nh÷ng ©m thanh mµ ta mong muèn. Do ®ã, khi nãi ®Õn
©m thanh sè th× cÇn thiÕt ph¶i xÐt tíi 3 khÝa c¹nh:
• C¸c khu«n d¹ng l−u tr÷ ©m thanh víi c¸c ®Æc tÝnh riªng biÖt. §©y lµ yªu
cÇu tr−íc tiªn cña bÊt kú qu¸ tr×nh thu thanh hay khi cÇn ®äc d÷ liÖu ®Ó
ph©n tÝch. CÇn ph¶i hiÓu râ c¸c ®Æc tÝnh c¶ tõng khu«n d¹ng th× míi cã
thÓ l−u tr÷ mét c¸ch hiÖu qu¶ nhÊt.
• Thao t¸c 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 l−u
tr÷ còng nh− ph−¬ng thøc l−u 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.
1
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
• 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−íi d¹ng tÝn hiÖu tuú theo môc ®Ých ph©n tÝch. D÷ liÖu ®äc tõ tÖp, sau
®ã qua c¸c phÐp xö lý tÝn hiÖu sè nh− läc, hµm cöa sæ, biÕn ®æi FFT,
Cepstrum ... ®Ó cã thÓ rót ra c¸c tham sè ®Æc tr−ng, c¸c th«ng tin cÇn
thiÕt cho c¸c qu¸ tr×nh 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 l−u 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 ®ã.
2
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
Ch−¬ng 1
lý thuyÕt xö lý tÝn hiÖu sè
1. TÝn hiÖu sè
TÝn hiÖu lµ biÓu hiÖn vËt lý cña th«ng tin. VÒ mÆt to¸n häc, tÝn hiÖu
®−îc coi lµ mét hµm cña mét hay vµi biÕn ®éc lËp. §Ó ph©n lo¹i tÝn hiÖu, ta cã
thÓ xÐt ®Õn tÝnh chÊt cña biÕn ®éc lËp thêi gian hay ph©n lo¹i theo biªn ®é tÝn
hiÖu (liªn tôc hay rêi r¹c).
Tõ ®ã ta cã ®Þnh nghÜa: TÝn hiÖu sè (Digital Signal) lµ tÝn hiÖu rêi r¹c (theo
biÕn ®éc lËp thêi gian) ®ång thêi cã biªn ®é còng rêi r¹c ho¸ (l−îng tö ho¸).
x
3
2
1
0
t
-1
-2
-3
H×nh 2.1: TÝn hiÖu sè
Theo ®Þnh nghÜa trªn, tÝn hiÖu cã vai trß lµ vËt mang th«ng tin. Nªn tÝn
hiÖu cÇn ph¶i ®−îc xö lý sao cho cã thÓ dÔ dµng rót ra c¸c th«ng tin mong
muèn hay l−u tr÷ th«ng tin mét c¸ch tèi −u. Cho nªn viÖc ph¸t triÓn c¸c kü
thuËt còng nh− c¸c hÖ thèng xö lý tÝn hiÖu ®ãng vai trß hÕt søc quan träng.
Th«ng th−êng c¸c phÐp xö lý tÝn hiÖu lµ c¸c phÐp biÕn ®æi tÝn hiÖu thµnh d¹ng
kh¸c mong muèn, tuú theo yªu cÇu thu nhËn th«ng tin tõ tÝn hiÖu ®ã. VÝ dô
nh− viÖc läc bá nhiÔu ra khái tÝn hiÖu cã Ých, hay x¸c ®Þnh th«ng sè mang tin
nµo ®ã.
3
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
2. Xö lý tÝn hiÖu sè (DSP - Digital Signal Processing)
Xö lý tÝn hiÖu ®−îc sö dông trong rÊt nhiÒu lÜnh vùc khoa häc kh¸c
nhau, vµ xö lý ©m thanh lµ mét trong sè ®ã. Trong qu¸ tr×nh xö lý, c¸c phÐp xö
lý DSP chuÈn c¬ b¶n lµ: FFT, läc, thiÕt kÕ c¸c bé läc thêi gian, decimation,
interpolation (néi suy), tÝch chËp (convolution), ...
C¸c chøc n¨ng DSP (Digital Signal Processing) ®−îc thùc hiÖn bëi
soundcard t−¬ng ®−¬ng víi mét tËp c¸c kh¶ n¨ng cña phÇn cøng tæng hîp ©m
nh¹c ®iÖn tö analog: trén, läc, ®iÒu chÕ tÇn sè, biªn ®é... vµ nÐn. TÊt c¶ c¸c
hiÖu qu¶ ®−îc t¹o ra b»ng c¸ch dïng bé trÔ tÝn hiÖu nh−: vang, lÆp.... ®Òu cã
thÓ sö lý b»ng DSP. Sù kh¸c nhau lµ DSP (c¶ phÇn cøng vµ phÇn mÒm) cã thÓ
thùc hiÖn c¸c chøc n¨ng trªn d¹ng sãng sè hãa. NhiÒu soundcard cã tÝch hîp
DSP ®Ó t¨ng tèc ®é xö lý.
ViÖc ph©n tÝch vµ thiÕt kÕ cña c¸c hÖ thèng tuyÕn tÝnh ®· ®−îc thùc sù
®¬n gi¶n ho¸ bëi c¸c phÐp biÓu diÔn trong miÒn tÇn sè cña c¶ tÝn hiÖu vµ hÖ
thèng. Trong ®ã biÕn ®æi Fourier vµ biÕn ®æi Z ®ãng vai trß quan träng trong
viÖc biÓu diÔn c¸c tÝn hiÖu vµ hÖ thèng rêi r¹c theo thêi gian.
2.1. PhÐp biÕn ®æi Z
Nãi chung, phÐp biÕn ®æi Fourier lµ mét c«ng cô m¹nh ®Ó nghiªn cøu
tÝn hiÖu sè vµ t−¬ng tù vÒ c¶ mÆt lý thuyÕt vµ thùc hµnh. Nh−ng ®èi víi tÝn hiÖu
rêi r¹c, phÐp biÕn ®æi Z ®−îc sö dông réng r·i h¬n bëi ®©y lµ phÐp biÕn ®æi
m¹nh vÒ ph−¬ng diÖn lý thuyÕt.
§Þnh nghÜa
∞
PhÐp biÕn ®æi z cña tÝn hiÖu x(n) lµ: X(z) =
∑
x(n).z-n
(1.1)
n = −∞
Trong ®ã X(z) lµ hµm biÕn phøc cña biÕn phøc z. Chuçi X(z) cßn ®−îc
gäi lµ chuçi Laurent. X(z) vµ c¸c ®¹o hµm cña nã ®Òu lµ liªn tôc trong miÒn
héi tô. §©y lµ phÐp biÕn ®æi z hai bªn (n ch¹y tõ -∞ tíi ∞), ®−îc dïng ®Ó
nghiªn cøu hÖ thèng x¸c lËp cña hÖ thèng. Víi tÝn hiÖu nh©n qu¶, ta dïng phÐp
biÕn ®æi z mét phÝa:
∞
X(z) =
∑ x ( n) z
−n
(1.2)
n=0
PhÐp biÕn ®æi z mét phÝa dïng ®Ó nghiªn cøu chÕ ®é qu¸ ®é cña hÖ thèng.
PhÐp biÕn ®æi z ng−îc
VÒ mÆt lý thuyÕt, phÐp biÕn ®æi z ng−îc cã thÓ thiÕt lËp sau khi dïng ®Þnh lý
C«si (Cauchy) vÒ tÝch ph©n trªn ®−êng cong khÐp kÝn trªn mÆt ph¼ng phøc:
I=
1
z l −1 dz
2πj ∫Γ
(1.3)
4
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
trong ®ã Γ lµ ®−êng cong khÐp kÝn bao quanh gèc to¹ ®é trªn mÆt ph¼ng z.
KÕt qu¶ lµ:
víi l = 0
víi l ≠ 0
1
0
I=
B»ng c¸ch nh©n hai vÕ cña biÕn ®æi z víi zl-1/2πj, lÊy tÝch ph©n quanh
gèc to¹ ®é vµ n»m trong vïng héi tô, vµ sau ®ã can thiÖp tÝch ph©n vµ tæng, ta
cã biÓu thøc biÕn ®æi z ng−îc nh− sau:
x(l) =
1
2πj
∫ X ( z) z
l −1
(1.4)
dz
Γ
BiÓu thøc tho¶ m·n víi mäi l, ®−êng cong Γ lµ ®−êng cong khÐp kÝn, n»m
trong miÒn héi tô vµ ch¹y theo chiÒu d−¬ng (ng−îc chiÒu kim ®ång hå).
PhÐp biÕn ®æi z ®−îc ¸p dông trong qu¸ tr×nh gi¶i c¸c ph−¬ng tr×nh sai
ph©n tuyÕn tÝnh hÖ sè h»ng. Vµ c¸c tÝnh chÊt cña biÕn ®æi z t¹o nhiÒu thuËn lîi
trong c¸c vÊn ®Ò xö lý tÝn hiÖu sè. Nh− tÝnh tuyÕn tÝnh cho ta c¸ch tÝnh biÕn ®æi
z ng−îc th«ng qua viÖc ph©n tÝch mét hµm phøc t¹p thµnh c¸c hµm ®¬n gi¶n.
Quan hÖ cña phÐp biÕn ®æi Z víi phÐp biÕn ®æi Fourier
Tõ c«ng thøc ®Þnh nghÜa phÐp biÕn ®æi z (1.1), thay z=ejθ, tøc lµ biÓu diÔn
trong to¹ ®é cùc, vµ víi θ = 2πf.
∞
X(z) =
∑
x(n).r-n.e-j2πfn
n = −∞
Qua c«ng thøc trªn, ta thÊy phÐp biÕn ®æi z lµ phÐp biÕn ®æi Fourier cña
tÝch tÝn hiÖu nµy víi mét tÝn hiÖu hµm sè mò r-n. H¬n n÷a, phÐp biÕn ®æi
Fourier cña tÝn hiÖu rêi r¹c lµ phÐp biÕn ®æi z tÝnh trªn ®−êng trßn ®¬n vÞ (|z| =
1 hay r = 1), víi ®iÒu kiÖn miÒn héi tô cña phÐp biÕn ®æi z ph¶i chøa ®−êng
trßn ®¬n vÞ. Hay nãi c¸ch kh¸c, trªn ®−êng trßn ®¬n vÞ phÐp biÕn ®æi z vµ
Fourier lµ ®ång nhÊt.
∞
X(f) = X(z) =
∑
x(n).e-2jπfn
víi |z| = 1
(1.5)
n = −∞
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ú Ts 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µ:
5
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
∞
Xe(s) =
∞
∫ ∑
xa(t).σ(t-n.Ts).e-stdt
− ∞ n = −∞
∞
Xe(s) =
∑x
n = −∞
a
(n.Ts ).e − n.Ts .s
(1.6)
So s¸nh biÓu thøc nµy víi biÕn ®æi z cña tÝn hiÖu x(n) = xa(nTs), ta thÊy
biÕn ®æi Laplace cña tÝn hiÖu lÊy mÉu lµ biÕn ®æi z cña tÝn hiÖu sè t−¬ng øng
vµ ®−îc tÝnh víi z = exp(s.Ts). Cã nghÜa lµ: X(z) = Xe(s) víi z = e s.T .
s
2.2. BiÕn ®æi Fourier rêi r¹c (DFT - Discrete Fourier Transform)
DFT ®−îc sö dông réng r·i trong qu¸ tr×nh tÝnh to¸n sù ®¸nh gi¸ phæ,
c¸c hµm tù t−¬ng quan vµ viÖc cµi ®Æt c¸c bé läc sè. §©y lµ phÐp biÕn ®æi
Fourier rêi r¹c cña tÝn hiÖu x(n) cã ®é dµi h÷u h¹n vµ cã trôc tÇn sè còng ®−îc
rêi r¹c ho¸. Trong ®ã, tÝn hiÖu x(n) cã ®é dµi h÷u h¹n lµ tÝn hiÖu cã gi¸ trÞ kh¸c
0 trong mét kho¶ng h÷u h¹n thêi gian nµo ®ã vµ chóng b»ng 0 trong kho¶ng
cßn l¹i.
Víi x(n) ®−îc dïng nh− lµ mét chu tr×nh cña tÝn hiÖu, ta cã thÓ x©y
dùng tÝn hiÖu xp(n) tuÇn hoµn víi chu kú N b»ng c¸ch xÕp chång tuÇn hoµn
x(n):
∞
Xp(n) =
∑ x(n + iN )
(1.7)
i = −∞
Khi xÕp chång tuÇn hoµn, nÕu M ≤ N (víi M = N2 - N1 +1, trong ®ã N1
vµ N2 lµ thêi ®iÓm mµ trong ®ã tÝn hiÖu tån t¹i), th× hiÖn t−îng trïm thêi gian
gi÷a c¸c phÇn cña xp(n) sÏ kh«ng x¶y ra, nghÜa lµ cã thÓ dÔ dµng lÊy ra x(n)
ban ®Çu. Lóc nµy tÝn hiÖu x(n) cã ®é dµi lµ N víi c¸c mÉu tõ M tíi N-1 cã gi¸
trÞ b»ng 0.
Vµ ta quy −íc: xp(n) = x((n))N.
Ta cã c¸c c«ng thøc biÕn ®æi Fourier nh− sau:
⎡ N −1
x(n).W Nnk
X(k) = ⎢⎢∑
n=0
⎣⎢0
⎡1
x(n) = ⎢⎢ N
⎢⎣0
N −1
∑ X (k ).W
k =0
0 ≤ k ≤ N −1
(1.8)
víi k cßn l¹i
− nk
N
0 ≤ n ≤ N −1
(1.9)
víi n cßn l¹i
Trong ®ã X(k) lµ mét chu kú cña Xp(k), víi Xp(k) lµ c¸c mÉu trªn ®−êng
trßn ®¬n vÞ cña biÕn ®æi z mét chu kú cña xp(n), hay biÕn ®æi Fourier X(f) cña
mét chu kú cña xp(n).
6
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
2.3. Läc tÝn hiÖu
C¸c bé läc ®−îc sö dông ®Ó thay ®æi gi¸ trÞ tÇn sè cña ©m thanh. §©y lµ
kh©u xö lý c¬ b¶n cho mét chuçi c¸c b−íc xö lý ©m thanh tiÕp theo. VÝ dô nh−,
qu¸ tr×nh läc cã thÓ lµ gì bá nhiÔu ra khái qu¸ tr×nh thu thanh hay t¸ch biÖt
mét ©m, giäng nµo ®ã b»ng c¸ch chØ cho c¸c tÇn sè x¸c ®Þnh nµo ®ã ®i qua.
ChÝnh v× vËy, läc sè lµ mét øng dông quan träng nhÊt cña xö lý tÝn hiÖu.
C¸c bé läc sè ®· dÇn dÇn thay thÕ c¸c bé läc t−¬ng tù. ViÖc thiÕt kÕ c¸c bé läc
sè thùc tÕ ®Òu ®i tõ lý thuyÕt c¸c bé läc sè lý t−ëng.
C¸c bé läc sè tiªu biÓu lµ:
• Bé läc sè th«ng thÊp (Low pass filter)
• Bé läc sè th«ng cao (High pass filter)
• Bé läc sè th«ng d¶i (Band pass filter)
• Bé läc sè ch¾n d¶i (Band stop filter)
Trong ®ã, c¸c bé läc ®−îc sö dông ®Ó läc tÇn sè chÝnh, nªn tÊt c¶ c¸c ®Æc tr−ng
cña läc tÇn sè ®Òu ®−îc cho theo ®¸p øng biªn ®é.
2.4. Hµm cöa sæ
Nh− ta ®· biÕt, phÐp biÕn ®æi Fourier rêi r¹c DFT t¸c ®éng trªn tÝn hiÖu
cã ®é dµi h÷u h¹n, nªn cÇn thiÕt ph¶i h¹n chÕ ®é dµi ®èi víi c¸c tÝn hiÖu cã ®é
dµi v« cïng hoÆc qu¸ lín ®Ó cã thÓ nghiªn cøu phæ cña chóng. §Ó lµm ®iÒu
nµy ta th−êng dïng hµm cöa sæ, tøc lµ nh©n tÝn hiÖu x(n) víi cöa sæ w(n-n0) ®Ó
nhËn ®−îc mét ®o¹n xN(n) trong kho¶ng n0 tíi n0+N-1 ®Ó ph©n tÝch.
⎡ x ( n) n 0 ≤ n ≤ n 0 + N − 1
víi n cßn l¹i
xN(n) = x(n). w(n- n0) = ⎢
⎣0
(1.10)
ViÖc nh©n tÝn hiÖu víi hµm cöa sæ theo thêi gian t−¬ng ®−¬ng víi viÖc nh©n
chËp phæ cña tÝn hiÖu x(n) víi phæ cña cöa sæ:
f0 +1
XN(f) =
∫
X(g)W(f-g)dg = X(f)*W(f)
(1.11)
f0
Trong ®ã XN(f), X(f), vµ W(f) lµ biÕn ®æi Fourier t−¬ng øng cña xN(n), x(n), vµ
w(n).
KÕt qu¶ nhËn ®−îc tõ tÝn hiÖu sau khi ®· cho qua cöa sæ kh«ng nh÷ng
phô thuéc vµo d¹ng cöa sæ mµ cßn phô thuéc vµo sè ®iÓm tÝn hiÖu ph©n tÝch N,
còng nh− vÞ trÝ cöa sæ ®−îc ®Æt ë ®©u, tøc lµ t×m n0 phï hîp. Ta ph¶i chän vÞ trÝ
cöa sæ sao cho cöa sæ bao trïm lªn phÇn quan träng cña tÝn hiÖu vµ bá qua
nh÷ng chç cã biªn ®é nhá, vµ ph¶i chän N sao cho mét chu kú xp(n) lµ xÊp xØ
cña x(n) víi sai sè cho phÐp vµ kh«ng ®Ó x¶y ra hiÖn t−îng trïm thêi gian. Nh−
vËy, víi nh÷ng tÝn hiÖu bÊt kú, do kh«ng cã ®ñ th«ng tin ®Ó cã thÓ chän n0 vµ
7
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
N mét c¸ch hîp lý th× sÏ kh«ng thÓ nhËn ®−îc mét kÕt qu¶ ph©n tÝch 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.
2.5. PhÐp biÕn ®æi nhanh Fourier (FFT - Fast Fourier Transform)
§©y thùc chÊt lµ DFT nh−ng 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 hiÖu sè còng
nh− tÝn hiÖu t−¬ng tù. Tuy cã nhiÒu thuËt to¸n tÝnh FFT kh¸c nhau, nh−ng
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 t¹i chç (in place), vµ sè phÐp nh©n phøc trong c¶ hai thuËt
gi¶i lµ nh− nhau. Sù kh¸c nhau c¬ b¶n gi÷a hai c¸ch tÝnh lµ thø tù x¾p xÕp d÷
liÖu ®Çu vµo vµ ®Çu ra.
Th«ng th−êng, ta xÐt tíi 2 c¸ch tÝnh FFT: tÝnh FFT thuËn vµ FFT ng−îc.
B¾t ®Çu tõ cÆp c«ng thøc biÕn ®æi Fourier rêi r¹c thuËn vµ ng−îc:
N −1
X(k) =
∑
x(n).WNkn
1
N
∑
víi k = 0, 1, .., N-1
k =0
x(n) =
N −1
X(k).WN-kn
víi n = 0, 1, .., N-1
k =0
CÆp c«ng thøc trªn lµ t−¬ng tù nhau, chØ kh¸c ë hÖ sè tû lÖ
1
vµ dÊu
N
cña mò cña hÖ sè W. Nh− vËy, ta cã thÓ dïng c«ng thøc tÝnh FFT thuËn ®Ó tÝnh
FFT ng−îc b»ng c¸ch lÊy liªn hîp phøc cña c¶ hai vÕ c«ng thøc * vµ chuyÓn
hÖ sè tû lÖ N sang tr¸i:
N.x∗(n) =
N −1
∑
X∗(k).WknN
(1.12)
k =0
VÕ ph¶i chÝnh lµ DFT cña dÉy X*(k) nªn cã thÓ tÝnh ®−îc b»ng bÊt kú ch−¬ng
tr×nh tÝnh FFT nµo. Cßn d·y x(n) cã thÓ tÝnh b»ng c¸ch lÊy liªn hîp phøc hai vÕ
c«ng thøc * vµ chia cho n:
⎤
1 ⎡ N −1 ∗
X (k ).W Nkn ⎥
x(n) =
∑
⎢
N ⎣ k =0
⎦
∗
(1.13)
Tãm l¹i, ®Ó tÝnh FFT ng−îc tõ ch−¬ng tr×nh tÝnh FFT thuËn ta thùc hiÖn c¸c
b−íc sau:
• LÊy liªn hîp phøc cña X(k) b»ng c¸ch ®æi dÊu phÇn ¶o cña X(k).
8
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
• TÝnh FFT cña d·y X(k) ®· ®æ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
®Ó 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 ®ang tiÕp tôc thùc hiÖn viÖc ph©n tÝch phæ nµo ®ã trªn mét phæ tÇn sè.
Kh¸i niÖm vÒ Cepstrum lµ mét phÇn c¬ b¶n cña lý thuyÕt trong c¸c hÖ thèng
homomorphic cho qu¸ tr×nh xö lý tÝn hiÖu.
Ngoµi ra, ta cã kh¸i niÖm: Cepstrum phøc cã nghÜa lµ biÕn ®æi ng−îc
Fourier (hay Z) cña logarit tù nhiªn phøc cña phæ phøc; vµ Cepstrum thùc lµ
phÐp biÕn ®æi cña Fourier ng−îc cña logarit thùc cña biÕn ®æi Fourier cña hµm
®ã.
x(n)
HÖ thèng
homomorphic
y(n)
x(n)
A
F
A
-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.
9
§å ¸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è
1. ¢m thanh vµ ®Æc tÝnh cña ©m thanh
1.1. Sãng ©m vµ c¶m gi¸c ©m
Khi mét vËt dao ®éng vÒ mét phÝa nµo ®ã, nã lµm cho c¸c líp kh«ng khÝ
liÒn tr−íc bÞ nÐn l¹i, vµ líp kh«ng liÒn sau d·n ra. Sù nÐn vµ d·n kh«ng khÝ nh−
vËy lÆp ®i lÆp l¹i mét c¸ch tuÇn hoµn nªn ®· t¹o ra trong kh«ng khÝ mét sãng
®µn håi. Sãng nµy truyÒn tíi tai, nÐn vµo mµng nhÜ khiÕn cho mµng nhÜ còng
dao ®éng víi cïng tÇn sè. Khi mµng nhÜ dao ®éng, c¸c vÞ trÝ ph©n biÖt cña
mµng nhÜ trªn bÒ mÆt gièng nh− nã chuyÓn ®éng vÒ tr−íc hay sau ®¸p øng víi
c¸c sãng ©m vµo. Khi cïng mét thêi ®iÓm, ta nghe thÊy nhiÒu ©m, th× mäi ©m
thanh ph©n biÖt nµy ®−îc trén víi nhau mét c¸ch tù nhiªn trong tai gièng nh−
mét h×nh mÉu ®¬n cña ¸p suÊt kh«ng khÝ thay ®æi. Tai vµ ãc lµm viÖc cïng
nhau ®Ó ph©n tÝch tÝn hiÖu nµy ng−îc l¹i thµnh nh÷ng c¶m gi¸c vÒ ©m riªng
biÖt.
1.2. §é cao cña ©m
§é cao cña ©m lµ mét ®Æc tÝnh sinh lý cña ©m vµ nã phô thuéc vµo mét
®Æc tÝnh cña ©m lµ tÇn sè. Nh÷ng ©m cã tÇn sè kh¸c nhau, t¹o nªn c¶m gi¸c vÒ
c¸c ©m kh¸c nhau: ©m cã tÇn sè lín gäi lµ ©m cao hay ©m thanh; ©m cã tÇn sè
nhá gäi lµ ©m thÊp hay ©m trÇm. Sù c¶m nhËn vÒ møc ®é to nhá cña ©m thanh
®−îc gäi lµ c−êng ®é (pitch). Vµ c−êng ®é cã liªn quan rÊt gÇn víi mét thuéc
tÝnh vÒ mÆt vËt lý gäi lµ tÇn sè (frequency).
1.3. ¢m l−îng cña ©m (®é to cña ©m)
N¨ng l−îng cña ©m
Gièng nh− c¸c sãng c¬ häc, sãng ©m còng mang n¨ng l−îng sãng tû lÖ
víi b×nh ph−¬ng biªn ®é sãng.
Vµ c−êng ®é ©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).
10
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
Tuy nhiªn, ®Ó c¶m nhËn mét ©m, ta kh«ng ®¸nh gi¸ qua gi¸ trÞ tuyÖt ®èi
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µ deciben (ký hiÖu lµ dB). Víi L=1dB (I
lín gÊp 1,26 lÇn I0) lµ møc c−êng ®é nhá nhÊt mµ tai ta cã thÓ ph©n biÖt ®−îc.
¢m l−îng cña ©m
§Ó cã thÓ t¹o ra c¶m gi¸c ©m, c−êng ®é ©m ph¶i lín h¬n mét ng−ìng
nµo ®ã. Víi c¸c tÇn sè trong kho¶ng 1000-5000Hz, ng−ìng nghe kho¶ng 1012W/m2. Víi tÇn sè 50Hz th× ng−ìng nghe lín gÊp 105 lÇn. Vµ møc ©m l−îng
cña ©m phô thuéc vµo c¶ c−êng ®é ©m vµ tÇn sè.
1.4. ¢m s¾c cña ©m
¢m s¾c lµ mét ®Æc tÝnh sinh lý cña ©m vµ nã ®−îc cÊu thµnh trªn c¬ së
c¸c ®Æc tÝnh vËt lý cña ©m lµ tÇn sè vµ biªn ®é. §©y lµ mét ®Æc tr−ng riªng cña
tõng nguån ph¸t ©m. Khi mét nguån 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=2* f1, f3=3* f1 ...
¢m cã tÇn sè f1 gäi lµ ©m c¬ b¶n hay ho¹ ©m thø nhÊt. C¸c ©m cã tÇn sè
f2, f3, ... gäi lµ c¸c ho¹ ©m thø hai, thø ba ... Tuú theo ®Æc tÝnh cña tõng nguån
ph¸t ©m mµ t¹o ra c¸c ho¹ ©m kh¸c nhau víi biªn ®é hay kho¶ng kÐo dµi kh¸c
nhau. Do ®ã ©m do mét nguån ©m ph¸t ra lµ sù tæng hîp ©m c¬ b¶n vµ c¸c ho¹
©m. Nªn, mÆc dï cã cïng tÇn sè f1 cña ©m c¬ b¶n nh−ng ®−êng biÓu diÔn
kh«ng cßn lµ mét ®−êng h×nh sin ®¬n thuÇn mµ lµ mét ®−êng phøc t¹p cã chu
kú.
2. ¢m thanh sè
D¹ng chung nhÊt cña c¸c qu¸ tr×nh thu ©m thanh sè lµ d¹ng ®iÒu biÕn
m· xung (PCM - Pulse Code Modulation). §©y lµ d¹ng mµ phÇn lín c¸c ®Üa
compact vµ c¸c tÖp Wave sö dông. Trong phÇn cøng thu thanh d¹ng PCM, mét
microphone chuyÓn d¹ng biÕn ®æi ¸p suÊt kh«ng khÝ (c¸c sãng ©m thanh)
thµnh d¹ng biÕn ®æi ®iÖn ¸p. Sau ®ã mét bé chuyÓn ®æi t−¬ng tù-sè ®o (mÉu
ho¸) dßng ®iÖn ¸p t¹i c¸c qu·ng thêi gian ®Òu nhau. VÝ dô nh−, trong mét ®Üa
compact cã tíi 44,100 mÉu ®−îc lÊy mçi gi©y. Mçi ®iÖn ¸p mÉu ho¸ nhËn
®−îc sÏ ®−îc chuyÓn ®æi sang d¹ng sè nguyªn 16-bit. Mét ®Üa CD chøa 2 kªnh
d÷ liÖu: mét cho tai tr¸i, vµ mét cho tai ph¶i (®èi víi ©m thanh d¹ng stereo).
Hai kªnh ®−îc thu thanh ®éc lËp, ®−îc ®Æt theo c¹nh (side) trªn ®Üa compact
(d÷ liÖu cho c¸c kªnh tr¸i vµ ph¶i lu©n phiªn nhau...tr¸i, ph¶i, tr¸i, ph¶i, ...). D÷
liÖu nhËn ®−îc tõ qu¸ tr×nh thu thanh PCM lµ mét hµm theo thêi gian.
2.1. Nguyªn lý
VÒ c¬ b¶n, ©m thanh t−¬ng tù vµ sè lµ kh¸c nhau, nªn ta lu«n bÞ mÊt
th«ng tin khi lµm phÐp chuyÓn ®æi gi÷a chóng. Khi ®−îc sè ho¸, sãng ©m
thanh ®−îc biÓu diÔn nh− lµ mét chuçi c¸c sè (®−îc gäi lµ c¸c mÉu), mµ chóng
biÓu diÔn ¸p suÊt kh«ng khÝ hay tÝn hiÖu ®iÖn t¹i c¸c thêi ®iÓm kÕ tiÕp nhau
11
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
theo thêi gian. Khi mÉu ho¸ mét tÝn hiÖu t−¬ng tù, ta lu«n gÆp ph¶i 2 vÊn ®Ò:
thø nhÊt, mçi gi¸ trÞ kÕ tiÕp trong d¹ng biÓu diÔn d¹ng sè lµ mét qu·ng x¸c
®Þnh nµo ®ã cña thêi gian, vµ mçi khèi cã mét ®é réng x¸c ®Þnh; thø hai lµ c¸c
sè sè ho¸ lµ rêi r¹c. ChØ cã mét sè x¸c ®Þnh c¸c ®é cao cã thÓ cho mçi khèi.
Theo h×nh vÏ, ta thÊy ®é cao c¸c khèi kh«ng ¨n khíp víi ®−êng tÝn hiÖu gèc.
TÝn hiÖu t−¬ng tù
TÝn hiÖu sè
H×nh 2.3: ChuyÓn ®æi tÝn hiÖu sang d¹ng c¸c mÉu sè
§©y lµ hai lçi c¬ b¶n trong tÝn hiÖu ©m thanh sè. Lçi nµy cã thÓ ®−îc
kiÓm so¸t b»ng c¸ch thay ®æi khu«n d¹ng chi tiÕt cña d¹ng biÓu diÔn ©m thanh,
nh−ng kh«ng thÓ lo¹i bá ®−îc hoµn toµn. ChÝnh v× vËy, tuú theo øng dông ta sÏ
ph¶i chÊp nhËn mét sè lçi nhÊt ®Þnh. Vµ c¸c hÖ sè kh¸c nh− kÝch th−íc d÷ liÖu
hay tÇn sè xö lý yªu cÇu ta ph¶i chÊp nhËn mét sai sè lín h¬n tõ mét sè nguån
®Ó cã thÓ gi¶m h¬n n÷a c¸c sai sè kh¸c.
2.2. TÇn sè vµ c−êng ®é
TÇn sè cña mét sãng h×nh sin lµ kho¶ng thêi gian mµ nã dïng cho mét
chu kú hoµn chØnh. TÇn sè ®−îc tÝnh theo hertz (Hz), lµ sè c¸c chu kú hoµn
chØnh mµ chóng xuÊt hiÖn trong mét gi©y. Tai ng−êi cã thÓ nghe thÊy c¸c sãng
h×nh sin cã tÇn sè dao ®éng trong kho¶ng 30 Hz tíi 20.000 Hz. Nh÷ng dao
®éng trong miÒn tÇn sè nµy gäi lµ dao ®éng ©m hay ©m thanh.
Chu kú (periodic) lµ nghÞch ®¶o cña tÇn sè, lµ kho¶ng thêi gian mµ tÝn
hiÖu lÆp l¹i mét c¸ch chÝnh x¸c. MÆc dï rÊt nhiÒu hµm to¸n häc ®−îc sö dông
®Ó lµm viÖc víi ©m thanh dùa trªn c¸c tÝn hiÖu lÆp mét c¸ch lý t−ëng, ®Æc biÖt
lµ phÐp biÕn ®æi Fourier, nh−ng l¹i cã rÊt Ýt c¸c ©m thanh thùc lµ thùc sù tuÇn
hoµn. Trong thùc tÕ, tÇn sè chØ cã ý nghÜa trùc tiÕp cho c¸c sãng h×nh sin.
Tuy nhiªn, mäi ©m thanh ®Òu cã thÓ lµm vì thµnh mét tËp c¸c sãng
h×nh sin. Ta cã thÓ t¹o bÊt cø ©m thanh nµo b»ng c¸ch thªm vµo mét tËp c¸c
sãng h×nh sin phï hîp, còng nh− cã thÓ chia c¸c ©m thanh phøc t¹p thµnh c¸c
sãng h×nh sin riªng biÖt, ®¬n gi¶n.
Ngoµi ra, trong qu¸ tr×nh thu thanh sè ho¸, cÇn chó ý tíi biªn ®é ®Ønh ®Ó
12
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
cã 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 l−u tr÷) trong khi gi÷ tû lÖ tÝn hiÖu/nhiÔu ë møc cao nhÊt cã thÓ.
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 l−u 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
c¸ch tuÇn hoµn tÝn hiÖu t−¬ng tù, vµ sö dông c¸c mÉu nµy thay cho tÝn
hiÖu gèc trong qu¸ tr×nh xö lý.
• L−îng tö ho¸ (quantization): Qu¸ tr×nh xö lý c¸c mÉu t−¬ng tù víi ®é
chÝnh x¸c kh«ng x¸c ®Þnh vµ lµm trßn chóng.
3.1. PAM (Pulse Amplitude Modulation)
Trong thùc tÕ, c¸c bé chuyÓn ®æi DAC vµ ADC th−êng xuyªn sö dông
d¹ng PAM (Pulse Amplitude Modulation) nh− mét khu«n d¹ng trung gian,
trong ®ã ©m thanh ®−îc coi nh− mét chuçi c¸c xung, vµ biªn ®é cña mçi xung
(®é cao) biÓu diÔn ®é m¹nh cña ©m thanh t¹i ®iÓm ®ã.
TÝn hiÖu t−¬ng tù
Xung PAM
H×nh 2.4: PAM
3.2. PWM (Pulse Width Modulation)
Ngoµi ra, ta cßn d¹ng biÓu diÔn kh¸c lµ PWM (Pulse Width
Modulation), còng gièng nh− PAM, ®©y lµ d¹ng biÓu diÔn mçi mÉu nh− mét
xung, nh−ng nã sö dông ®é réng hay kho¶ng kÐo dµi cña xung (thay cho biªn
®é) ®Ó biÓu diÔn ®é m¹nh cña ©m thanh.
13
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
TÝn hiÖu t−¬ng tù
Xung PWM
H×nh 2.5: PWM
3.3. PCM (Pulse Code Modulation)
§©y lµ d¹ng biÓu diÔn mçi mÉu nh− mét chuçi c¸c xung, mµ c¸c xung
®ã biÓu diÔn m· nhÞ ph©n (code binary) cña nã. Nh−ng biÓu diÔn d¹ng nµy rÊt
khã x¸c ®Þnh ®©u lµ ®iÓm b¾t ®Çu vµ kÕt thóc cña mçi m·. Tuy nhiªn, kh«ng
khã kh¨n ®Ó cã thÓ kh¾c phôc ®iÒu nµy, vÝ dô nh− ta cã thÓ x©y dùng c¸c m·
theo mét d¹ng riªng ®Ó kh«ng cã m· nµo chøa 3 sè 1 liªn tiÕp (111) vµ sau ®ã
chÌn 111 vµo tÝn hiÖu t¹i ®iÓm b¾t ®Çu cña mçi m·. Trong bé nhí m¸y tÝnh,
c¸c m· nhÞ ph©n liªn tiÕp ®−îc l−u tr÷ nh− c¸c sè. Th«ng th−êng, d÷ liÖu ©m
thanh d¹ng PCM ®−îc l−u tr÷ víi 8 hay 16 bits (1 hay 2 bytes) mçi mÉu.
TÝn hiÖu t−¬ng tù
Xung PCM
H×nh 2.6: PCM
3.4. TÇn sè lÊy mÉu
Nãi chung, c¸c hÖ thèng lÊy mÉu ©m thanh ®Òu ®−îc ®Æc tr−ng bëi tÇn
sè lÊy mÉu (®¬n vÞ: mÉu/gi©y hay Hz) (sampling rate), ®©y lµ sè c¸c mÉu ®−îc
sö dông ®Ó biÓu diÔn mét gi©y cña ©m thanh. Vµ Harry Nyquist (1889-1976)
®· kh¸m ph¸ ra r»ng, mét tÝn hiÖu ©m thanh ®· ®−îc lÊy mÉu cã thÓ t¹o l¹i mét
14
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
c¸ch chÝnh x¸c bÊt cø ©m thanh nµo mµ tÇn sè cña nã nhá h¬n mét nöa tÇn sè
lÊy mÉu. Do ®ã, mét nöa tÇn sè lÊy mÉu th−êng xuyªn ®−îc tham chiÕu nh−
mét giíi h¹n Nyquist (Nyquist limit).
Khi xÐt tíi ©m thanh sè, ta ph¶i xÐt tíi hiÖu øng “aliasing” bëi cã thÓ cã
nhiÒu sãng h×nh sin cã thÓ ph¸t sinh ra c¸c mÉu nh− nhau nªn cã kh¶ n¨ng
chän nhÇm tÝn hiÖu. §èi víi qu¸ tr×nh thu thanh th× ®iÒu ®ã kh«ng quan träng
bëi mét bé läc th«ng thÊp ®−îc kÌm vµo qu¸ tr×nh chuyÓn ®æi sè-t−¬ng tù sÏ
gì bá c¸c thµnh phÇn tÇn sè cao. Tuy nhiªn, ®ã thùc sù lµ mét vÊn ®Ò trong qu¸
tr×nh tæng hîp ©m thanh sè.
Th«ng th−êng, nªn lµm viÖc trªn c¸c tÖp ©m thanh víi d¹ng d÷ liÖu
kh«ng nÐn. Mét khi ®· nÐn, ch−¬ng tr×nh xö lý sÏ ph¶i gi¶i nÐn mçi khi sö
dông, vµ víi bÊt cø l−u ®å (gi¶i thuËt) nÐn nµo còng ®Òu g©y nguy hiÓm tíi
chÊt l−îng ©m thanh, kh«ng kÓ ®Õn thêi gian dïng ®Ó gi¶i nÐn. V× thÕ c¸c tÖp
©m thanh sè dïng ®Ó ph¸t l¹i (playback) kh«ng nªn sö dông d¹ng nÐn.
4. Khu«n d¹ng l−u tr÷
4.1. Khu«n d¹ng chung
Khi ghi ©m, ©m thanh cã thÓ ®−îc l−u d−íi d¹ng tÖp. Cã nhiÒu khu«n
d¹ng tÖp ©m thanh kh¸c nhau. Vµ 3 d¹ng chÝnh lµ:
• D¹ng tù nhiªn: nh− c¸c tÖp cã ®u«i WAV, AIF... c¸c tÖp nµy cho ©m
thanh tèt song thêi gian truyÒn l©u.
• D¹ng nÐn: c¸c tÖp Shock wave, Quick Time, MPEG... ®Ó ph¸t l¹i cÇn cã
phÇn mÒm ®Æc biÖt. ¦u ®iÓm lµ kÝch th−íc nhá, nh−ng mÊt thêi gian
gi¶i nÐn, vµ chÊt l−îng gi¶m.
• D¹ng MIDI: khu«n d¹ng ®¬n gi¶n, kÝch th−íc nhá, thuËn lîi trong viÖc
so¹n th¶o ©m thanh, nh−ng chÊt l−îng phô thuéc vµo thiÕt bÞ.
Nãi chung, c¸c tÖp ©m thanh sè ®−îc l−u tr÷ trong mét khu«n d¹ng
t−¬ng øng víi header cña lo¹i ®ã. Mét sè khu«n d¹ng nh− sau:
AU: lµ c¸c tÖp cã ®u«i .au. Hç trî c¸c tÖp d¹ng mono vµ stereo víi ®é
ph©n gi¶i tõ 8bit tíi 16bit, tÇn sè lÊy mÉu trong kho¶ng 8KHz tíi 48KHz.
Nguyªn gèc trªn nÒn UNIX, song còng hç trî bëi c¸c øng dông PC vµ MAC.
AIFF: lµ c¸c tÖp cã ®u«i .aif (Audio Interchange File Format). Hç trî
tÖp ©m thanh kh«ng nÐn d¹ng mono, stereo hoÆc khu«n d¹ng ®a kªnh
(multichannel). §é ph©n gi¶i vµ tÇn sè lÊy mÉu trong ph¹m vi rÊt réng, ®¹t tíi
chÊt l−îng CD (16bit, lÊy mÉu 44KHz). Nguyªn gèc trªn nÒn Macintosh
nh−ng còng hç trî trªn PC vµ UNIX.
WAV: lµ c¸c tÖp cã ®u«i .wav (Waveform Audio). Hç trî d¹ng mono,
stereo, hoÆc khu«n d¹ng ®a kªnh víi tÇn sè lÊy mÉu 44KHz, 16bit mÉu. Khu«n
d¹ng WAV nguyªn gèc trªn nÒn Windows, hiÖn nay ®©y lµ d¹ng tÖp ©m thanh
phæ biÕn trªn Internet. WAV t−¬ng tù cÊu tróc .aif nh−ng kh¸c phÇn ®Çu th«ng
15
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
tin (header).
MID: lµ c¸c tÖp cã ®u«i .mid (Musical Instrument Data Interchange).
Hç trî d÷ liÖu Standar MIDI File (SMF) trªn hÖ thèng trang bÞ MIDI playback
(víi mét sè khu«n d¹ng ©m thanh tæng hîp).
Kh«ng cã yªu cÇu thiÕt lËp ®Æc biÖt nµo ®èi víi c¸c bé duyÖt (browser)
c¸c tÖp ©m thanh ®−îc l−u tr÷ trong mét khu«n d¹ng ®Æc biÖt víi tÇn sè lÊy
mÉu vµ ®é ph©n gi¶i riªng biÖt. PhÇn ®u«i (phÇn më réng cña tÖp) vµ header
cña tÖp ®−îc chÌn vµo mét c¸ch tù ®éng khi thùc hiÖn l−u tÖp, ngoµi ra cßn cã
c¸c th«ng tin bé duyÖt cÇn thiÕt ®Ó khëi ®Çu khi ph¸t l¹i.
4.2. ChuyÓn ®æi khu«n d¹ng
Cã nhiÒu tr×nh øng dông cã thÓ chuyÓn ®æi c¸c tÖp ©m thanh sè tõ kiÓu
nµy sang kiÓu kh¸c. HÇu hÕt c¸c ch−¬ng tr×nh x¸c ®Þnh khu«n d¹ng tÖp ©m
thanh qua phÇn më réng cña tÖp. Tuy nhiªn, nªn x¸c ®Þnh qua c¸c khu«n d¹ng
tÖp. C¸c c«ng cô chuyÓn ®æi cã AWave vµ SoX.
AWave
Víi mét m¸y PC ch¹y Windows 95, AWave lµ mét bé chuyÓn ®æi tÖp
©m thanh. Nã kh«ng ch¹y trªn Win 3.1 thËm chÝ víi m· më réng win32. NÕu
chØ cã mét m¸y tÝnh cò vµ bé so¹n th¶o d¹ng sãng ©m thanh kh«ng cho phÐp
l−u tÖp ©m thanh trong mét khu«n d¹ng ®Æc biÖt, tèt nhÊt nªn dïng SoX.
SoX
SoX lµ viÕt t¾t cña Sound Exchange, bé dÞch tÖp tæng hîp chÊp nhËn
nhiÒu khu«n d¹ng tÖp kh¸c nhau, bao gåm .au, .hcom, .raw, .st, .voc, .auto,
.cdr, .dat, .wav, .aif, .snd vµ c¸c d¹ng kh¸c. C¸c phiªn b¶n cña SoX t−¬ng thÝch
trªn Unix vµ Dos. Nã x¸c ®Þnh khu«n d¹ng tÖp tõ ®u«i tÖp song nã còng tù
®éng x¸c ®Þnh c¸c ®Æc ®iÓm. SoX còng cã thÓ chuyÓn ®æi tÇn sè lÊy mÉu vµ
c¸c phÐp 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
16
§å ¸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 l−u 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 trong c¸c m¸y tÝnh NeXT vµ Sun, vµ
cã rÊt nhiÒu kiÓu d÷ liÖu. Nã tæ chøc trªn c¸c m¸y tÝnh Sun gièng nh− sù kÕt
xuÊt (dump) cña d÷ liÖu ©m thanh μ-Law. Sau ®ã c¸c header c¬ së ®−îc thªm
vµo ®Ó lµm cho viÖc ®Þnh danh c¸c tÖp nµy ®−îc dÔ dµng h¬n vµ ®Ó cho viÖc chØ
®Þnh d¹ng ©m thanh mét c¸ch râ rµng. D¹ng ®−îc biÕt ®Õn nh− SND trªn c¸c
m¸y tÝnh NeXT.
ThuËn lîi c¬ b¶n cña Au lµ tÝnh ®¬n gi¶n. Header ®Þnh danh mäi tham
sè quan träng, vµ d÷ liÖu ©m ®−îc l−u gi÷ nh− mét khóc ®¬n. Nªn viÖc viÕt m·
lÖnh ®Ó ®äc header cña tÖp Au lµ ®¬n gi¶n. BÊt lîi duy nhÊt lµ header kÌm vµo
®é dµi tæng thÓ cña d÷ liÖu ©m thanh, mµ ®é dµi d÷ liÖu nµy th−êng kh«ng
®−îc biÕt tr−íc. §Ó gi¶i quyÕt vÊn ®Ò nµy, trong ch−¬ng tr×nh ®äc d÷ liÖu tÖp
Au, ta thiÕt lËp mét ®é dµi gi¶ t¹o ë møc cao, vµ thªm mét biÕn kiÓm tra ®Ó
dõng ch−¬ng tr×nh khi ®· ®äc ®Õn cuèi tÖp hay khi võa ®äc hÕt ®é dµi giµnh
riªng. Th«ng th−êng, kh«ng nªn thiÕt lËp ®é dµi d÷ liÖu ©m thanh vÒ 0.
Sau ®©y lµ khu«n d¹ng cña Au header:
§é dµi
4
4
4
4
4
4
N
N
M« t¶
Magic string: .snd
§Þnh vÞ cña d÷ liÖu ©m thanh tõ ®Çu tÖp (Ýt nhÊt lµ 28)
Sè bytes cña d÷ liÖu ©m thanh
D¹ng ©m thanh
Tèc ®é mÉu (mÉu/gi©y)
Sè c¸c kªnh truyÒn
M« t¶ v¨n b¶n tuú chän (Ýt nhÊt 4 bytes)
D÷ liÖu ©m thanh
17
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
PhÇn lín c¸c tÖp Au chøa header nh− minh ho¹ trªn. §Æc biÖt 4 bytes
®Çu lµ “.snd”. Cã nhiÒu tÖp cò h¬n mµ b¶n th©n chóng ®Þnh danh nh− d¹ng Au
(chóng sö dông phÇn më réng .au), nh−ng chóng kh«ng cã phÇn header nµy.
Sau ®©y lµ mét vµi m· ho¸ d¹ng ©m thanh ®−îc dïng cho c¸c tÖp Au.
M· ho¸
1
2
3
4
5
6
7
8
10
11
12
13
14
18
19
20
21
23
24
25
26
27
M« t¶
8-bit μ-Law G.711
8-bit linear
16-bit linear
24-bit linear
32-bit linear
Floating-point sampled
Double-precision float sampled
Fragmented sampled data
DSP program
8-bit fixed-point samples
16-bit fixed-point samples
24-bit fixed-point samples
32-bit fixed-point samples
16-bit linear with emphasis
16-bit linear compressed
16-bit linear with emphasis and compression
Music kit DSP commands
ADPCM G.721
ADPCM G.722
ADPCM G.723.3
ADPCM G.723.5
8-bit A-Law G.711
Trong ®ã 3 d¹ng ®−îc sö dông réng r·i lµ: 8-bit μ-Law (th−êng ®−îc
lÊy mÉu t¹i tÇn sè 8,000Hz), 8-bit linear, vµ 16-bit linear. C¸c d¹ng cßn l¹i
th−êng ®−îc sö dông trªn c¸c hÖ thèng NeXT vµ Sun. §Æc biÖt, c¸c d¹ng DSP
lµ c¸c d¹ng NeXT riªng, vµ c¸c phiªn b¶n d¹ng dÊu phÈy ®éng (floating-point)
nãi chung nªn ®−îc tr¸nh, bëi chóng rÊt hiÕm khi cã thÓ cµi ®Æt ®−îc gi÷a c¸c
hÖ thèng (dÜ nhiªn d¹ng μ-Law G.711 lµ rÊt gän nhÑ, chñ yÕu chóng lµ d¹ng 8bit dÊu phÈy ®éng).
Nãi chung, d¹ng Au lµ d¹ng tÖp l−u tr÷ rÊt ®¬n gi¶n nªn ta th−êng
chuyÓn ®æi c¸c tÖp ©m thanh sang d¹ng Au vµ sau ®ã sö dông nã nh− mét d¹ng
c¬ së cho c¸c qu¸ tr×nh xö lý tiÕp theo.
18
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
1.2. Voc
D¹ng cña Sound Blaster vµ Sound Blaster Pro. §©y lµ d¹ng chØ ®¸p øng
c¸c ©m 8-bit; d¹ng ®¬n (mono) cho 44.1 kHz, vµ c¸c ©m næi (stereo) cho 22
kHz. C¸c tÖp .Voc cã thÓ chøa th«ng tin cho sù lÆp l¹i vµ tÝnh trÇm (silence).
TÖp Voc bao gåm mét header víi c¸c khèi d÷ liÖu theo sau. Mét vµi
khèi d÷ liÖu chøa d÷ liÖu ©m thanh hiÖn thêi; nh÷ng khèi kh¸c chøa c¸c th«ng
tin vÒ ®Þnh d¹ng hay d÷ liÖu trî gióp kh¸c. Khëi ®Çu tÖp Voc ®−îc thiÕt kÕ cho
c¸c bé xö lý hä Intel, mäi sè d¹ng “multi-byte” ®−îc l−u tr÷ khëi ®Çu víi byte
thÓ hiÖn Ýt nhÊt.
§Þnh danh tÖp Voc
Mäi tÖp Voc b¾t ®Çu víi mét ký hiÖu dµi 20-byte, chøa c¸c tõ “Creative
Voice File” vµ ®Æc tÝnh Control-Z. §Æc tÝnh Control-Z lµ dÊu hiÖu cuèi tÖp
(end-of-file) cho MS-DOS; sù hiÓn diÖn cña nã ®¶m b¶o r»ng toµn bé tÖp
kh«ng thÓ ®−îc in hay so¹n th¶o mét c¸ch ngÉu nhiªn trªn hÖ thèng ®ã.
Voc Header
Header chøa mét gi¸ trÞ ký hiÖu (signature value) vµ mét phiªn b¶n tÖp.
Chó ý r»ng gi¸ trÞ 26 (hex 1A), lµ mét dÊu hiÖu kÕt thóc tÖp trong c¸c hÖ thèng
MS-DOS. Th«ng th−êng, m· ho¸ phiªn b¶n tÖp lµ 266 (phiªn b¶n 1.10) hay
267 (phiªn b¶n 1.20).
Sau ®©y lµ Voc Header:
§é dµi
19
1
2
2
2
M« t¶
X©u ký tù ®Þnh danh: Creative Voice File
Byte value 26 (MS-DOS end-of-file)
KÝch th−íc tæng cña header, th−êng lµ 26
M· ho¸ phiªn b¶n tÖp: phÇn chÝnh*256+phÇn phô
Check value: 4,659 - phiªn b¶n tÖp
Khi cµi ®Æt, do header cã thÓ ®−îc më réng nªn cÇn thiÕt bá qua bÊt cø d÷ liÖu
nµo mµ nã cã thÓ theo sau c¸c th«ng tin chuÈn.
C¸c khèi d÷ liÖu
§Ó xö lý mét tÖp Voc, cÇn ph¶i ®äc vµ xö lý c¸c khèi d÷ liÖu theo tr×nh
tù mµ chóng xuÊt hiÖn trong tÖp. Cã mét vµi tr−êng hîp mµ trong ®ã c¸c khèi
kh¸c nhau cã thÓ chØ ®Þnh cïng mét d÷ liÖu; sù chØ ®Þnh ®Çu tiªn th−êng gèi
lªn c¸c phÇn tiÕp theo.
19
§å ¸n tèt nghiÖp
X©y dùng ch−¬ng tr×nh xö lý ©m thanh sè
Sau ®©y lµ khu«n d¹ng cña mét khèi d÷ liÖu cña tÖp Voc:
§é dµi
1
3
n
M« t¶
D¹ng khèi
§é dµi d÷ liÖu: n
D÷ liÖu
C¸c d¹ng khèi quan träng nhÊt lµ khèi kÕt thóc (d¹ng 0), c¸c khèi më
réng (d¹ng 8 vµ 9), vµ khèi d÷ liÖu ©m thanh (d¹ng 1).
Khèi kÕt thóc (d¹ng 0)
Khèi kÕt thóc lµ mét sù ngo¹i lÖ cho khu«n d¹ng khèi. Nã gåm mét
byte 0 ®¬n, kh«ng g¾n thªm tr−êng ®é dµi. Khèi nµy ®¸nh dÊu sù kÕt thóc cña
tÖp Voc.
Khèi d÷ liÖu ©m thanh (d¹ng 1)
Khèi d÷ liÖu ©m thanh b¾t ®Çu víi 2 bytes chØ ®Þnh tÇn sè lÊy mÉu vµ
ph−¬ng thøc nÐn. TiÕp theo ®ã lµ d÷ liÖu ©m thanh thùc sù. M· ho¸ tÇn sè lÊy
mÉu ®−îc tÝnh to¸n tõ tÇn sè lÊy mÉu víi c«ng thøc: 256 - (1,000,000/tÇn sè
lÊy mÉu).
Sau ®©y lµ c¸c m· ho¸ ph−¬ng thøc nÐn:
M· ho¸
0
1
2
3
4
6
7
512
M« t¶
D÷ liÖu d¹ng PMC unsigned 8-bit
NÐn, 4 bits/mÉu
NÐn, 2.6 bits/mÉu
NÐn, 2 bits/mÉu
D÷ liÖu d¹ng PCM signed 16-bit
CCITT A-Law
CCITT μ-Law
Creative Labs 16-bit to 4-bit ADPCM
Chó ý r»ng, c¸c gi¸ trÞ trªn 3 lµ chØ sö dông cho c¸c khèi më réng d¹ng
9. Vµ, mét tÖp Voc cã thÓ chØ chøa duy nhÊt mét khèi d÷ liÖu ©m thanh. D÷
liÖu ©m thanh thªm vµo cã thÓ ®−îc l−u tr÷ trong mét khèi ©m liªn tiÕp.
Khi ®äc d÷ liÖu, cÇn quan t©m tíi d÷ liÖu ©m thanh gèc (©m thanh ch−a
®−îc xö lý) tõ tÖp, cÇn ph¶i biÕt sè bytes d÷ liÖu gèc d÷ l¹i trong khèi hiÖn
thêi. D¹ng Voc ®· ®−îc ph¸t triÓn thªm b»ng c¸ch thªm vµo c¸c d¹ng khèi míi
20
- Xem thêm -