Bộ công cụ nhận dạng tiếng nói Kaldi [2]

Một phần của tài liệu Đề tài: Xây dựng hệ thống nhận dạng tiếng việt nói trên nền bộ công cụ kaldi tích hợp mạng nơ ron sâu (Trang 73 - 78)

Chương III. NHẬN DẠNG TIẾNG VIỆT NÓI TRÊN NỀN BỘ CÔNG CỤ KALDI TÍCH HỢP MẠNG NƠ RON SÂU

3.3. Bộ công cụ nhận dạng tiếng nói Kaldi [2]

* Đường dẫn tải bộ công cụ Kaldi http://kaldi-asr.org/doc/install.html Việc cài đặt được thực hiện qua 2 bước:

Bước 1: Cài đặt theo hướng dẫn trong tập tin INSTALL trong thư mục kaldi/tools

Bước 2: Cài đặt theo hướng dẫn trong tập tin INSTALL trong thư mục kaldi/src

* Môi trường tính toán

- Các nhà phát triển mong đợi sẽ chạy Kaldi ở một cụm các máy Linux chạy Sun Grid Engine (SGE). Đây là phần mềm mã nguồn mở được sử dụng rộng rãi.

64

- Ta có thể chạy Kaldi trên một máy tính mà không cần GridEngine hoặc NFS nhưng nó sẽ chậm hơn.

- Nên chạy Kaldi trên máy Linux. Kaldi cũng đã được thử nghiệm trên Darwin (phiên bản của Apple BSD) và trên Cygwin.

* Các gói phần mềm yêu cầu để cài đặt Kaldi

Git: Cần thiết để tải Kaldi và phần mềm khác mà nó phụ thuộc vào.

Wget: Cần thiết cho quá trình cài đặt của một số thành phần không thuộc Kaldi, ví dụ yêu cầu tiện ích UNIX chuẩn như bash, perl, awk, grep, và make.

ATLAS: gói tuyến tính đại số.

* Các gói phần mềm được cài đặt bới Kaldi

Các thư viện và công cụ sau sẽ đi kèm với các kịch bản cài đặt trong thư mục Tools do đó ta sẽ phải cài đặt chúng.

- OpenFst: Chúng ta biên dịch và sử dụng lại nó nhiều lần.

- SRILM: Đây là một bộ công cụ mô hình ngôn ngữ. Chúng ta có thể chuyển đổi bất kỳ mô hình ngôn ngữ định dạng Arpa nào tới một Fst.

- Sph2pipe: sử dụng cho việc chuyển đổi từ định dạng sph sang định dạng khác như wav.

- ATLAS, thư viện đại số tuyến tính. Chỉ cần thiết cho các tiêu đề.

- CLAPACK, thư viện đại số tuyến tính. Chỉ hữu ích trên hệ thống nơi mà không có ATLAS và thay vì chỉ biên dịch với CLAPACK.

3.3.2. Mô hình thư mục làm việc trong Kaldi

65

egs

wsj

VS

etc

common

lang_prep

exp

local

lang

train

lang s5

s5

exp

local

conf steps

data

Tập tin và kịch bản - path.sh - run.sh - cmd.sh - env_voip_cs.sh

Tập tin và kịch bản - cmvn.scp - feats.scp - wav.scp - text - words.txt - spk2utt - utt2spk 2 1

4 5 6

3

5.1

5.2 5.3

5.1.1

Tập tin và kịch bản - L_disambig.fst - L.fst - oov.int - oov.txt - phones - phones.txt - topo - words.txt Tập tin và kịch bản

- lexicon.txt - nonsilence_phones.txt - optional_silence.txt - silence_phones.txt - extra_questions.txt

local train

lang

lang train

5.1.2 dict

5.1.3

Hình 3.6: Thư mục làm việc trong Kaldi

Thư mục làm việc trong Kaldi gồm các thư mục và các tập tin, trong đó có một số thư mục dữ liệu có sẵn như: wsj, timit, …

Thư mục làm việc trong đề tài được tác giả tạo ra là: egs/VS/s5/…

