1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI BÁO CÁO XÂY DỰNG MÔ HÌNH NLP Đề tài VIETNAMESE SPEECH RECOGNITION

27 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 1,83 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng cáchàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node.Mỗi một lớp sau khi thông qua

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

 Mô tả đề tài

Lời nói là phương tiện giao tiếp cơ bản nhất của con người khi trưởng thành Mụctiêu cơ bản của xử lý giọng nói là cung cấp sự tương tác giữa con người và máy móc.Nhận dạng giọng nói hoặc Nhận dạng giọng nói tự động (ASR) là trung tâm của sựchú ý đối với các dự án AI như robot Nếu không có ASR, không thể tưởng tượng mộtrobot nhận thức tương tác với con người. 

 Collect and label data

Link data: Data Trên Drive

VIVOS là kho ngữ liệu tiếng Việt miễn phí bao gồm 15 giờ ghi âm giọng nóiđược chuẩn bị cho nhiệm vụ Nhận dạng giọng nói tự động Bộ tài liệu do AILAB,phòng máy tính ĐHQG TP.HCM - ĐHKHTN biên soạn, với GS Vũ Hải Quân là chủnhiệm Được xuất bản kho tài liệu này với hy vọng sẽ thu hút được nhiều nhà khoahọc hơn nữa để giải quyết vấn đề nhận dạng giọng nói của người Việt Ngữ liệu chỉnên được sử dụng cho mục đích học thuật Link Dataset

Trang 3

Âm thanh là dạng tín hiệu liên tục, mà máy tính làm việc với các con số rời rạc.

Ta lấy mẫu tại các khoảng thời gian Vì dữ liệu âm thanh của tập VIVOS có samplerate = 16000  lấy 1s lấy 16000 sample Và channel = 1 ta thu được audio.shape =(16000*sec,)

 1.2 Pre-emphaѕiѕ

Do đặᴄ điểm ᴄấu tạo thanh quản ᴠà ᴄáᴄ bộ phận phát âm nên tiếng nói ᴄủa ᴄhúng

ta ᴄó đặᴄ điểm: ᴄáᴄ âm ở tần ѕố thấp ᴄó mứᴄ năng lượng ᴄao, ᴄáᴄ âm ở tần ѕố ᴄao lại

ᴄó mứᴄ năng lượng khá thấp Trong khi đó, ᴄáᴄ tần ѕố ᴄao nàу ᴠẫn ᴄhứa nhiều thôngtin ᴠề âm ᴠị Vì ᴠậу ᴄhúng ta ᴄần 1 bướᴄ pre-emphaѕiѕ để kíᴄh ᴄáᴄ tín hiệu ở tần ѕốᴄao nàу lên

Trang 4

1 2 Speᴄtrogram

 2.1 Windoᴡing

Thaу ᴠì biến đổi Fourier trên ᴄả đoạn âm thanh dài, ta trượt 1 ᴄửa ѕổ dọᴄ theo tínhiệu để lấу ra ᴄáᴄ frame rồi mới áp dụng DFT trên từng frame nàу ( DFT - DiѕᴄreteFourier Tranѕform) Tốᴄ độ nói ᴄủa ᴄon người trung bình khoảng 3, 4 từ mỗi giâу,mỗi từ khoảng 3-4 âm, mỗi âm ᴄhia thành 3-4 phần, như ᴠậу 1 giâу âm thanh đượᴄᴄhia thành 36 - 40 phần, ta ᴄhọn độ rộng mỗi frame khoảng 20 - 25mѕ là ᴠừa đủ rộng

để bao 1 phần âm thanh Cáᴄ frame đượᴄ oᴠerlap lên nhau khoảng 10mѕ để ᴄóthể ᴄapture lại ѕự thaу đổi ᴄonteхt

Sử dụng Hamming ᴡindoᴡ để làm giát trị biên giảm xuống từ từ

Trang 5

 2.2 DFT

Trên từng frame, ta áp dụng DFT - Diѕᴄrete Fourier Tranѕform theo ᴄông thứᴄ:

Áp dụng trên tất ᴄả ᴄáᴄ frame, ta đã thu đượᴄ 1 Speᴄtrogram như hình dướiđâу Mỗi frame ta thu đượᴄ 1 liѕt ᴄáᴄ giá trị độ lớn (magnitude) tương ứng ᴠới từngtần ѕố từ 0→N0 \to N0→N Áp dụng trên tất ᴄả ᴄáᴄ frame, ta đã thu đượᴄ

