1. Trang chủ >
  2. Luận Văn - Báo Cáo >
  3. Báo cáo khoa học >

II. SƠ LƯỢC VỀ CẤU TRÚC TIẾNG VIỆT:

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (853.9 KB, 156 trang )


 Tự Động Hóa Đài 116



GVHD:



Phan Đình Mãi – Nguyễn Thanh Liêm



− Âm tiết tiếng Việt tương đối cách biệt : trong tiếng Việt các âm của các từ trong

một câu phát âm hầu như tách biệt nhau, nghĩa là các từ đó được phát âm hoàn toàn độc lập,

không có hiện tượng đọc nối nhau như trong tiếng Anh.

− Tiếng Việt tương đối nhất quán giữa cách phát âm và cách viết : nguyên tắc chính

của chữ viết tiếng Việt là ký âm, nghĩa là đọc sao viết vậy. Nhưng sau các cuộc nghiên cứu

trên tiếng Việt đã chỉ ra một số bất đồng trong hệ thống chữ viết, mặc dù vậy, nhìn chung

tiếng Việt vẫn nhất quán giữa đọc và viết.

− Hiện tượng môi hóa : trong tiếng Việt có một số âm môi như ô, u. Các phụ âm

đứng trước các âm này sẽ bị hiện tượng biến đổi sóng âm, gọi là hiện tượng môi hóa. Ví dụ :

trong các từ bu, tô thì phụ âm b, t sẽ phát âm khác đi so với đứng trong các từ khác.



2. Hệ Thống Ngữ Am Tiếng Việt :

2.1. Khái niệm :

Chuỗi lời nói con người được phân chia thành nhiều đoạn nhỏ như câu, cụm từ, từ,…

và cuối cùng là âm tiết. Âm tiết là đơn vị phát âm nhỏ nhất, không phân chia được nữa dù

nói chậm đến đâu (mà vẫn giữ đúng ý nghĩa âm tiết đó).

Mỗi âm tiết bao gồm nhiều yếu tố ngữ âm tạo thành và các yếu tố ngữ âm hầu như

phát âm cùng lúc để tạo nên đúng âm tiết đó. Bên cạnh đó, người ta còn xem âm tiết bao

gồm nhiều yếu tố đoạn tính – là các yếu tố có giới hạn phân đoạn trong âm tiết như phụ âm,

nguyên âm và âm đệm – và các yếu tố siêu đoạn tính – là các yếu tố không có giới hạn trong

âm tiết như ngữ điệu, thanh điệu.

Đặc điểm riêng của âm tiết tiếng Việt là đơn âm và mang thanh điệu.



2.2. Cấu trúc âm tiết tiếng Việt



Thanh Điệu

Phần vần



Am Đầu

Am đệm



Âm chính



Âm cuối



Một âm tiết tiếng Việt gồm 3 phần :

− Thanh điệu : là yếu tố luôn có mặt trong mọi âm tiết tiếng Việt.

− Âm đầu : yếu tố mở đầu âm tiết, thường độc lập với phần còn lại.

− Phần vần : gồm 3 phần :



 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



Trang 59



 Tự Động Hóa Đài 116



GVHD:



Phan Đình Mãi – Nguyễn Thanh Liêm



− Âm đệm : là một bán nguyên âm chiếm vị trí trung gian giữa phụ âm đầu và phần

vần. Có thể có hay không trong âm tiết. Tiếng Việt có hai âm đệm là [o] và [u] được phát

âm tương đối giống nhau.

− Âm chính : là một nguyên âm (đơn hay đôi), luôn có mặt trong âm tiết, giữ vai trò là

đỉnh của âm.

− Âm cuối : là phụ âm hay bán nguyên âm để kết thúc âm tiết. Tiếng Việt có hai bán

nguyên âm cuối là [i] và [u].



a). Thanh điệu:

Có 6 thanh điệu : ngang, huyền, sắc, hỏi, ngã, nặng.

