Nhận dạngtiếngnói bằng mạngNơronnhân tạo
Mạng nơ ron (Neuron Netwok) là một công cụ có khả năng giải quyết
được nhiều b
ài toán khó, thực tế những nghiên cứu về mạng nơ ron
đưa ra một cách tiếp cận khác với những cách tiếp cận truyền thống
trong lý thuyết nhận dạng. Trong khuôn khổ bài báo này tác giả mong
muốn được thảo luận về 1 phương pháp nhậndạngtiếngnói sử dụng
mạng nơ ron.
Mở đầu
Đã có nhiều công trình nghiên cứu về lĩnh vực nhậndạngtiếngnói (Speech
recognition) trên cơ sở lý thuyết các hệ thống thông minh nhân tạo, nhiều kết
quả đã trở thành sản phẩm thương mại như ViaVoice, Dragon , các hệ
thống bảo mật thông qua nhậndạngtiếngnói các hệ quay số điện thoại bằng
giọng nói Triển khai những công trình nghiên cứu và đưa vào thực tế ứng
dụng vấn đề này là một việc làm hết sức có ý nghĩa đặc biệt trong giai đoạn
công nghiệp hoá hiện đại hoá hiện nay của nước nhà.
M
ạng nơ ron (Neuron Netwok) là một công cụ có khả năng giải quyết được
nhiều bài toán khó, thực tế những nghiên cứu về mạng nơ ron đưa ra một
cách tiếp cận khác với những cách tiếp cận truyền thống trong lý thuyết nhận
dạng. Trong khuôn khổ bài báo này tác giả mong muốn được thảo luận về 1
phương pháp nhậndạngtiếngnói sử dụng mạng nơ ron với:
- Phương pháp mã dự đoán tuyến tính LPC (Linear Predictive Coding) được
sử dụng trong việc trích trọn những đặc trưng cơ bản của tiếng nói.
- Mạng nơ ron lan truyền ngược hướng (Back-propagation Neural Network)
được sử dụng để học mẫu và ra quyết định đối tượng nhận dạng.
Xử lý tín hiệu tiếng nói
Quá trình tiền xử lý tín hiệu là chuyển tiếngnói từ dạng sóng (wave form
representation) sang dạng biểu diễn tham số (parametric form
representation). Các tham số biểu diễn tín hiệu tiếngnói có thể là: năng
lượng thời gian ngắn (short ti
me energy), tỷ lệ qua điểm không (zero
crossing rate) tỷ lệ qua mức (level crossing rate)…. Đã có nhiều cách dùng
để trích chọn ra được những thông tin về âm thanh một cách trực tiếp từ
những tín hiệu số của tiếngnói và hiệu quả hơn là phương pháp biểu diễn tín
hiệu theo phổ được sử dụng rộng rãi.
Phân tích ph
ổ theo phương pháp mã dự đoán tuyến tính LPC được nghiên
c
ứu nhằm trích chọn ra các đặc tính cơ bản của tín hiệu tiếng nói, là những
tham số đầu vào cho hệ thống nhậndạngtiếng nói. Phương pháp này biểu
diễn mẫu tiếngnóitại thời điểm n, x(n) bằng phép xấp xỉ tuyến tính p mẫu
quá khứ:
x(n)
a
1
x(n - 1) + a
2
x(n - 2) + + a
p
x(n - p)
Trong đó, x(n) là mẫu dự đoán tại thời điểm n và các hệ số a
1
, a
2
, , a
p
được
coi là các hằng số trên khung (frame) phân tích tiếng nói.
Thêm thành phần kích thích Gu(n) thì:
Trong đó u(n) là nguồn kích thích đã chuẩn hoá và G là hệ số khuyếch đại
kích thích. Nguồn kích thích đã chuẩn hoá đem nhân tỷ lệ với hệ số khuyếch
đại G và đưa vào hệ thống toàn điểm cực để tạo ra tín hiệu tiếng nói. Mặt
khác, ta biết rằng hàm kích thích phải là xung tuần hoàn (đối với âm hữu
thanh) hoặc là nguồn nhiễu ngẫu nhiên (đối với âm vô thanh). Đối với mô
hình này, nguồn kích thích là một công tắc được điều khiển bởi đặc tính hữu
thanh/vô thanh của tiếngnói tương ứng cho phép chọn xung tuần hoàn hoặc
nhiễu ngẫu nhiên. Mức khuếch đại kích thích G được đánh giá trực tiếp từ
tín hiệu tiếng nói. Đối với mô hình LPC, các tham số là sự phân lớp âm hữu
thanh/âm vô thanh, vị trí đỉnh âm tiết và các hệ số bộ lọc {a
k
}.
N
ếu gọi là tổ hợp tuyến tính của các mẫu quá khứ:
thì sai số tiên đoán tuyến tính được định nghĩa:
e(n)=
Vấn đề cơ bản của phương pháp LPC là xác định các hệ số tiên đoán sao cho
các đặc tính phổ của bộ lọc số trong mô h
ình tổng hợp tiếngnói phù hợp với
dạng sóng tiếngnói trong cửa sổ phân tích. Do đặc tính biến thiên theo thời
gian của phổ tín hiệu tiếngnói nên các hệ số tiên đoán tại thời điểm n phải
được đánh giá trong khoảng thời gian ngắn gần với n. Do đó, cách tiếp cận
cơ bản để xác định các hệ số tiên đoán là tối thiểu hoá sai số b
ình phương
tiên đoán tuyến tính trong một đoạn sóng tiếngnói ngắn. Thông thường,
trong xử lý tiếngnói phép phân tích phổ thời gian ngắn được thực hiện trên
các khung ti
ếng nói liên tiếp với khoảng cách mỗi khung là 10 ms.
Lý thuyết nhậndạng và mạng nơ ron
Nhận dạng (Pattern Recognition)
Có thể hiểu đó là phương pháp để xây dựng một hệ thống tin học có khả
năng: cảm nhận
-nhận thức-nhận biết các đối tượng vật lý gần giống khả
năng của con người. Nhậndạng có gắn chặt với 3 khả năng tr
ên là một lĩnh
vực hết sức rộng có liên quan đến việc xử lý tín hiệu trong không gian nhiều
chiều, mô hình, đồ thị, ngôn ngữ, cơ sở dữ liệu, phương pháp ra quyết định
Hệ thống nhậndạng phải có khả năng thể hiện được quá trình nhận thức của
con người qua các mức:
- Mức 1- mức cảm nhận: cảm nhận được sự tồn tại các đối tượng quan sát,
hay đối tượng m
à hệ thống cần nhận dạng. Mức này cũng đưa ra quá trình
thu nh
ận số liệu qua các bộ cảm biến trong hệ thống nhận dạng, ví dụ trong
hệ thống nhậndạngtiếng nói: đối tượng ở đây là tiếngnói (speech) và thu
nh
ận đầu vào qua Micro hoặc các file âm thanh .wav.
- Mức 2- mức nhận thức: ở đây biểu diễn quá trình học, mô hình hoá đối
tượng để tiến tới h
ình thành sự phân lớp (classification) các đối tượng cần
nhận dạng.
- Mức 3- mức nhận biết: từ đối tượng quan sát có thể trả lời nhận biết đối
tượng l
à gì ? Hay đây là quá trình ra quyết định.
Gọi X là đối tượng nhận dạng, X=(x
1
,x
2
,x
3
, x
n
), cácx
i
R (thuộc tập số)
Gọi là không gian biểu diễn đối tượng:
= {X
1
, X
2
, , X
m
}
G
ọi là không gian diễn dịch, hay là tập các tên gọi của các lớp c
1
,c
2
, ,c
n
:
= {w
1
, w
2
, , w
n
}
Như vậy quá trình nhậndạng đối tượng là tìm qui luật ánh xạ từ không gian
biểu diễn sang không gian diễn dịch : : sao cho X
j
C
k
(đối
tượng X
j
thuộc vào lớp C
k
). Như vậy đối với hệ thống nhận dạng, các đối
tượng X đ
ã biết (qua quan sát, cảm nhận, đo lường), còn không gian diễn
dịch và qui luật là những điều chưa biết. Và bài toán ở đây chính là : xây
d
ựng 1 hệ thống tự cấu trúc, đòi hỏi một quá trình học từ các đối tượng quan
sát thu nhận được (xác định không gian ) đến việc tìm qui luật (ra quyết
định). H
ình vẽ 1 cho ta sơ đồ của hệ thống nhận dạng.
Hình 1. Sơ đồ tổng quan của hệ thống nhận dạng
Mạng nơ ron nhân tạo
Mô phỏng hoạt động của các nơ ron thần kinh, mạng nơ ron nhân tạo là hệ
thống bao gồm nhiều phần tử xử lý đơn giản (neuron) hoạt động song song.
Tính năng của hệ thống
này tuỳ thuộc vào cấu trúc của hệ, các trọng số liên
k
ết nơ ron và quá trình tính toán tại các nơ ron đơn lẻ. Mạng nơ ron có thể từ
dữ liệu mẫu và tổng quát hoá dựa trên các dữ liệu mẫu học.
Hình 2: Mô hình mạng Neuron
Một nhóm các nơ ron được tổ chức theo một cách sao cho tất cả chúng đều
nhận cùng một vector vào X để xử lý tại cùng một thời điểm. Việc sản sinh
ra tín hiệu ra của mạng xuất hiện cùng một lúc. Vì mỗi nơ ron có một tập
trọng số khác nhau nên có bao nhiêu nơ ron sẽ sản sinh ra bấy nhiêu tín hiệu
ra khác nhau. Một nhóm các nơ ron như vậy được gọi là một lớp mạng.
Chúng ta có thể kết hợp nhiều lớp mạng tạo ra một mạng có nhiều lớp, lớp
nhận tín hiệu đầu vào (vector tín hiệu vào x) được gọi là lớp vào (input
layer). Trên th
ực tế chúng thực hiện như một bộ đệm chứa tín hiệu đầu vào.
Các tín hi
ệu đầu ra của mạng được sản sinh ra từ lớp ra của mạng (output
layer). Bất kỳ lớp nào nằm giữa 2 lớp mạng trên được goi là lớp ẩn (hidden
layer) và nó là thành phần nộitại của mạng và không có tiếp xúc nào với
môi trường b
ên ngoài. Số lượng lớp ẩn có thể từ 0 đến vài lớp. Mô hình nơ
ron nhân tạo đòi hỏi 3 thành phần cơ bản sau:
- Tập trọng số liên kết đặc trưng cho các khớp thần kinh.
- Bộ cộng (Sum) để thực hiện phép tính tổng các tích tín hiệu vào với trọng
số liên kết tương ứng
- Hàm kích hoạt (squashing function) hay hàm chuyển (transfer function)
thực hiện giới hạn đầu vào của neuron.
Trong mô hình nơ ron nhân tạo mỗi nơ ron được nối với các nơ ron khác và
nhận được tín hiệu xi từ chúng với các trọng số w
i
. Tổng thông tin vào có
tr
ọng số là: Net =
w
j
x
j
.
Nhận dạngtiếngnóibằngmạng nơ ron
Hình 3 trình bày những chức năng cơ bản của hệ thống nhậndạngtiếng nói,
trong đó có những chức năng con của từng khối. Để đơn giản trong việc c
ài
đặt và yêu cầu tài nguyên máy tính vừa phải ta thống nhất trong các mẫu sử
dụng 8bit cho 1 mẫu, tần số lấy mẫu 22025 Hzs, âm thanh mono.
Hình 3. Sơ đồ khối mô tả hệ thống nhậndạngtiếng nói
Phân tích tín hiệu tiếng nói
Phân tích tín hiệu tiếngnóibằng phương pháp LPC được thực hiện qua các
bước sau:
- Cải thiện tín hiệu (preemphasis):Tín hiệu tiếngnói s(n) được đưa qua hệ
thống số bậc thấp (chẳng hạn như bộ lọc FIR bậc thấp) để làm phẳng phổ
với điều kiện hệ thống này hoặc là ổn định hoặc là thích nghi chậm.
- Cắt khung (frame blocking) : Tín hiệu tiếngnói sau khi đã cải thiện được
chia thành L khung - N mẫu, các mẫu kế cận được phân tách bởi M mẫu.
- Cửa sổ (windows): được đưa qua hàm cửa sổ để tối thiểu hoá số điểm gián
đoạn tại các vị trí bắt đầu v
à kết thúc khung.
- Phân tích t
ự tương quan: các khung được phân tích tự tương quan, kết quả
ta được giá trị tương quan cao nhất và được gọi l
à bậc phân tích LPC. Thông
thường nhận giá trị từ 8 đến 16.
- Phân tích LPC: sử dụng thuật toán Durbin để chuyển đổi các hệ số tự
tương quan thành tập tham số LPC .
- Chuyển đổi tham số LPC thành hệ số phân tích phổ. Trong thực nghiệm ta
chọn 12 hệ số cepstral để làm đặc trưng của tín hiệu.
Mô tả mạng nơ ron trong nhận dạng
- Phương án lựa chọn số nút của từng lớp trong mạng: theo kinh nghiệm của
các chuyên gia về mạng nơ ron trong các bài toán phân lớp có sử dụng mạng
lan truyền ngược hướng, sử dụng 1 lớp tính toán là lớp mạng Kohonen làm
l
ớp ẩn. Ta xác định số nơ ron cho từng lớp.
+ Số nơ ron lớp vào = số chiều của vector vào, ở đây ta chọn 12 hệ số
cepstral là đặc trưng của mẫu, mỗi mẫu được xử lý trong L khung tiếng nói,
thì số nơ ron của lớp vào sẽ là 12*L, ví dụ sử dụng 5 frames/mẫu thì số nơ
ron lớp vào là 60
+ S
ố nơ ron lớp Kohonen = số giá trị các tập trả lời. Ví dụ cần nhậndạng 10
từ mỗi từ được mô tả bởi vector vào 60 thành phần, tại lớp ẩn cần lưu trữ lời
giải là 600, cần số nơ ron lớp ẩn là 625 nơ ron (ma trận nơ ron kích thước
25x25)
+ Số nơ ron lớp ra = số lượng kết quả đầu ra, sử dụng phương pháp mã hoá
b
ằng số bit biểu diễn số lượng kết quả, ví dụ cần nhậndạng 128 từ cần 7 nơ
ron ở lớp ra, 7 nơ ron này cho phép mã hoá 2
7
= 128 giá trị
- Phương pháp học cạnh tranh của lớp ẩn và quá trình học có chỉ đạo tại lớp
ra của mạng theo các bước sau:
+ Khởi tạo trọng số: các thành phần ma trận trọng số được khởi tạo bởi giá
trị ngẫu nhiên
+ Đọc tín hiệu vào cho mạng: dữ liệu trong file mẫu chứa thông tin mẫu học
và cho kết quả gồm 2 thành phần: mảng 1 chiều chứa vector tín hiệu vào và
m
ảng 2 chiều chứa ma trận trọng số liên kết ban đầu của lớp Kohonen
+ Hiệu chỉnh ma trận trọng số lớp Kohonen: hiệu chỉnh trọng số liên kết nơ
ron lớp ẩn Kohonen sao cho mạng có thể học mẫu tốt nhất. Từ mảng một
chiều chứa vector tín hiệu vào, mảng hai chiều chứa ma trận trọng số liên kết
lớp ẩn và các hằng số học amin, amax, tmax chức năng này phải xác định
mảng hai chiều chứa ma trận trọng số liên kết lớp ẩn theo công thức:
HidWeight =HidWeight + rate(t)topo(Winner, i)(InVec(j) -
HidWeight
+ Hiệu chỉnh ma trận trọng số lớp ra: hiệu chỉnh trọng số liên kết nơ ron lớp
ra để tạo bảng tra cứu. Từ mảng một chiều chứa vector tín hiệu ra v
à mảng
hai chiều chứa ma trận trọng số liên kết lớp ra chức năng này phải xác định
mảng hai chiều chứa ma trận trọng số liên kết lớp ra bằng cách hiệu chỉnh
ma trận trọng số liên kết lớp ra theo công thức: OutWeight =OutVec(k).
Phương pháp nhận dạng
- Đầu vào: file wave chứa dữ liệu tín hiệu tiếngnói cần nhậndạng và file dat
ch
ứa thông tin trọng số liên kết nơ ron lớp ẩn và lớp ra. Ngoài ra đầu vào
ngu
ồn âm cũng có thể là từ micro thông qua sound card để làm, lúc này dữ
liệu tiếngnói được đọc trong buffer dữ liệu của Windows.
- Đầu ra: kết quả cần nhận dạng
- Quá trình nhậndạngtiếngnói được thực hiện qua các bước:
+ Đọc tín hiệu vào: đọc dữ liệu từ file wav hoặc từ buffer dữ liệu âm thanh
+ Xử lý tín hiệu giống như chức năng phân tích LPC ở trên
+ Đọc ma trận trọng số liên kết lớp ẩn và lớp ra của mạng
+ Xác định nơ ron trung tâm
+ Tra cứu kết quả: tra cứu trên bản đồ topo mạng nơ ron để đưa ra giá trị cần
nhận dạng.
Kết luận
Trên đây là 1 nghiên cứu và thử nghiệm sử dụng phương pháp mã dự đoán
tuyến tính để phân tích tín hiệu, sử dụng mạng nơ ron lan truyền ngược
hướng với lớp mạng tự tổ chức Kohonen để tích luỹ tri thức cho mạng, l
àm
cơ sở cho việc nhậndạngtiếngnóibằng cách tra cứu topo mạng để đưa ra
kết luận về tiếngnói cần nhậndạng đưa vào hệ thống. Thực tế hệ thống thử
nghiệm có thể nhậndạng được 1 số nguyên âm tiếng việt. Phương pháp LPC
được áp dụng khá rộng r
ãi trong xử lý tiếngnói bởi nó cung cấp mô hình lý
tưởng cho tín hiệu tiếng nói. Hơn nữa, LPC tương đối đơn giản, dễ thực hiện
cả bằng phần cứng lẫn phần mềm mà vẫn đảm bảo độ chính xác. Tuy nhiên
nhược điểm của phương pháp này là không giải quyết được vấn đề các tính
chất động của thanh môn, làm giảm hiệu năng của hệ thống nhận dạng, đặc
biệt là các hệ thống độc lập người nói.
Đề xuất hướng phát triển:
Để nâng cao hiệu suất nhậndạng của hệ thống, theo sự phát triển của tin học
hiện đại, hướng nghiên cứu này có thể tiếp tục mở rộng phát triển theo các
hướng sau:
- Đề xuất mạng nơ ron mờ: phát triển theo 3 hướng đó là
+ Mạng nơ ron với các đầu vào, trọng số mờ
+ Mạng nơ ron dùng để xác định hàm thuộc
+ Suy diễn mờ với mạng neuron.
- Đề xuất dùng giải thuật di truyền để tối ưu hoá cấu trúc mạng neuron.
Những hướng phát triển tiếp theo được đánh giá theo đúng mô hình về các
hệ thống thông minh lai, đó là: Hybrid Intelegent System = Neural nerworks
+ Expert System + Genetic Algorithms + Fuzzy Logich.
-
Đề xuất các phương pháp xử lý tín hiệu số khác, để có cơ sở cải tiến hệ
thống nâng cao chất lượng nhậndạng của hệ thống. Đề xuất các hướng dùng
mô hình Makov
ẩn, sử dụng phương pháp lượng tử hoá vector để bổ xung
vào hệ thống./.
. làm, lúc này dữ
liệu tiếng nói được đọc trong buffer dữ liệu của Windows.
- Đầu ra: kết quả cần nhận dạng
- Quá trình nhận dạng tiếng nói được thực hiện. tín hiệu tiếng nói, là những
tham số đầu vào cho hệ thống nhận dạng tiếng nói. Phương pháp này biểu
diễn mẫu tiếng nói tại thời điểm n, x(n) bằng phép