3.3.3. Mô hình hệ thống nhận dạng tiếng Việt nói với bộ công cụ Kaldi Sơ đồ tổng quan của hệ thống nhận dạng tiếng Việt nói trên nền bộ công cụ Kaldi được mô tả ở hình 3.7.

66

Mô hình GMM (GMM Models)

Đồ thị giải mã (Decoding Graph) Tiếng nói

huấn luyện

Văn bản Tiếng nói

kiểm thử

Văn bản

Công cụ huấn luyện Kaldi (Kaldi Training Tools)

Bộ giải mã Kaldi (Kaldi Decoder)

Hình 3.7: Mô hình nhận dạng tiếng nói với bộ công cụ Kaldi

Trong mô hình này, mô hình âm học (AM) là trái tim của nhận dạng tiếng nói.

Các AM cho phép ước lượng xác suất P(a/w;θ), giá trị này được sử dụng trong bộ nhận dạng tiếng nói theo phương trình (3.1).

𝑊∗ = 𝑎𝑟𝑔𝑚𝑎𝑥𝑤{𝑃(𝑎|𝑊) ∗ 𝑃(𝑤)

𝑃(𝑎) }

= 𝑎𝑟𝑔𝑚𝑎𝑥𝑤{𝑃(𝑎|𝑤) ∗ 𝑃(𝑤)} (3.1) Mô hình âm học chỉ có một phần thông tin có sẵn cho tham số huấn luyện mô hình âm học θ vì các văn bản phiên âm tương ứng không có liên kết về mặt thời gian.

Thông tin ẩn của từ (thời gian) liên kết trong một cách phát âm tạo ra mô hình huấn luyện âm học với nhiều thách thức.

3.3.4. Mạng Nơ ron sâu trong Kaldi [14]

3.3.4.1. Mô hình âm học với DNN

Trong hệ thống DNN-HMM hybrid, DNN được huấn luyện để cung cấp dự đoán xác suất hậu nghiệm cho các trạng thái HMM. Cụ thể, với một quan sát đầu ra tương ứng với thời gian t trong câu nói u, đầu ra yut(s) của DNN cho trạng thái HMM s thu được bằng cách sử dụng hàm kích hoạt softmax:

𝑦𝑢𝑡(𝑠) ≜ 𝑃(𝑠|𝑂𝑢𝑡) = 𝑒𝑥𝑝{𝑎𝑢𝑡(𝑠)}

∑ 𝑒𝑥𝑝{𝑎𝑠′ 𝑢𝑡(𝑠′)}

Trong đó aut(s) là hàm kích hoạt ở lớp đầu ra tương ứng với trạng thái s. Việc nhận dạng người nói là một hàm loga giả lập của trạng thái s cho quan sát Out .

Log p(Out|s) = log yut(s) – log P(s)

67

P(s) là xác suất tiên nghiệm của trạng thái s được tính từ dữ liệu huấn luyện.

Các mạng được huấn luyện để tối ưu hóa huấn luyện hàm mục tiêu sử dụng phương pháp lan truyền ngược chuẩn. Thông thường, cross-entropy được sử dụng như một đối tượng và tối ưu hóa được thực hiện thông qua gradient descent ngẫu nhiên (SGD).

Đối với bấy kỳ đối tượng nào, con số quan trọng để tính toán là gradient của nó với các hàm kích hoạt ở lớp đầu ra. Các gradient cho tất cả các tham số của mạng có thể được bắt nguồn từ một con số dựa trên phương pháp lan truyền ngược.

Mô hình âm học DNN huấn luyện các tham số thu được bằng cách ghép 7 khung với nhau (1 khung hiện tại và 3 khung mỗi bên) của 13 chiều MFCC và ánh xạ tới 40 chiều sử dụng phương pháp phân tích biệt thức tuyến tính (LDA). MFCC được chuẩn hóa tới 0 trên mỗi người nói.

3.3.4.2. Công thức DNN

