Lời nói đầu
Từ rất lâu, con người đã mong muốn xây dựng và phát triển các hệthống có khả năng thông minh như con người Trong nhiều hướng nghiêncứu nhằm triển khai các hệ thống thông minh, mạng Neural đang là sự lựachọn khá phổ biến Chúng là cơ sở cho các giải pháp nhận dạng, tự độnghóa điều khiển, trí tuệ nhân tạo… Mạng Neural nhân tạo là hệ thống xử lýthông tin mới mẻ trong việc ứng dụng vào điều khiển và tự động hóa Vớiviệc kết hợp chặt chẽ các hệ logic mờ, mạng Neural nhân tạo đã tạo nênmột cuộc cách mạng thực sự trong việc thông minh hóa và vạn năng hóacác bộ điều khiển kỹ thuật cao trong giai đoạn hiện nay và cả trong tươnglai Cùng với sự phát triển của công nghệ thông tin không thể không kể đếncông nghệ xử lý tiếng nói như: nhận dạng tiếng nói, chuyển lời nói thànhchữ viết và ngược lại… Mục tiêu đặt ra xây dựng một hệ thống nhận dạngtiếng nói bằng máy tính Tuy nhiên đây là vấn đề rất phức tạp vì độ biếnđộng của mẫu âm thanh là vô cùng lớn, cùng với yếu tố cơ bản là cơ quanphát âm còn có sự ảnh hưởng nhiễu của môi trường truyền âm, ngoài ragiọng nói của mỗi người mỗi khác, mỗi địa phương mang một sắc tháiriêng… Đó là một trong nhiều nguyên nhân làm bài toán nhận dạng tiếngnói mặc dù đã được nghiên cứu từ lâu nhưng kết quả vẫn còn hạn chế Bàitoán nhận dạng tiếng nói thường được chia thành các bài toán nhỏ hơn như:nhận dạng thanh điệu, nhận dạng với số từ hữu hạn, nhận dạng các từ phátâm rời rạc, nhận dạng câu, nhận dạng phụ thuộc người nói, nhận dạng độclập người nói.v.v Vấn đề nhận dạng tiếng nói ngày càng trở nên cấp thiết,với ứng dụng rộng, thiết thực vào mọi lĩnh vực của cuộc sống Các nướctrên thế giới đều đang cố gắng xây dựng chương trình nhận dạng tiếng nóicho mình
Trang 2Đối với tiếng Việt, hiện nay đang trong quá trình nghiên cứu và kếtquả vẫn còn nhiều khiêm tốn Do đó nhu cầu giải quyết bài toán nhận dạngtiếng nói tiếng Việt càng trở nên cần thiết Với lý do đó em đã chọn hướngnghiên cứu trong đồ án về lĩnh vực nhận dạng tiếng nói và giải quyết bàitoán nhỏ trong nhận dạng tiếng nói là nhận dạng một số từ tiếng Việt với sốngười nói hữu hạn Qua việc nghiên cứu về mạng Neural em đã sử dụngmạng để giải quyết bài toán nhận dạng tiếng Việt với số người nói hữu hạn.
Một số mục tiêu chính trong đồ án: ■ Tìm hiểu về đặc điểm âm thanh tiếng Việt ■ Các vấn đề của phân tích tiếng nói:
1 Các kỹ thuật tiền xử lý âm thanh 2 Các đặc trưng của âm thanh và phương pháp trích trọnđặc trưng
■ Nghiên cứu mạng Neural: Ứng dụng mạng trong giải quyết bài toán nhận dạng âmthanh tiếng Việt
■ Xây dựng, thử nghiệm chương trình nhận dạng một số từtiếng Việt
Trong thời gian làm đồ án, với sự cố gắng nỗ lực của bản thân, dưới
sự hướng dẫn tận tình của thầy giáo PGS.TS, cùng với sự quan tâm, giúp
đỡ của các thầy cô giáo trong khoa công nghệ thông tin và tập thể lớp tin
học 38, em đã hoàn thành đề tài “Nghiên cứu mạng Neurral và xây dựng
ứng dụng nhận dạng tiếng Việt”
Nội dung đồ án được chia thành các chương như sau:
Trang 3Mặc dù đã có nhiều cố gắng nhưng đồ án không tránh khỏi thiếu sót,em rất mong được sự chỉ bảo của các thầy cô giáo và sự đóng góp ý kiếncủa các đồng chí và các bạn.
Em xin trân trọng cảm ơn!
Trang 4Lời nói đầu 1
Chương 1 CẤU TRÚC NGÔN NGỮ TIẾNG VIỆT 5
1.1 Tiếng nói và nhận dạng tiếng nói 5
1.2 Hệ thống ngữ âm tiếng Việt 8
CHƯƠNG 2 KỸ THUẬT PHÂN TÍCH DỮ LIỆU TIẾNG NÓI 14
2.1 Cấu trúc File “.Wav” 14
2.2 Các kỹ thuật tiền xử lý 16
2.3 Các kỹ thuật trích rút đặc trưng 28
CHƯƠNG 3 TÌM HIỂU VỀ MẠNG NEURAL 36
3.1 Các khái niệm chung về mạng Neural 36
3.2 Mạng Neural lan truyền ngược 41
CHƯƠNG 4 ỨNG DỤNG MẠNG NEURAL NHẬN DẠNG ÂM THANH TIẾNG VIỆT 50
Trang 5Chương 1 CẤU TRÚC NGÔN NGỮ TIẾNG VIỆT1.1 Tiếng nói và nhận dạng tiếng nói.
Tiếng nói được dùng để trao đổi thông tin giữa người nói và ngườinghe, tiếng nói có một vị trí quan trọng trong xã hội loài người bởi vì tiếngnói và lao động là các nhân tố tạo lên sự phát triển của xã hội loài người
Tiếng nói, hay ngôn ngữ là một vấn đề vô cùng phức tạp và đã đượcnhiều các nhà khoa học trên thế giới quan tâm nghiên cứu dưới nhiều gócđộ khác nhau Dưới góc độ CNTT tiếng nói và nhận dạng tiếng nói có mộtvai trò to lớn giải quyết nhiều bài toán hóc búa mà từ trước nay con ngườiđang quan tâm Bài toán thông dịch các ngôn ngữ khác nhau, bài toán giaotiếp giữa người và máy, bài toán cho người khiếm thị sử dụng máytính đều liên quan nhiều đến nhận dạng tiếng nói Trên thế giới các nhàkhoa học đã nghiên cứu nhiều về vấn đề này nhưng nhận dạng tiếng Việtđã và đang là vấn đề mới được các nhà khoa học ở Việt nam nghiên cứu
Với một vị trí quan trọng trong nhiều lĩnh vực, tiếng Việt và nhậndạng tiếng Việt cần phải được quan tâm nghiên cứu nhiều hơn nữa Dướigóc độ nghiên cứu học hỏi, bước đầu tôi đã nghiên cứu âm thanh, tiếng nóivà nhận dạng với các phát âm từ đơn và nghiên cứu các vần và phụ âmtrong Tiếng Việt
Quá trình phát âm của con người có thể được mô tả như sau:
+ Khí được đẩy từ phổi qua vòm họng ra miệng phát thành âm.+ Khi dây thanh quản rung tạo ra các xung âm thanh và phát ra tiếng
kêu (voiced sound).
+ Nếu dây thanh quản không rung nhưng mở liên tục tạo ra âm câm
(Unvoice).
Trang 6+ Khi nói hình dạng vòm họng, thanh quản thay đổi tạo ra các âmkhác nhau.
+ Hình dạng vòm họng thay đổi chậm trong khoảng từ 10 đến100ms
+ Lượng khí từ phổi đẩy ra xác định âm lượng phát ra.Cách tạo ra tiếng nói như trên là nguyên lý cơ bản cho các tiếng nóichung trên thế giới nhưng đi sâu vào nghiên cứu thì mỗi tiếng nói của cácnước khác nhau nó có điểm chung và điểm riêng biệt khác nhau chính điểmriêng biệt khác nhau này là một thuộc tính quan trọng để có thể nhận dạngtốt được các loại tiếng nói của các nước khác nhau
Bài toán nhận dạng tiếng nói là một bài toán khó, ví dụ một số đặcđiểm sau cần quan tâm:
-Kích thước từ điển: Với hệ thống có kích thước từ điển nhỏ thì hiệuquả nhận dạng không cao, còn hệ thống nhận dạng có bộ từ điển lớn thìkhông gian lưu trữ có hạn và việc tính toán nhận dạng cũng phức tạp
Trang 7-Ngữ pháp của tiếng nói cũng là một vấn đề phức tạp trong nhậndạng, với mỗi quốc gia có kiểu nói và ngữ pháp của ngôn ngữ khác nhau dođó để nhận dạng tốt với mỗi tiếng nói là việc rất phức tạp, đã được rấtnhiều các nhà khoa học nghiên cứu và đã đi theo nghiên cứu nhận dạngtheo các hướng sau:
-Hệ thống nhận dạng tiếng nói độc lập hay phụ thuộc vào người nói:
Hệ thống nhận dạng phụ thuộc người nói được dùng để thực hiệnhọc và nhận dạng cho một người nói Hệ thống này nhận dạng có hiệu quảtương đối cao so với hệ thống nhận dạng độc lập với người nói vì hệthống này khi học sẽ dùng nhiều mẫu học của nhiều người nói khác nhauvà khi nhận dạng cũng phải nhận dạng nhiều người nói Tuy nhiên ở kiểunhận dạng phụ thuộc người nói có yếu điểm là phải học lại mẫu khi nhậndạng với một người nói mới chưa được học qua hệ thống Cả hai kiểu nhậndạng trên đều được dùng khi nhận dạng tiếng nói
-Nhận dạng phát âm từ đơn lẻ hay nhận dạng phát âm liên tục
Hệ thống nhận dạng từ đơn được học với các đơn vị nhỏ nhất củaphát âm hay còn gọi là các âm tiết Ở kiểu nhận dạng này người nói phảinghỉ với một khoảng thời gian dài giữa hai phát âm Công việc phát hiện rađiểm đầu và điểm cuối của một phát âm tạo ra một khung bao của phát âmđể nhận dạng Khi từ điển cho nhận dạng phát âm từ đơn quá lớn, chúng taphải cấu trúc lại cách học với kiểu dùng chung các phát âm của một từ
Nhận dạng phát âm liên tục là một hệ thống nhận dạng phức tạpđược dùng để nhận dạng các phát âm liên tục, ở hệ thống này thời giannghỉ giữa hai âm vị là tương đối ngắn, các nói tự nhiên trong thực tế là mộtmô hình của cách phát âm liên tục.Ở hệ thống nhận dạng này, đầu tiên hệthống nhận dạng phải có khả năng xác định được các khung bao của cácphát âm, sau đó hệ thống nhận dạng phải biểu hiện các đặc tính của tínhiệu phát âm để nhận dạng Với hệ thống nhận dạng các phát âm liên tục
Trang 8không nhất thiết yêu cầu nhiều mẫu của nhiều người nói mà điểm mạnhcủa nó thể hện qua thuật toán nhận dạng với các đặc trưng quan trọng nhấtcủa một phát âm Nhận dạng phát âm liên tục là hệ thống được dùng nhiềutrong các ứng dụng trong thực tế.
-Nhận dạng tiếng nói kết nối là một kiểu nhận dạng phát âm liên tục
với bộ từ điển nhận dạng nhỏ Ở kiểu nhận dạng này câu phát âm được cắtra thành các phát âm nhỏ, hệ thống nhận dạng các phát âm cắt ra sau đóđược ghép nối lại
1.2 Hệ thống ngữ âm tiếng Việt.
1.2.1 Khái niệm.
Chuỗi lời nói của con người được chia ra thành nhiều đoạnnhỏ như câu, từ, cụm 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ácyế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, vần và âm đệm –
và các yếu tố siêu đoạn tính – các yếu tố mà không 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 âmvà mang thanh điệu
1.2.2 Cấu trúc âm tiết tiếng Việt.
Cấu trúc âm tiết tiếng Việt được xem xét theo nhiều cách,
Trang 9cách quan niệm trên, người ta có thể phân tích, nghiên cứu tiếng Việt ởnhiều khía cạnh khác nhau như vần, điệu, ngữ pháp, ngữ nghĩa, cách phátâm, v.v.
Tuy nhiên với cách quan niệm trên làm cho chúng ta gặpnhiều khó khăn về thuật toán như làm tăng dung tích bộ nhớ, tăng thời gianxử lý Do đó để đơn giản hoá khi nghiên cứu nhận dang tiếng Việt người tacó thể quan niệm toàn bộ tiếng Việt được xây dựng từ một bảng gồm 26phụ âm và 620 vần, đồng thời có 620 vần Như thế chúng ta có thể xemmọi từ trong tiếng Việt có cấu trúc như sau:
[<PHỤ ÂM>] & [<NGUYÊN ÂM>] (*)
Trong đó <PHỤ ÂM> có thể có hoặc không, thành phần<NGUYÊN ÂM> bắt buộc phải có Theo dạng (*) khi đó toàn bộ tiếngViệt có:
26*620+620=16.740 từDưới đây là là bảng các phụ âm và vần được phân chia theo độdài:
Bảng các phụ âm:
Phụ âm đơn b,c,d,đ,g,h,k,l,m,n,p,q,r,s,t,v,x 17Phụ âm ghép Ch,kh,nh,gh,th,ng,ngh,tr 9
Trang 10Bảng vần đơn:
a A,à,á,ả,ã,ạ,ă,ắ,ằ,ẳ,ẵ,ặ,â,ầ,ấ,ậ,ẫ,ẩ 18o O,ò,ó,ỏ,õ,ọ,ô,ồ,ố,ổ,ỗ,ộ,ơ,ờ,ớ,ở,ỡ,ợ 18
a Ai,ài,ái,ải,ãi,ại; ao,ào,áo,ảo,ão,ạo, ay,ày,áy,ảy,ãy,ạy;
âi,ầi,ấi, ẩi,ẫi,ậi, ăi, ằi,ắi,ẳi,ẵi,ặi, au, àu,áu,ảu,ãu,ạu,âu,ấu,ầu,ẩu,ẫu,ậu; ây,ấy,ầy,ẩy,ẫy ậy;
u Ua,úa,ùa ủa,ụa,ui,úi,ùi,ủi, ũi, ụi, uê, uế, uễ, uệ, ưi, ừi
ứi, ửi, ữi, ựi, ưu, ừu, ứu, ửu, ữu, ựu, uy, uý, uỳ, uỷ,uỹ, uỵ;
48
Trang 11Ung ;ưng
60
ch Ách,ạch,ấch,ậch, ích,ịch, ếch, ệch, óch, ọch, úch, ụch 12n Oen, oèn, oén, oẻn, oẽn; Ian; iàn, ián, iản, iạn, oan, oàn,
oán, oản, oãn, oạn
18
i/y Oai,oài,oái, oải, oại, oay, oày, oáy, oảy, oãy, oạy 12
Trang 12Bảng vần bốn:
nh Uanh,uành,uánh, uảnh,uạnh,uynh,uỳnh, ýnh, uỷnh,
uỹnh, uỵnh; oanh, oành, oánh, oảnh, oãnh, oạnh
18
ng Uang, uàng, uáng, uảng, ũng, uạng; uâng, uầng, uấng,
uẩng, uẫng, uậng, uông, uồng, uống, uổng, uỗng,uộng,ương, ường, ưỡng, ưởng, ượng;
Iang, iàng, iáng, iảng, iạng, iêng, iềng, iếng, iểng, iễng,iệng; oang, oàng, oáng, oảng, oãng, oạng; oăng, oằng,oắng, oẳng, oẵng, oặng
48
Từ cách phân loại trên ta thấy:
Có: 26 phụ âm 72 vần đơn 150 vần kép loại 1 186 vần kép loại 2 126 vần 3
66 vần 4Để nhất quán trong các quy tắc chúng ta quy ước y và các từ có ký tựy đứng đầu đều là vần Số từ bắt đầu bằng từ y trong tiếng Việt có tất cả 30
Trang 13vì một loạt từ dạng như po, pó, py, pý, poăng, poặng bây giờ là từ Việt,nhờ đó việc phiên âm để đọc tiếng nước ngoài đơn giản hơn.
Trong phạm vi nghiên cứu của luận văn này tôi đã đi theo quan điểmthứ hai để nghiên cứu áp dụng cho nhận dạng các vần và phụ âm trongtiếng Việt
Trang 14CHƯƠNG 2 KỸ THUẬT PHÂN TÍCH DỮ LIỆU TIẾNG NÓI
Trong xử lý tiếng nói bao gồm: Phân tích tiếng nói, tổng hợp tiếngnói và nhận dạng tiếng nói Việc phân tích tiếng nói là vấn đề quan trọng,quyết định đến kết quả của xử lý tiếng nói theo các hướng nhận dạng haytổng hợp Việc phân tích tiếng nói tốt sẽ cho ta trích chọn được các đặctrưng cơ bản, quan trọng nhất của tiếng nói để phục vụ cho công việc nhậndạng
Như vậy mục đích của việc phân tích tiếng nói nhằm tách ra đượccác tham số đặc trưng cho tín hiệu tiếng nói Các tham số này sẽ được ứngdụng trong nhận dạng hay tổng hợp tiếng nói Mục đích của đồ án là tríchchọn ra các đặc trưng về: năng luợng và độ lớn trung bình thời gian ngắn,tần số cắt không trung bình thời gian ngắn, tần số Pitch Việc xác định tốtđược các đặc trưng nói trên sẽ cho phép ta xây dựng được hệ thống nhậndạng tiếng nói đạt chất lượng cao
Có nhiều kỹ thuật phân tích âm thanh khác nhau, trong đó kỹ thuậtphân tích trực tiếp trên tín hiệu trong miền thời gian yêu cầu khối lượngtính toán nhỏ và cung cấp lượng thông tin lớn để xác định các đặc trưngcủa tiếng nói Tín hiệu tiếng nói là một loại tín hiệu biến đổi theo thời gian.Điều này có thể thấy rõ khi biểu diễn tiếng nói dưới dạng sóng Vấn đề ởchỗ cần phân tích chuỗi tín hiệu này để trích rút ra được các đặc trưng đểphân biệt các tiếng nói với nhau
2.1 Cấu trúc File “.Wav”.
Trang 15dữ liệu Một ứng dụng để đọc các file RIFF có thể đi qua một số chunk,đọc các chunk cần quan tâm và bỏ qua các chunk không liên quan
•Cấu trúc file.wav gồm những phần sau:- RIF chunk: kích thước 12 byte
+ 0 –3 : “RIF” (mã tự ASCII), đây là xâu ký tự định danh cácfile âm thanh có đuôi *.wav
+ 4 –7: độ dài tổng cộng của thông tin phần sau, nó được tínhbằng công thức: độ dài tổng cộng = độ dài của file *.wav –8
+ 8 –11: là xâu “WAVE”.- FORMAT chunk: kích thước 24 byte
+ 0 – 3: là xâu ký tự bắt đầu khối định dạng dữ liệu.+ 4 – 7: độ dài của FORMAT chunk
+ 8 – 9: 0x01.+ 10 –11: số chanel (kênh) (0x01 = mono, 0x02 = stero).+ 12 –15: sample rate (tốc độ lấy mẫu), thường là các giá trịxác định như: 11.025 kHz, 22.5 kHz, 44.1 kHz
+ 16 –19: bytes per second, giá trị này cho biết số byte đượctruy xuất trong 1 giây
+ 20 –21: bytes per sample (1 =8 bit mono, 2 =8 bit stereohoặc 16 bit mono, 4= 8 bit stereo), giá trị này cho biết số bytedùng để mã hoá một mẫu trong quá trình lượng tử hoá
+ 22 –23: bits per sample, là số bit trong một mẫu được lấy.- DATA chunk:
+ 0 –3: là xâu “data”, xâu là báo hiệu bắt đầu phần dữ liệu.+ 4 –7: độ dài dữ liệu
+ 8 - hết: là dữ liệu
Tóm tắt cấu trúc của wave file như sau:
Trang 16Kích thước (số bytes) Giá trị
Trang 17thành các dãy số Quá trình này được thực hiện bằng cách lấy mẫu tín hiệuâm thanh theo một tần số lấy mẫu thích hợp ( tần số lấy mẫu là số mẫu lấytrong một đơn vị thời gian).
Với tín hiệu tương tự x(t), chu kỳ lấy mẫu T (tần số lấy mẫu1/T) thu được dãy số X(n):
X(n)=x(n*T) với - < n < Để đảm bảo quá trình số hoá không làm mất mát thông tin củaphổ tín hiệu thì tần số lấy mẫu Fs=1/T phải đủ lớn Giá trị đủ lớn của Fs
phải tuân theo định lý lấy mẫu: Tín hiệu liên tục theo thời gian có bề rộngphổ hữu hạn với tần số cao nhất f Hz có thể được khôi phục một cách duynhất từ các mẫu nếu quá trình lấy mẫu được thực hiện với tốc độ Fs>=2fmẫu trên một giây Đối với chuẩn của file âm thanh thì tần số lấy mẫu thấpnhất là 8000Hz điều này có nghĩa là quá trình số hóa chỉ áp dụng với cáctín hiệu tương tự có tần số cao nhất là 4000Hz-phù hợp với tiếng nói conngười có tần số từ 40Hz-4000Hz
*Formant:
Formant hay còn gọi là các họa âm, đóng vai trò tạo nên âm sắccủa âm thanh Formant là giải tần số được tăng cường do hiện tượng cộnghưởng, đặc trưng cho âm sắc của mỗi vần.Trong mỗi dải tần như thế cómột tần số được tăng cường hơn cả và được gọi là đỉnh của Formant Mộtvần do người phát ra có nhiều Formant, trong số đó có 2 Formant ứng vớihộp cộng hưởng miệng và hộp cộng hưởng yết hầu, các Formant khác đặctrưng cho giọng nói từng người
*Tần số cơ bản:
Sóng âm thanh do con người phát ra rất phức tạp Nó có dạngđường cong phức tạp, có chu kỳ Khi phát ra một âm có tần số f1 thì conngười cũng đồng thời phát ra âm có tần số 2f1, 3f1, 4f1 Âm có tần số f1
Trang 18được gọi là âm cơ bản, tần số f1 được gọi là tần số cơ bản Các âm khácđược gọi là các hoạ âm (Formant) thứ nhất, hoạ âm thứ 2 Âm cuối cùng(âm nghe được) là âm tổng hợp của âm cơ bản và các hoạ âm Do đó đườngbiểu diễn của nó là một đường cong phức tạp có tần số là tần số cơ bản.
*Biên độ:
Biên độ là một đặc trưng quan trọng của sóng âm, đó là li độ lớnnhất của sóng âm so với vị trí cân bằng Sóng âm thanh khi thu vào máytính sẽ được số hoá thành một chuỗi các số rời rạc với miền giá trị tuỳ theođộ phân giải, số kênh, tần số lấy mẫu Độ phân giải được hiểu theo nghĩa làsố bit được dùng để biểu diễn một mẫu thu được trong quá trình lấy mẫu.Với độ phân giải 8bit, miền giá trị của các mẫu là khoảng đóng [0,255]; độphân giải 16bit, miền giá trị này là khoảng đóng [0,65535] Do đó xác địnhchính xác biên độ của sóng là một bài toán khó và trên thực tế là không cầnthiết phải giải quyết tuyệt đối chính xác vì cái mà ta thực sự quan tâm là sựbiến thiên của biên độ Do đó bài toán này thường được giải quyết bằng
phương pháp giải gần đúng Trước hết ta xác định gần đúng ngưỡng không,
sau đó biên độ sẽ được tính bằng trị tuyệt đối hiệu của giá trị số hoá trừ đi
giá trị của ngưỡng không Giá trị của ngưỡng không tuỳ thuộc vào từng
Soundcard
*Nhiễu:
Nhiễu là một trong những yếu tố làm cho bài toán nhận dạng trởnên vô cùng phức tạp Nhiễu được xem xét như một đại lượng ngẫu nhiên,làm biến đổi tín hiệu cần nhận dạng Do đó, lọc nhiễu là một khâu cần thiếtphải tiến hành trong quá trình tiền xử lý tín hiệu
Trang 192.2.2 Chuẩn hóa biên độ.
Để tránh mất mát đặc trưng do âm thanh quá to hoặc quá nhỏ,đồng thời làm tăng ý nghĩa cho các đặc trưng để nhận dạng ta tiến hànhchuẩn hóa biên độ Đây là một bước cần thiết nhưng không đòi hỏi tínhtoán, xử lý phức tạp Các mẫu âm thanh được thu trong quá trình làm đồ ánvới độ phân giải thì biên độ của tiếng nói có giá trị nằm trong khoảng [0,255], do đó ta tiến hành chuẩn hóa dữ liệu sao cho giá trị trung bình của nólà 125 Chuẩn hoá biên độ có thể tiến hành đơn giản bằng cách nhân tínhiệu với một hệ số thích hợp:
s(n)=k*s(n)k là hệ số nhân Giá trị của k có thể chọn như sau:
max(s(n)) là giá trị lớn nhất của dãy s(n)
Trang 20Sơ đồ khối thuật toán chuẩn hóa:
Trang 212.2.3 Làm rõ tín hiệu.
Việc làm rõ (hay làm trơn) tín hiệu có ý nghĩa quan trọng trongbài toán nhận dạng tiếng nói, làm tăng hiệu quả làm việc của hệ thống nhậndạng Trong đồ án em dùng hàm cửa sổ Hamming
Dữ liệu tiếng nói được đưa qua hàm cửa sổ Hamming để làmtrơn phổ của tín hiệu
Hàm cửa sổ Hamming:
W(n) = 0.54-0.46.Cos(2*PI/N-1);n=0,1,…,N-1W(n) = 0 với các n khác
2.2.4 Chia Frame dữ liệu.
Công việc chia âm thanh thành các Frame là vô cùng quan trọngbởi trong một âm thanh luôn có sự biến động theo thời gian, việc chia âmthanh thành các đoạn nhỏ để ta có thể dự đoán được sự thay đổi về nănglượng, về tần số…của âm thanh trong mỗi Frame và trong cả đoạn âmthanh
Có 2 cách chia Frame dữ liệu âm thanh:
1 Chọn kích thước Frame trước sau đó chia âmthanh theo Frame này và từ đó sẽ xác định được số Frame trongmỗi âm thanh
2 Chọn số Frame cố định và chia âm thanh, nhưvậy kích thước Frame trong các âm thanh sẽ khác nhau
Trang 222.2.5 Năng lượng trung bình thời gian ngắn.
Năng lượng của chuỗi tín hiệu rời rạc x(m) (kết quả rời rạc hoátín hiệu tương tự x(t)) được định nghĩa như sau:
Giá trị năng lượng này ít có giá trị thực tế trong việc nghiên cứutín hiệu âm thanh nói chung và tín hiệu tiếng nói nói riêng Giá trị nàykhông phản ánh được tính chất biến động theo thời gian của tín hiệu do nóđược tính trong khoảng thời gian vô cùng lớn Ở đây, người ta đưa ra địnhnghĩa về năng lượng thời gian ngắn:
Công thức này cho thấy, để tính năng lượng thời gian ngắn củadãy tín hiệu x(m) ta chia dãy x(m) thành những khoảng (có thể liên tụchoặc gối lên nhau) theo thời gian Khi đó, năng lượng thời gian ngắn củax(m) tại khoảng thứ n, là tổng bình phương biên độ của N mẫu từ n-N+1tới n
Căn cứ vào giá trị năng lượng thời gian ngắn có thể phân biệtđược các đoạn hữu thanh-vô thanh hoặc các đoạn tín hiệu nhiễu nền
Dưới đây là lưu đồ thuật toán xác định độ lớn năng lượng thờigian ngắn:
Trang 23Ta thấy việc tính độ lớn năng lượng thời gian ngắn hết sức đơngiản, nó được tính cho từng khối dữ liệu Và có công thức: EN(w)=EN(w)+ AI(i)*AI(i).
Trang 242.2.6 Tần số cắt không trung bình thời gian ngắn.
Với các tín hiệu rời rạc theo thời gian, khái niệm tần số cắt đượchiểu là số lần tín hiệu đổi dấu trong một giây Đây là một đại lượng tần sốđơn giản của tín hiệu Tần số cắt không trung bình cũng là một cách để xácđịnh tần số của tín hiệu hình sin Điều này đúng với các tín hiệu có dải tầnhẹp Ví dụ tín hiệu hình sin có tần số F0 được lấy mẫu với tần số Fs sẽ cóFs/F0 mẫu trong một chu kỳ Mỗi chu kỳ có 2 zero-crossing nên ta có tỷ lệzero-crossing là 2F0/Fs crossing/mẫu Như vậy từ tỷ lệ zero-crossing ta cóthể tính ra tần số F0 của tín hiệu
Tín hiệu tiếng nói là tín hiệu có dải tần rộng nên không thể ápdụng trực tiếp nhận xét trên mà thường xác định tần số cắt không trong mộtthời gian ngắn nhằm dự đoán sự thay đổi phổ của tín hiệu tiếng nói Côngthức chung như sau:
Trong đó:
Sgn[x(n)]=1 khi x(n)>=0Sgn[x(n)]= -1 khi x(n)<0W(n) cửa sổ lấy tín hiệu.W(n)= với 0<=n<=N-1W(n)=0 với các giá trị khác của n.Năng lượng, độ lớn và tần số cắt không thời gian ngắn là cáchđơn giản và hiệu quả để xác định phần nhiễu nền và tín hiệu, phần vô thanh
Trang 25phần tín hiệu vô thanh và hữu thanh thuờng ta chỉ cần 1 chỉ tiêu trên cũngđủ để phân biệt Nhưng trong trường hợp phức tạp phải sử dụng đến cảnăng lượng và tần số cắt không Các chỉ tiêu trên còn sử dụng để thiết lậptần số cơ bản của tiếng nói.
Dưới đây là lưu đồ thuật toán xác định tỷ lệ Zezo-crossing
Trang 262.2.7 Xác định tần số Pitch theo AMDF.
Thực chất của việc xác định tần số Pitch theo phương phápAMDF chính là trích rút ra được tần số Pitch hay tần số cơ bản của tiếngnói theo hàm sai khác độ lớn trung bình thời gian ngắn
Hàm sai khác độ lớn trung bình thời gian ngắn được định nghĩanhư sau:
Giả sử chuỗi tuần hoàn với chu kỳ Po thì hàm AMDF sẽ đạtgiá trị cực tiểu tại Po Như vậy việc xác định chu kỳ Pitch của tiếng nói sẽthông qua xác định chỉ số Po mà tại đó hàm AMDF đạt giá trị cực tiểu.Trong thực tế chu kỳ Pitch của tiếng nói nằm trong một miền giới hạn vìvậy không cần thiết phải tính toán cho mọi giá trị P của hàm AMDF
Như vậy với mỗi tiếng nói ban đầu ta đều có thể đưa ra đượccác đặc trưng thời gian ngắn như đã trình bày ở trên Mỗi âm thanh sẽ cócác đặc trưng khác nhau, và các đặc trưng này được xác định theo nhữngtiêu chuẩn riêng Việc xác định tần số Pitch theo hàm sai khác độ lớn trungbình thời gian ngắn hay xác định tần số cắt không cũng chỉ là cách đưa rađược ước lượng thô về tần số của tiếng nói vì chưa có một phát biểu mangý nghĩa vật lý về tần số cơ bản của tiếng nói Nhưng nó cũng là cơ sở quantrọng để nhận dạng được tiếng nói cũng như trong việc nhận dạng cácthanh điệu tiếng Việt
Trang 282.3 Các kỹ thuật trích rút đặc trưng.
2.3.1 Cắt bỏ đoạn vô thanh.
Trong xử lý tiếng nói, một vấn đề đặt ra là phải làm thế nào đểxác định được phần âm vô thanh, cắt bỏ nó để có được phần hữu thanh củatiếng nói một cách chính xác
Trên thực tế có rất nhiều cách để xác định phần vô thanh, hữuthanh của tiếng nói song hầu hết đều cho kết quả tương đối; việc xác địnhphần hữu thanh, vô thanh gặp phải khó khăn lớn khi muốn xác định mộtcách chính xác do tồn tại nhiễu và tồn tại một số âm có mức năng lượng rấtthấp ở trong một số từ nhất định
Các bước xác định phần hữu thanh:Bước 1: Tính giá trị năng lượng trung bình thời gian ngắn cho
từng khối dữ liệu ta được E[i]
Bước 2: Tìm giá trị năng lượng trung bình thời gian ngắn lớn
nhất trong các khối dữ liệu EMAX
Bước 3: Xác định đoạn âm thanh.
Dùng 2 biến vt1,vt2 để lưu 2 giá trị mà ta xác định được làđoạn có dữ liệu tiếng nói
Sau đó ta tiến hành dịch chuyển khối dữ liệu từ vị trí EMAXvề bên trái và bên phải để xác định vị trí đầu tiên và vị trí cuối cùng Khidịch chuyển khối dữ liệu về hai bên mà E[i]<EMAX*alpha thì đó chính làvị trí cần tìm
Trang 29Sơ đồ khối thuật toán xác định phần hữu thanh:
Trang 302.3.2 Xác định vị trí cắt vần và phụ âm.
Ta tiến hành xác định ví trí cắt vần và phụ âm dựa trên cơ sởphương sai năng lượng trong mỗi Frame Phương sai năng lượng trong mỗiFrame được hiểu là tổng chênh lệch của bình phương biên độ hai mẫu liêntiếp trong một Frame
Bước 1: Tính phương sai năng lượng cho mỗi Frame theo côngthức:
Bước 2: Dịch chuyển từ vị trí vt1 về vt2 khi gặp Frame thỏamãn E_frame > alpha đó là vị trí cần tìm
Sơ đồ khối thuật toán tách phụ âm và vần:
Trang 322.3.4 Phương pháp trích chọn đặc trưng LPC.
Phân tích dự báo tuyến tính là một trong những kỹ thuật phântích tiếng nói được sử dụng rộng rãi Nó có thể tính toán hiệu quả các thamsố như hàm diện tích của tuyến âm và lưu trữ hoặc truyền thông tiếng nóivới tỷ lệ lưu trữ nhỏ
Phân tích dự báo tuyến tính dựa trên cơ sở mẫu tín hiệu yn sẽđược dự báo bằng p mẫu tín hiệu trước nó
yn = + G n
Trong đó : i (i=1 p) là các hệ số dự báo
{yn-i}(i=1 p) là dãy p tín hiệu ngay trước của tínhiệu yn
G : hệ số lọc lặp n : sai số dự báo (hay còn gọi là nhiễu)Sai số dự báo n chính là sai số phân tích tiếng nói Yêu cầu đặtra cho hệ thống là phải giảm tối thiểu sai số dự báo n Ở đây ta thực hiệnđạo hàm riêng phần n2 cho từng biến i (i=1 p), tính giá trị hệ số dự báoi mà với giá trị đó n2 đạt cực tiểu
=>
Trang 33các E [yn-i yn-j] là phương pháp tự tương quan (autocorrelation) và phươngpháp hiệp biến (autocovariance) Trong phương pháp tự tương quan tađược :
E [ yn-i yn-j] = Ryy(| i – j |)Giả sử dãy tín hiệu {yn} bằng 0 ngoài đoạn tín hiệu ta cần tínhhệ số dự báo Khi đó :
Bây giờ ta có thể mô tả hệ phương trình dạng ma trận như sau :
(2.30)Hệ phương trình trên có thể giải bằng phương pháp nghịch đảoma trận bởi vì ma trận Ryy là ma trận Toeflitz (ma trận đối xứng qua đườngchéo chính và các đường chéo song song với đường chéo chính có các phầntử giống nhau) Ma trận Toeflitz luôn có định thức khác 0, cũng có nghĩa làluôn tìm được ma trận nghịch đảo cho ma trận Toeflitz Nhưng giải hệphương trình bằng phương pháp ma trận nghịch đảo không hiệu quả, hơnnữa độ sai số rất lớn Dưới đây trình bày thuật toán Levinson – Durbin chophép ta tính hệ số dự báo i (i=1 P) mà không cần giải hệ phương trìnhtrên
* Thuật toán Levinson – Durbin :
Trang 342 i = 1
4 Đặt i(i) = ki 5. j(i) = j(i-1) + ki j(i-1) (với j = 1 i-1)Ei = ( 1 – ki2 ) Ei-1
Nếu i < P thì i=i+1 quay lại bước 3.