Trong âm tiết, hầu như thanh điệu không ảnh hưởng đến phụ âm đầu. Thanh điệu thể

hiện rõ nhất ở cuối âm tiết. Trong các âm tiết không có âm cuối hoặc kết thúc bằng phụ âm

cuối vang hay bán nguyên âm thì các đặc trưng của âm điệu được thể hiện rõ ràng (VD : la,

là, l, lã, lá, lạ). Còn các âm tiết kết thúc bằng phụ âm cuối tắc, vô thanh (p,t,c) các thanh

điệu rất khó thể hiện (VD : cáp, cạp nhưng không có , càp, cp, cãp).



b). Phụ âm :

Phụ âm đầu có thể không có trong âm tiết. Trong tiếng Việt có một số phụ âm viết

khác nhau như có cùng một cách đọc :

VD : − c,k,q : cùng phát âm là /k/.

− g, gh : cùng phát âm là /g/.

− ng, ngh : cùng phát âm là /ng/.

Phụ âm "q" không xuất hiện riêng lẻ mà kèm với âm đệm "u" để tạo phụ âm "qu"

đọc là /kw/.

Các phụ âm "g" và "gh", "ng" và "ngh" ở thế đối lập bổ sung tức là nguyên âm nào

không kết hợp được với phụ âm này thì kết hợp được với phụ âm kia.

Các phụ âm chỉ có một cách biểu diễn duy nhất và không thể tách rời ra được. VD :

"gi", "gh", "ng", . không thể ghép lại bằng các âm của từng ký tự riêng biệt mà phi phát âm

một cách duy nhất.

Phụ âm làm phụ âm cuối phát âm hoàn toàn với lúc làm phụ âm đầu. Có 8 phụ âm vừa

có thể làm phụ âm đầu vừa có thể làm phụ âm cuối là {c, ch, m, n, ng, nh, p, t} và được chia

ra làm 2 loại :

Loại vang (hữu thanh) : m, n, nh, . khi các phụ âm này làm âm cuối thì nguyên âm

đứng trước nó phát âm bình thường, không bị nén hay ngắt lại

Loại tắc (vô thanh) : p, t, c, . khi các phụ âm này làm âm cuối thì nguyên âm đứng

trước nó phát âm bị nén hay ngắt lại.



 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



Trang 60



 Tự Động Hóa Đài 116



GVHD:



Phan Đình Mãi – Nguyễn Thanh Liêm



BẢNG PHỤ ÂM TIẾNG VIỆT



b



c



ch



d



đ



g



gi



gh



h



k



kh



l



m



m



nh



ng



ngh



p



ph



q



qu



r



s



t



th



tr



x



v



c). Nguyên âm :

Là thành phần không thể thiếu trong tiếng Việt. Nó được dùng làm âm chính. Khi

làm âm chính, nó kết hợp với các âm đệm và âm cuối (có thể không có) tạo nên phần vần và

làm đỉnh của âm tiết. Có hai loại là nguyên âm đơn và nguyên âm đôi.

BẢNG NGUYÊN ÂM

Nguyên âm đơn



Nguyên âm đôi



a



i



ư



ia



ă



o



y







â



ô



ươ



e



ơ



ưa



ê



u







III. CÁC PHƯƠNG PHÁP, TIÊU CHUẨN TỔNG HỢP TIẾNG NÓI TRONG HỆ

THỐNG TIẾNG VIỆT:



1. Nguyên Nhân Cần Phải Tổng Hợp Tiếng Nói

Xuất phát từ những nhu cầu trao đổi thông tin giữa người sử dụng với máy tính: thay

vì nhập yêu cầu bằng các inputbox và máy tính đáp ứng bằng cách hiển thị các message;

hoặc cho phép cả tiếng nói và giao tiếp dữ liệu diễn ra trong cùng một cuộc gọi telephone

thông qua sự điều khiển của máy tính. Để thỏa mãn nhu cầu trên, thông thường người ta