1 Speᴄtrogram như hình dưới đâу Trụᴄ ххх là trụᴄ thời gian (tương ứng ᴠới thứ tựᴄáᴄ frame), trụᴄ ууу thể hiện dải tần ѕố từ 0→100000 \to 100000→10000 Hᴢ, giá trịmagnitude tại từng tần ѕố đượᴄ thể hiện bằng màu ѕắᴄ Qua quan ѕát ѕpeᴄtrogram nàу,

ta nhận thấу ᴄáᴄ tại ᴄáᴄ tần ѕố thấp thường ᴄó magnitude ᴄao, tần ѕố ᴄao thường ᴄómagnitude thấp

Trang 6

 Tổng quan cấu trúc mạng sử dụng trong model

1 CNN (Convolutional Neural Network)[1] là gì ?

Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng cáchàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node.Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượnghơn cho các lớp tiếp theo Từ đó giảm số lượng weight cho mô hình

Trang 7

2 GRU (Gated recurrent unit)[2] là gì ?

GRU là một phiên bản của LSTM với nguyên tắc hoạt động tương tự như LSTMnhưng có cấu tạo đơn giản hơn GRU kết hợp Cell state và Hidden state thành 1, do

đó nó chỉ có 2 input và 1 output Ngoài ra, trong GRU chúng ta sử dụng 2 gate làReset gate và Update gate để quyết định việc lưu trữ và loại bỏ thông tin

Ngoài ra, một đặc điểm chung của 3 loại RNN (Vanilla RNN, LSTM, GRU) làchúng đều hoạt động theo một chiều nhất định (forward direction) Hay nói một cáchkhác, các mạng này chỉ mang thông tin tính tới thời điểm hiện tại Tuy nhiên, trongnhiều bài toán NLP thì việc biết thông tin của các timesteps tiếp theo giúp cải thiện rấtnhiều kết quả output (Translation, Speech recognition, Handwritten recognition, ).Trong trường hợp này chúng ta có thể sử dụng Bi-directional RNN với việc xử lý

Trang 8

thông tin theo cả hai chiều (forward và backward) Mô hình hoạt động của directional RNN có thể được mô tả như hình dưới đây:

Bi-Ở đây,chúng ta có thể sử dụng Vanilla RNN, LSTM hoặc GRU làm các Cell choBi-directional RNN và kết quả output được tính bằng cách kết hợp cả hai Hidden state

từ forward và backward direction

Ngoài ra, chúng ta cũng có thể kết hợp nhiều mạng RNN để tạo thành một layer RNN network với output của layer này trở thành input của layer tiếp theo nhưsau:

Trang 9

Multi-3 Giới thiệu về Connectionist Temporal Classification

Trong nhận diện giọng nói hay nhận diện chữ viết tay, đầu ra sẽ là một câu,nhưng chưa hoàn chỉnh vì có các ký tự lặp lại như "heelllo", "toooo", hay các chữ

có những khoảng trống (blank) như "he l l oo", "t o o", Nguyên nhân dẫn tớinhững hiện tượng này là giọng nói dài (các đoạn ngân nga trong các bài hát, ),giọng bị ngắt quãng, kích thước chữ viết tay lớn, nhỏ,

Do đó, để cho ra được một câu hoàn chỉnh thì ta cần phải căn chỉnh lại đầu ra ấy,loại bỏ các ký tự lặp lại và khoảng trống Vấn đề này được gọi là alignmentproblem và nó được giải quyết bằng CTC

Mỗi mẫu trong S bao gồm một cặp chuỗi (x,z) Chuỗi mục tiêu (targetsequence) z=(z1,z2, ,zU) có độ dài gần như chuỗi đầu vào (input sequence)x=(x1,x2, ,xT), tức là U ≤ T

Mục tiêu của ta là dùng S để huấn luyện bộ temporal classifier h:X↦Z đểphân loại các chuỗi đầu vào chưa thấy trước đó (previously unseen inputsequences) sao cho tối thiểu hóa một lượng mất mát (error measure) nào đó.Một trong các error measure là label error rate (LER) được tính bằng trungbình của edit distance của đầu ra dự đoán h(x) và nhãn z trong tập S′ lấy từ S:

Vậy, temporal classifier h là một mô hình phân loại nào đó mang tính thờigian (temporal) Và cũng vì thế, ở đây ta sẽ lấy RNN làm một temporalclassifier cho gần gũi (thật ra ta có thể lấy bất kỳ model nào cho ra output theothời gian)

 Đầu ra của CTC Network: RNN

Đầu ra của một CTC Network là kết quả của lớp softmax có số unit bằng số

ký tự trong L cộng thêm một ký tự trống (blank), nghĩa là xác suất phân loạicủa các ký tự trong |L| + 1∣L∣+1 tại một thời điểm nhất định

Trang 10

Như vậy, tổ hợp của tất cả các đầu ra theo thời gian là ZZ Dưới đây là hìnhminh họa.

 Xác suất của một labelling

Xác suất của một labelling là tổng xác suất của tất cả các alignment cho

ra labelling đó.

 Xây dựng bộ phân loại

đầu ra của bộ phân loại sẽ là labelling có vẻ đúng nhất

Vậy làm sao để tìm h(x)?

các unit có xác suất cao nhất của mỗi time-step, do đó không đảm bảo sẽtìm thấy labelling đúng nhất

• Prefix search decoding (PSD): phương pháp này dựa trên backward algorithm, nếu có đủ thời gian, PSD sẽ luôn tìm thấy labellingphù hợp nhất, nhưng số lượng prefix tối đa sẽ tăng theo hàm mũ, phứctạp nên phải áp dụng heuristic

Trang 11

forward- Xây dựng hàm mất mát (CTC Loss function)

Ta sẽ xây dựng hàm mất mát để có thể train bằng gradient descent Hàmmất mát được lấy theo maximum likelihood Nghĩa là khi tối thiểu hóa nó thì

sẽ cực đại hóa log likelihood

Như vậy hàm mất mát (hàm mục tiêu) sẽ là negative log likelihood:

Như vậy, một CTC Network chẳng qua là một network phân loại thông thường cóoutput theo thời gian (temporal classifier), ta tính toán xác suất củacác alignments bằng cách connect các xác suất của output của các thời điểm lại vớinhau và chọn alignment phù hợp nhất, tính sai số của nó và cho network học lại Vìthế họ gọi là Connectionist Temporal Classification

1 Model deepspeech2

Phần tiền xử lý lấy một tín hiệu dạng sóng âm thanh thô và chuyển đổi nó thànhmột biểu đồ phổ log có kích thước ( N_timesteps , N_frequency_features )

Trang 12

N_timesteps phụ thuộc vào thời lượng của tệp âm thanhgốc, N_frequency_features có thể được gán trong tệp cấu hình của mô hình dưới dạngtham số.

Phần Deep Neural Network (DNN) tạo ra phân phối xác suất P_t (c) trên các ký tự

từ vựng c cho mỗi bước thời gian t

DeepSpeech2 được đào tạo với mất CTC

T ỷ l ệ l ỗ i Word (WER) là thước đo đánh giá chính Để đưa các từ ra khỏi một môhình đã đào tạo, người ta cần sử dụng bộ giải mã Bộ giải mã chuyển đổi phân phốixác suất qua các ký tự thành văn bản Có hai loại bộ giải mã thường được sử dụngvới các mô hình dựa trên CTC: bộ giải mã tham lam và bộ giải mã tìm kiếm chùmvới tính điểm lại mô hình ngôn ngữ Một bộ giải mã tham lam xuất ra ký tự có thểxảy ra nhất tại mỗi bước thời gian Nó rất nhanh và nó có thể tạo ra bảng điểm rấtgần với cách phát âm gốc Nhưng nó có thể mắc nhiều lỗi chính tả nhỏ Nhưng dobản chất của chỉ số WER, ngay cả một lỗi ký tự cũng làm cho cả một từ không chínhxác Bộ giải mã tìm kiếm chùm với tính năng ghi lại mô hình ngôn ngữ cho phépkiểm tra nhiều giải mã có thể (chùm) cùng một lúc với việc ấn định điểm cao hơncho nhiều N-gam có thể xảy ra hơn theo một mô hình ngôn ngữ nhất định Mô hìnhngôn ngữ giúp sửa lỗi chính tả Nhược điểm là nó chậm hơn đáng kể so với một bộgiải mã tham lam

 Quá trình xây dựng và huấn luyện mô hình