Mục này giải thích các tham số quan trọng dựa trên công thức huấn luyện DNN (DNN recipe). DNN recipe này là một phần của bộ công cụ Kaldi. Kaldi chứa hai recipe song song, cả hai recipe này đều là mạng nơ ron sâu, lớp cuối cùng (lớp đầu ra) là một softmax có số chiều đầu ra bằng số trạng thái phụ thuộc ngữ cảnh

context-dependent State” (thường là vài nghìn). Mạng nơ ron được huấn luyện để dự đoán xác suất của các context-dependent State. Trong quá trình giải mã, các xác suất đầu ra được chia ra các xác suất của mỗi trạng thái tạo thành một “pseudo- likehood” sử dụng thay cho xác suất chuyển trạng thái trong HMM.

Công thức đầu tiên hỗ trợ tiền huấn luyện RBM (Restricted Boltzmann Machines), huấn luyện gradient descent ngẫu nhiên sử dụng NVidia Graphics Processing Units (GPUs) và huấn luyện discriminative sử dụng boosted MMI và statelevel minimum Bayes risk (sMBR). Công thức thứ hai được viết hỗ trợ thực thi huấn luyện song song trên nhiều CPU (hiện tại đã được mở rộng để hỗ trợ huấn luyện trên nhiều GPU)

Trong đề tài này, công thức DNN được thực hiện trên các CPU song song với công thức Dan’s DNN. Công thức này áp dụng một huấn luyện lai cổ điển và framework giải mã sử dụng mạng sâu đơn giản với hàm tanh phi tuyến. Hơn nữa hệ

68

thống cũng kết hợp sử dụng giải mã minimum Bayes risk và trong trường hợp này, một sự kết hợp các lattice để tạo ra các lattice được chuẩn hóa bằng cách loại bỏ tổng chi phí chuyển tiếp từ chúng và sử dụng các lattice kết quả như đầu vào bước giải mã cuối cùng.

3.3.5. Mô hình GMM

Kaldi hỗ trợ GMM với cấu trúc hiệp phương sai chéo và đầy đủ. Thay vì thể hiện các hàm mật độ Gauss riêng biệt, Kaldi thực hiện trực tiếp một lớp GMM được tham số hóa bởi các tham số tự nhiên. Các lớp GMM cũng được lưu trữ các số hạng không đổi trong tính toán xác suất, bao gồm các số hạng không phụ thuộc vào các vector dữ liệu. Việc thực thi như vậy là phù hợp cho hiệu quả tính toán tích vô hướng đơn giản (dot-product).

Một mô hình GMM biểu diễn các tham số như tổng các trọng số của nhiều Gauss phõn tỏn. Mỗi trạng thỏi Gauss cú: Mean (ài), hiệp phương sai (Ʃi), trọng số (Wi).Trong quá trình huấn luyện, hệ thống học về những dữ liệu mà nó sử dụng để đưa ra quyết định. Một tập hợp các tham số được thu thập từ một người nói (hoặc ngôn ngữ hoặc phương ngữ).

Thay vì huấn luyện mô hình người nói chỉ dựa trên dữ liệu người nói, mô hình GMM điều chỉnh mô hình phổ nền UBM (Universal Background Model) với người nói, tận dụng lợi thế của tất cả các dữ liệu, thích ứng MAP (maximum a posteriori):

mỗi một Gaussian là một trọng số kết hợp của UBM và người nói. Trọng số người nói nhiều nếu ta có nhiều dữ liệu hơn: μi =αEi(x)+(1−α)μiVới α=n/(n+16).

Các tham số thông thường MFCC có thể sử dụng nhiều chiều hơn (20 + delta). Mô hình phổ nền UBM: 512-2048 mixture, GMM của người nói: 64-256 mixture, thường được kết hợp đặc biệt với các phân lớp khác trong một mixture-of-experts.

Một phần của tài liệu Đề tài: Xây dựng hệ thống nhận dạng tiếng việt nói trên nền bộ công cụ kaldi tích hợp mạng nơ ron sâu (Trang 73 - 78)

Tải bản đầy đủ (PDF)

(103 trang)