dùng phương pháp thu âm trước (prerecording) nghĩa là ta thu âm toàn bộ câu nói; khi cần

đọc câu nào, ta mở file âm thanh tương ứng với câu đó. Cách làm này có ưu điểm là đạt độ

tự nhiên cao nhưng có 2 nhược điểm lớn là không linh hoạt và tốn nhiều dung lượng nhớ để

lưu trữ các file âm thanh.



 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



Trang 61



 Tự Động Hóa Đài 116



GVHD:



Phan Đình Mãi – Nguyễn Thanh Liêm



Để tăng tính linh hoạt cho hệ thống tự động và giảm dung lượng lưu trữ ta dùng kỹ

thuật tổng hợp tiếng nói



2. Các Tiêu Chuẩn Cần Thỏa Mãn Khi Tổng Hợp Tiếng Nói:

Tiếng nói tổng hợp dù sao cũng không phải là tiếng nói thực cho nên không thể

giống hoàn toàn tiếng nói tự nhiên. Tuy nhiên khi sử dụng kỹ thuật này, cần thỏa một số

tiêu chuẩn tối thiểu:

− Đạt độ trung thực tương đối : mọi người có thể hiểu được mà không cần học hỏi

hoặc tập trung nghe cao độ. Nếu không đạt được điều này thì tiếng nói tổng hợp sẽ không

thể sử dụng được trong thực tế vì sẽ làm người nghe khó chịu.

− Có thể thay thế con người để phục vụ trong các hệ thống điện thoại, hệ thống dịch

vụ công cộng, robot .

− Khối lượng lưu trữ không quá lớn để tiện sử dụng và có thể phổ biến nhiều nơi



3. Các Phương Pháp Tổng Hợp Âm Cho Tiếng Việt .

Có 2 hướng tổng hợp tiếng nói chính là tổng hợp dựa vào việc phân tích tần số và

tổng hợp dựa vào việc ghép âm.

Đối với hướng phân tích tần số, ta phân tích các đặc trưng tiếng nói để tìm ra tần số,

pha. Khi tổng hợp sẽ tái tạo tiếng nói từ các đặc tính này. Hướng này rất phức tạp và chất

lượng âm còn kém. Trong khi đó, hướng tổng hợp dựa vào việc ghép âm dễ dàng được hiện

thực trên máy tính hơn.



3.1. Ghép từng từ đơn:

Tính chất tiếng Việt là âm của từ đầu không ảnh hưởng âm các từ sau. Do đó ta có thể

ghép các từ thành một câu.

Phương pháp này đạt độ tự nhiên cao nhất và cách hiện thực đơn giản nhất.

Tiếng Việt phổ thông có khoảng 6000 từ. Nếu ta thu với tần số lấy mẫu 8KHz, 8

bit/mẫu, mono, nén PCM. Mỗi từ thu trong 0.8 giây (tốc độ đọc chậm nhất) thì khối lượng

âm thanh cần lưu trữ là:

6000 * 8000 * 1 * (1/2) * 0.8 = 19,200,000 bytes .

Khối lượng dữ liệu của phương pháp này là khá lớn. Mặt khác ta không thể thu âm hết

đủ các từ đã có trong tiếng Việt vì tiếng Việt có rất nhiều từ vay mượn từ các thứ tiếng khác.

Nhận xét:

− Với phương pháp này, khối lượng lưu trữ âm dùng cho ứng dụng khá lớn(khoảng

2000 từ) so với phương pháp ghép âm loại một. Nhưng với dung lượng đĩa cứng ngày nay

thì vấn đề lưu trữ không là vấn đề đáng lo ngại.

− Mức độ ảnh hưởng của từ đi trước với từ đi sau là không đáng kể và có thể chấp

nhận được.



3.2. Ghép âm theo các âm tiết cơ bản nhất:

 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



Trang 62



 Tự Động Hóa Đài 116



GVHD:



Phan Đình Mãi – Nguyễn Thanh Liêm



Ví dụ: "bằng" được ghép từ [b]+[ằ]+[ng]

Phương pháp này có khối lượng lưu trữ nhỏ nhất vì chỉ có 28 phụ âm và 68 nguyên âm

cùng các biến thể thanh. Khối lượng lưu trữ:

(16+68) * 8000 * 1 * (1/2) *0.8 = 268,800 bytes

Tuy nhiên, phương pháp này rất khó hiện thực vì:

Khi phụ âm có vai trò làm phụ âm cuối, chúng được phát âm khác với khi chúng làm

phụ âm đầu. Phụ âm đầu mở ra để kết hợp với nguyên âm, phụ âm cuối khép lại không kết

hợp với nguyên âm nữa.

Cần chú ý khi phát âm nguyên âm trong trường hợp âm cuối là loại tắc (vô thanh) ví

dụ như p, t, c.Khi này thanh điệu không thể hiện trên phụ âm cuối mà thể hiện ở giai đoạn

chuyển tiếp từ nguyên âm sang âm cuối.

Do đó chất lượng âm của phương pháp này cũng còn hạn chế.



3.3. Ghép âm từ hai âm loại 1:

Ví du: "bằng" được ghép từ [b] + [ ằng] .

Một từ được tách ra làm hai phần là phụ âm đầu và vần. điều này căn cứ trên đặc điểm

tiếng Việt là phụ âm đầu ít phụ thuộc vào phần vần và thanh điệu. Trong phụ âm đầu được

cắt rất ngắn chỉ còn lại âm bật (thông thường vào khoảng 0.15 giây). Phần vần cũng được

cắt bỏ ở phần đầu một lượng tưng ứng.

Phương pháp này cho chất lượng âm thanh tương đương so với phương pháp ghép từ

đơn. Theo phương pháp này ta tách được 28 phụ âm đầu và 650 phần vần. Với cách thu âm

như trước thì khối lượng lưu trữ sẽ là:

650 * 8000 * 1 * (1/2) * (0.8 - 0.15) + 28 * 8000 * 1 * (1/2) * 0.15 =

1,706,800 ~ 1.7 Mbytes



 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



Trang 63



 Tự Động Hóa Đài 116



GVHD:



Phan Đình Mãi – Nguyễn Thanh Liêm



HÌNH MÔ TẢ CÁCH GHÉP HAI ÂM THÀNH TỪ



Để dùng phương pháp ghép hai từ âm loại 1 ta có bảng thống kê các phần vần như sau:

BẢNG THỐNG KÊ VẦN TIẾNG VIỆT

a

e

ê

I

o

ô

ơ

u

ư

y

ác

ãi

ãm

ãn

ão

au

ảy

ằm

ằn

ấc

ẫm

ẫn

âu

ây

éc



á

é

ế

í

ó





ú





ạc

ại

ạm

ạn

ạo

áu

ãy

ẳm

ẳn

ậc

ậm

ận

ấu

ấy

em



 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



à

è



ì

ò





ù





ai

am

an

ao

áp

àu

ắc

ẵm

ắp

âm

ân

ấp

ầu

ầy

ém























ài

ám

án

áo

ạp

ay

ặc

ặm

ặp

ấm

ấn

ập

ẩu

ẩy

èm























ái

àm

àn

ào

át

áy

ăm

ăn

ắt

ầm

ần

ất

ẫu

ẫy

ẻm



ã





Ĩ

õ





ũ





ải

ảm

ản

ảo

ạt

ày

ắm

ắn

ặt

ẩm

ẩn

ật

ậu

ậy

ẽm

Trang 64



 Tự Động Hóa Đài 116

ẹm

ẹn

ẹo

ếm

ếp

ều

ỉa

ỉm

ịn

iu

óa

óe

ỏi

ỏm

ỏn

ọt

ội

ốm

ốn

ộp

ởi

ởm

ởn

ợt