1 Import thư viện cần thiết:

2 Đọc file csv được chuyển từ file txt sang và chuyển hết thành chữ

thường

Trang 13

3 Chia dữ liệu train và validation.

Trang 14

4 Tạo bộ từ vựng decode chữ thành số và encode số thành chữ dựa theo

layer của tensorflow là

The vocabulary is: ['', 'a', 'ă', 'â', 'b', 'c', 'd', 'đ', 'e', 'ê', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'ô', 'ơ', 'p', 'q', 'r', 's', 't', 'u', 'ư', 'v', 'x', 'y', 'á', 'à', 'ả', 'ã', 'ạ', 'ắ', 'ằ', 'ẳ', 'ẵ', 'ặ', 'ấ', 'ầ', 'ẩ', 'ẫ', 'ậ', 'é', 'è', 'ẻ', 'ẽ', 'ẹ', 'ế', 'ề', 'ể', 'ễ', 'ệ', 'í', 'ì', 'ỉ', 'ĩ', 'ị', 'ó', 'ò', 'ỏ', 'õ', 'ọ', 'ố', 'ồ', 'ổ', 'ỗ', 'ộ', 'ớ', 'ờ', 'ở', 'ỡ', 'ợ', 'ú', 'ù', 'ủ', 'ũ', 'ụ', 'ứ', 'ừ', 'ử', 'ữ', 'ự', 'ý', 'ỳ', 'ỷ', 'ỹ', 'ỵ', "'", '?', '!', ' '] (size =94)

5 Set thông số của các hàm trong STFT của tensorflow

6 Trích xuất đặc trưng bằng STFT sau đó decode chữ thành số rồi trả về

spectrogram và chữ đã được decode

Trang 15

7 Spectrogram sẽ có dạng như thế này:

Trang 16

8 Label sẽ có dạng như thế này:

9 Với mỗi tên trong dataframe đưa thành file audio tương ứng với từ

được chuẩn hóa sẽ được gộp lại thành một và map() lại trong một file dataset

Trang 17

10.Model sử dụng 2D CNN, RNN và CTC loss, hàm mặc định của CTC

loss là:

Trang 19

11.Summary

Trang 21

12.Hàm decode với mỗi file âm thành được dự đoán trong hàm callback

Trang 22

13.Tạo checkpoint sau mỗi epoch

Trang 23

14.Loss khá là cao mặc dù wer ở tầm trung 12% - 23%

Độ chính xác:

Trang 24

15.Audio được dự đoán với chuẩn đầu vào là single-channel, 16 bit, đuôi

wave, và sample rate = 16000: Text đúng là: nên đưa chuẩn tiết kiệm

và chuẩn đề bạt cán bộ

16.Audio được dự đoán với đầu vào có bị rè, double-channel, 32 bit, đuôi

wave, và không phải 16000Hz: Text đúng là : tận như thế ô chưa bây giờ mình sẽ đến với một ví dụ nữa đi

Trang 25

17.Em vẫn đang thử train thêm dữ liệu mới với đầu vào bị rè và âm thanh

không phải ở dạng chuẩn single-channel, 16 bit, đuôi wave, và 16000Hz của tensorflow Nhưng mà sau mỗi lần train thì wer cao hơn

1 và loss quá cao nên em đang xem lại model để train tiếp ạ:

 Đánh giá quá trình làm

1 Ưu điểm

- Tìm hiểu thêm được về các hàm xử lý âm thanh của tensorflow

- Trải nghiệm được thêm một đề tài mới về xử lý âm thanh

- Hoàn thành chuẩn chu được một model về xử lý âm thanh

Trang 26

70 Data còn ít vì giới hạn bộ nhớ và giới hạn GPU để train model

- Phần lớn thời gian chỉ là tìm hiểu và học hỏi chứ chưa thực sự làm đề tài trọnvẹn

Trang 27

 Tài liệu tham khảo

George E Dahl, Dong Yu, Li Deng, and Alex Acero 2012 Context-dependent pre-trained deep neural networks for large-vocabulary speech recognition IEEE Transactions on Audio, Speech, and Language Processing, 20(1):30–42.

Ngày đăng: 19/07/2022, 10:53

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w