ụa

uễ

ũi

ũm

ũn

uy

ưa

ức

ừu

ỵt

ảng

ảnh

ẳng

ẩng

ẻng

ếnh

iếc

iềm

iện

iếu

ính

oạc

oãi

oạn



GVHD:



en

eo

ép

ệm

ệp

ểu

ĩa

ịm

ip

íu

òa

òe

õi

õm

õn

ốc

ổi

ồm

ồn

ốt

ỡi

ỡm

ỡn

ua

úc

uệ

ụi

ụm

ụn

úy

ứa

ực

ứu

ách

ãng

ãnh

ẵng

ẫng

ẽng

ềnh

iệc

iên

iếp

iều

ình

oai

oàm

oản



 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



én

éo

ẹp

ễm

ết

ệu

ịa

in

íp

ìu

ỏa

ỏe

ọi

ọm

ọn

ộc

ỗi

ổm

ổn

ột

ợi

ợm

ợn

úa

ục

ui

um

un

úp

ùy

ừa

ừm

ựu

ạch

ạng

ạnh

ặng

ậng

ẹng

ểnh

iểm

iến

iệp

iểu

ỉnh

oái

oạm

oãn



èn

èo

ét

ên

ệt

ia

im

ín

ịp

ỉu

õa

oi

om

on

óp

ôi

óc

ỗm

ỗn

ơi

ơm

ơn

ớp

ùa

uế

úi

úm

ún

ụp

ủy

ửa

ứt

ửu

ang

anh

ăng

âng

eng

ếch

ễnh

iễm

iền

iết

iễu

ĩnh

oại

oan

oáp



Phan Đình Mãi – Nguyễn Thanh Liêm



ẻn

ẻo

ẹt

ến

êu

ía

ím

ìn

ít

ĩu

ọa

ói

óm

ón

ọp

ối

ọc

ộm

ộn

ới

ớm

ớn

ợp

ủa

uề

ùi

ùm

ùn

út

ũy

ữa

ựt

ữu

áng

ánh

ắng

ấng

éng

ệch

ích

iệm

iển

iệt

iệu

ịnh

oài

oán

oát



ẽn

ẽo

êm

ển

ếu

ìa

ìm

ỉn

ịt

oa

oe

òi

òm

òn

ót

ồi

ôm

ôn

ốp

ời

ờm

ờn

ớt

ũa

uể

ủi

ủm

ủn

ụt

ụy

ựa

ưu

ýt

àng

ành

ằng

ầng

èng

ênh

ịch

iếm

iễn

iêu

inh

oác

oải

oàn

oạt



Trang 65



 Tự Động Hóa Đài 116



GVHD:



oay

oăm

oằn

oèn

ong

oóc

ộng

uận

uậy

ũng

uối

uồm

uồn

uya

uỷu

ửng

ưởi

ượm

ượn

ướu

iêng

oang

oánh

oắng

uâng

uống

uỵch

uyện

ương

yêng



oáy

oắm

oẳn

oẻn

óng

ông

uân

uất

uẩy

ụng

uồi

uổm

uổn

uyn

uỵu

ững

ượi

ươn

ướp

ưộu

iếng

oáng

oành

oẳng

uếch

uồng

uyên

uyết

ướng

yểng



oạy

oằm

oẵn

oeo

òng

ống

uấn

uật

ung

uốc

uổi

uỗm

uỗn

uýp

ưng

ước

ưỡi

ướn

ượp

yếm

iềng

oàng

oảnh

oẵng

uệch

uổng

uyến

uyệt

ường



oảy

oặm

oắt

oèo

ỏng

ồng

uần

uây

úng

uộc

uỗi

uộm

uộn

uỵp

ừng

ược

ươm

ườn

ướt

yểm

iểng

oảng

oãnh

oong

uênh

uỗng

uyền

uynh

ưởng



Phan Đình Mãi – Nguyễn Thanh Liêm



oắc

oăn

oặt

oét

õng

ổng

uẩn

uấy

ùng

uôi

uôm

uôn

uốt

uýt

ứng

ươi

ướm

ưởn

ượt

yên

iễng

oãng

oạnh

oóng

uềnh

uộng

uyển

uýnh

ưỡng



oặc

oắn

oen

oẹt

ọng

ỗng

uẫn

uầy

ủng

uội

uốm

uốn

uột

uỵt

ựng

ưới

ườm

ưỡn

ươu

yến

iệng

oanh

oăng

oòng

uông

uých

uyễn

uỳnh

ượng



Nhận xét:

Một từ tiếng việt bao gồm 2 phần: phần âm đầu và phần vần. Âm đầu chủ yếu là các phụ âm

trong tiếng việt. Qua nghiên cứu và tìm hiểu thêm, chúng em thấy rằng:

-



ứng với một loại âm đầu ( ở đây chủ yếu là phụ âm ) phần vần ở phía sau sẽ thay

đổi theo một quy luật nào đó so với phần vần chuẩn khi chưa có âm đầu tuỳ theo

cách phát âm của phụ âm. Chẳng hạn :

/t/

/ch/



/am/ t

/am/ ch



nếu đem /ch/ ráp với /am/ t thì tiếng phát ra sẽ không trung thực tức là khi xây

dựng mô hình âm thanh phần vần độc lập với so với âm đầu sẽ không tận dụng được hết

tính phân biệt giữa các từ do sự biến đổi phổ tín hiệu phần vần so với tác động của các âm

đầu khác nhau.

Để tìm ra quy luật biến đổi phổ tín hiệu này đòi hỏi ta phải có máy phân tích phổ và đi vào

lĩnh vực xử lý tiếng nói, ta mới có thể quan sát và phân tích mẫu sóng âm tại từng thời điểm



 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



Trang 66



 Tự Động Hóa Đài 116



GVHD:



Phan Đình Mãi – Nguyễn Thanh Liêm



nhằm tìm ra quy luật. Tuy nhiên, với phạm vi của đề tài, việc nghiên cứu này là chưa cần

thiết.



3.4. Ghép âm từ hai âm loại 2:

Ví dụ "bằng" được ghép từ [bà]+[ằng]

Phương pháp này gần giống phương pháp trên nhưng phần phụ âm đầu được cắt lấn

sang phần vần. Theo đó, ta sẽ có 28*650 phần phụ âm đầu tương ứng với 650 phần vần.

Trong thực tế, ta có khoảng 1400 phần đầu. Như vậy khối lượng lưu trữ tổng cộng sẽ là:

(1400+650)* 8000 *1 * (1/2) * 0.8 = 6,560,000 bytes

Phương pháp này mắc phải một số khuyết điểm:

− Vị trí cắt lấn sang phần vần khó xác định vì đây là vùng trộn lẫn giữa hai âm.

− Tuy khối lượng lưu trữ là nhỏ so với ghép từ (3 lần) nhưng lớn hơn nhiều so với

ghép âm loại 1 (4 lần).

Khi dùng phương pháp ghép âm thì việc chuẩn bị các âm mất thời gian rất lớn. Việc

chuẩn bị âm được thực hiện thủ công do không thể xác định chính xác vị trí cần cắt. Do đó

nếu phương pháp này có số lượng âm lớn gấp 4 lần thì thời gian và chi phí bỏ ra cũng lớn

gấp 4 lần so với phương pháp ghép âm loại một.

Ngoài ra chất lượng âm của phương pháp này cũng chưa được kiểm nghiệm để có thể

đánh giá ưu điểm về chất lượng so với phương pháp loại 1.



IV. Sơ lược về các dạng file âm thanh dùng trong Card Dialogic

Card Dialogic chơi được hai loại file âm thanh : file wav và file vox. Theo như tìm

hiểu qua tài liệu cung cấp theo card, card Dialogic chơi file vox tốt hơn file wav, nhưng nhà

cung cấp không cung cấp tài liệu về file vox nên chúng em dùng file wav thay thế. Do đó

chúng em phải có những tìm hiểu sơ lược về file wav.

∗ Tìm hiểu sơ lược về file wave:



1. Cấu Trúc Wave File:

∗ RIFF file.

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 số hoá â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ử hoá bằng 1 hoặc 2 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 1 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



 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



Trang 67



 Tự Động Hóa Đài 116



GVHD:



Phan Đình Mãi – Nguyễn Thanh Liêm



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ượt từng

chunk, đọc dữ liệu ở những 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ó giá

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ữ thuờng.

Trường ckSize 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ũng là một chunk.

Một RIFF file luôn bắt đầu bằng một chunk loại "RIFF"

∗ Cấu trúc Wave file

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".

+ 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ó giá trị là WAVE_FORMAT_PCM được định nghĩa trong

tập tin MMSYSTEM.H như sau:



 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



Trang 68



 Tự Động Hóa Đài 116



GVHD:



Phan Đình Mãi – Nguyễn Thanh Liêm



#define WAVE_FORMAT_PCM 1

Giá 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 giá 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. Giá trị thông thường của trường này là:

 11025 -- 11.025 kHz •

 22050 -- 22.05 kHz •

 44100 -- 44.1 kHz

nAvgBytesPerSec cho biết số byte trung bình yêu cầu trong 1 giây để phát lại mẫu dữ

liệu của sóng âm.

nBlockAlign cho biết số byte dùng để chứa một mẫu âm thanh. Như vậy, mẫu 8 bit

hoặc ít hơn sẽ yêu cầu 1 byte, mẫu 9 đến 16 bit sẽ yêu cầu 2 bytes. Nếu âm thanh là steréo

thì yêu cầu gấp 2 lần số byte dùng trong âm thanh mono.

Ta thấy trong WAVEFORMAT chưa có thông tin về số bit dùng để lượng tử hóa

một mẫu dữ liệu của sóng âm. Thực tế, Wave File sẽ xác lập số bit dùng cho một mẫu dữ

liệu bằng một trường gắn vào cuối cấu trúc của WAVEFORMAT. Cấu trúc đó có thể được

định nghĩa như sau:

typedef struc pcmwaveformat_tag

{

WAVEFORMAT wf;

WORD wBitsPerSample;

} PCMWAVEFORMAT;

wBitsPerSample cho biết số bit trong một mẫu dữ liệu. Chú ý rằng các mẫu dữ liệu

vẫn phải lưu trữ ở dạng byte hoặc word. Do đó, nếu một Wave File dùng 12 bit để lượng tử

hóa một mẫu sóng âm thì sẽ phải lưu trữ cả 4 bit thừa không dùng đến.

+ Subchunk "data"

Dữ liệu của "data" subchunk của Wave File chứa các số liệu của âm thanh đã được

số hóa. Đối với mẫu âm thanh 8 bit, dữ liệu của "data" subchunk bao gồm các giá trị 1 byte

(có giá trị từ 0 – 255) của các mẫu âm thanh. Đối với mẫu âm thanh 16 bits, mỗi mẫu dữ

liệu gồm 2 bytes (có giá trị từ -32768 tới 32767). Điều này không có nghĩa là file wave 16

bits sẽ nghe to hơn 256 lần file wave 8 bits mà nó có nghĩa là âm thanh được lượng tử hóa

chính xác hơn, nghe trung thực hơn.

Trong mẫu Mono 8 bits, dữ liệu của subchunk "data" gồm chuỗi các giá trị 1 bytes.

Với Stereo 8 bits, mỗi mẫu gồm 2 bytes, dữ liệu sẽ được sắp xếp xen kẻ (interleave), với



 SVTH: Nguyễn Hữu Phú – Trần Lê Trung



Trang 69



Xem Thêm
Tải bản đầy đủ (.doc) (156 trang)

×