1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Kỹ thuật dữ liệu: Xây dựng ứng dụng tạo phụ đề tự động sử dụng deep learning

93 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Xây Dựng Ứng Dụng Tạo Phụ Đề Tự Động Sử Dụng Deep Learning
Tác giả Đỗ Lê Tiến Đạt
Người hướng dẫn TS. Trần Nhật Quang, PGS.TS. Hoàng Văn Dũng
Trường học Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Kỹ Thuật Dữ Liệu
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 93
Dung lượng 5,65 MB

Cấu trúc

  • CHƯƠNG 1: MỞ ĐẦU (17)
    • 1.1. GIỚI THIỆU (17)
    • 1.2. GIỚI HẠN (19)
    • 1.3. BỐ CỤC CỦA BÁO CÁO (20)
  • CHƯƠNG 2: TÍN HIỆU ÂM THANH (21)
    • 2.1. NGUYÊN LÝ HÌNH THÀNH TIẾNG NÓI (21)
    • 2.2. ÂM, ÂM TIẾT, ÂM VỊ (23)
      • 2.2.1. Âm tiết (23)
      • 2.2.2. Âm vị (phoneme) và âm (phone) (23)
    • 2.3. CƠ CHẾ HOẠT ĐỘNG CỦA TAI (25)
    • 2.4. SƠ LƯỢC VỀ TÍN HIỆU ÂM THANH (26)
    • 2.5. XỬ LÝ DỮ LIỆU ÂM THANH (27)
      • 2.5.1. Tín hiệu âm thanh (27)
      • 2.5.2. Biến đổi Fourier (28)
      • 2.5.3. Spectrum, Spectrogram và Mel Spectrogram (29)
      • 2.5.4. Mel-Frequency Cepstral Coefficients (MFCC) (36)
      • 2.5.5. Các kỹ thuật tăng cường dữ liệu (Data Augmentation) (46)
  • CHƯƠNG 3: MÔ HÌNH GMM-HMM (50)
    • 3.1. TỔNG QUAN (50)
    • 3.2. MÔ HÌNH ÂM THANH - ACOUSTIC MODEL (51)
      • 3.2.1. HMM-GMM Acoustic Model (52)
    • 3.3. MÔ HÌNH NGÔN NGỮ - LANGUAGE MODEL (55)
  • CHƯƠNG 4: MÔ HÌNH DEEP SPEECH 2 (57)
    • 4.1. CHUẨN BỊ DỮ LIỆU (57)
    • 4.2. XÁC ĐỊNH MÔ HÌNH (61)
    • 4.3. CHỌN OPTIMIZER VÀ SCHEDULER - ADAMW VỚI SIÊU HỘI TỤ (62)
    • 4.4. CONNECTIONIST TEMPORAL CLASSIFICATION - CTC (64)
    • 4.5. PHƯƠNG THỨC ĐÁNH GIÁ MÔ HÌNH (66)
      • 4.5.1. WER (66)
      • 4.5.2. CER (67)
      • 4.5.3. Greedy Decoder (68)
    • 4.6. HUẤN LUYỆN VÀ ĐÁNH GIÁ MÔ HÌNH (68)
  • CHƯƠNG 5: MÔ HÌNH WAV2VEC2 (72)
    • 5.1. TỔNG QUAN (72)
    • 5.2. CHUẨN BỊ DỮ LIỆU, TOKENIZER, FEATURE EXTRACTOR (73)
      • 5.2.1. Cài đặt Wav2Vec2CTCTokenizer (73)
      • 5.2.2. Cài đặt Wav2Vec2 Feature Extractor (78)
      • 5.2.3. Chuẩn bị dữ liệu (79)
    • 5.3. HUẤN LUYỆN VÀ ĐÁNH GIÁ MÔ HÌNH (80)
      • 5.3.1. Cài đặt Trainer (80)
      • 5.3.2. Huấn luyện và đánh giá mô hình (83)
  • CHƯƠNG 6: ỨNG DỤNG TẠO PHỤ ĐỀ TỰ ĐỘNG (85)
    • 6.1. GIỚI THIỆU (85)
    • 6.2. MỤC TIÊU (85)
    • 6.3. XÂY DỰNG CHỨC NĂNG (85)
  • CHƯƠNG 7: KẾT LUẬN (89)
    • 7.1. ĐÓNG GÓP CỦA LUẬN VĂN (89)
    • 7.2. GIỚI HẠN CỦA LUẬN VĂN (89)
    • 7.3. PHƯƠNG HƯỚNG PHÁT TRIỂN (90)
  • Tài liệu tham khảo (91)

Nội dung

Về phần mô hình, chúng ta sẽ tìm hiểu và huấn luyện hai dạng mô hình trên cùng tập dữ liệu TIMIT, một tập dữ liệu chứa các đoạn ghi âm và phụ đề tương ứng với tổng độ dài chỉ khoảng năm

TÍN HIỆU ÂM THANH

NGUYÊN LÝ HÌNH THÀNH TIẾNG NÓI

Hình 2 Cấu tạo cơ quan phát âm [4] Để hình thành tiếng nói, một luồng hơi được đẩy lên từ phổi tạo áp lực lên thanh quản

Thanh quản hoạt động dưới áp lực, mở ra để cho phép luồng không khí thoát ra, và tự động đóng lại khi áp lực giảm Quá trình đóng lại này làm tăng áp lực, tạo ra chu kỳ liên tục giữa việc mở và đóng thanh quản Những chu kỳ này tạo ra tần số sóng âm, với tần số cơ bản khoảng 125Hz cho nam và 210Hz cho nữ, giải thích tại sao giọng nữ thường cao hơn giọng nam Tần số này được gọi là tần số cơ bản F0.

Thanh quản tạo ra các tần số sóng âm cơ bản, nhưng để hình thành tiếng nói, cần đến các cơ quan như vòm họng, khoang miệng, lưỡi, răng, môi và mũi Các cơ quan này hoạt động như một bộ cộng hưởng linh hoạt, tương tự như hộp đàn guitar, có khả năng thay đổi hình dạng để khuếch đại và triệt tiêu các tần số khác nhau Sự linh hoạt này cho phép tạo ra nhiều âm thanh khác nhau, từ đó hình thành nên tiếng nói.

Hình 3 Quá trình hình thành âm thanh của giọng nói [4]

Hình ảnh mô tả cơ chế âm thanh bao gồm Nguồn, Bộ lọc và Âm thanh đầu ra, trong đó âm thanh đầu ra có ba đỉnh gọi là F1, F2, F3, hay còn gọi là các tần số cộng hưởng Các đỉnh này đặc trưng cho âm vị với giá trị, vị trí và sự thay đổi theo thời gian Trong nhận dạng giọng nói truyền thống, thông tin về các formant được tách ra khỏi F0, vì F0 chỉ thể hiện cao độ mà không có giá trị cao trong việc xác định âm vị, giúp mô hình không phụ thuộc vào cao độ khi nhận diện.

ÂM, ÂM TIẾT, ÂM VỊ

Trong tiếng Anh và nhiều ngôn ngữ khác, từ có thể được cấu thành từ một hoặc nhiều âm tiết, như "want" với một âm tiết, "pencil" với hai âm tiết, và "computer" với ba âm tiết Ngược lại, trong tiếng Việt, hầu hết các âm tiết đều mang ý nghĩa, cho phép coi âm tiết như một từ Mỗi âm tiết thường bao gồm một nguyên âm, có thể đi kèm với hoặc không có phụ âm.

Nguyên âm trong tiếng Anh, hay còn gọi là vowel, là những âm thanh được phát ra mà không có sự cản trở trong đường hô hấp và không bị ngắt quãng Trong bảng chữ cái La Tinh, các nguyên âm bao gồm: a, o, e, i, u.

Phụ âm trong tiếng Anh, hay còn gọi là consonants, được hình thành thông qua việc đóng hoàn toàn hoặc một phần của thanh quản Quá trình này làm gián đoạn dòng nguyên âm, tạo ra những khoảng ngắt quãng rõ ràng giữa các âm thanh.

2.2.2 Âm vị (phoneme) và âm (phone)

Âm vị trong tiếng Anh, được gọi là phoneme, cho thấy rằng một ký tự hoặc cụm ký tự trong các từ có thể được phát âm khác nhau Mặc dù bảng chữ cái tiếng Anh chỉ có 26 chữ cái, nhưng có đến 44 âm vị Chẳng hạn, chữ "ough" có thể được phát âm theo 6 cách khác nhau trong các ngữ cảnh khác nhau.

Though I coughed roughly and hiccoughed throughout the lecture, I still thought I could plough through the rest of it Âm: Tiếng anh là phone là sự hiện thực hoá âm vị Cùng một âm vị nhưng mỗi người lại có một giọng đọc khác nhau, ví dụ cùng từ "ba" nhưng giọng nam khác giọng nữ, giọng người A khác giọng người B Để dễ phân biệt giữa "phoneme" và "phone" thì chúng ta có thể quan sát hình dưới đây Hình ảnh mô tả câu "she just had a baby" được tách thành các âm vị ở hàng dưới và được hiện thực hoá thành các âm (hình ảnh các sóng âm thanh)

Hình 5 Bảng âm vị và âm của câu "she just had a baby"

Trong lĩnh vực nhận dạng giọng nói, tập dữ liệu TIMIT bao gồm các đoạn phát âm được phiên âm và căn chỉnh thời gian của 630 người Mỹ Tập dữ liệu này được thu thập và ghi chú bởi các chuyên gia ngữ âm học, với từng âm được nghe và đánh dấu rõ ràng vị trí mở đầu và kết thúc.

Hình 6 Một đoạn âm thanh trong tập dữ liệu TIMIT

Âm thanh sẽ được phân chia thành nhiều khung, trong đó một âm có thể chiếm nhiều khung hình Với kho ngữ liệu này, chúng ta có thể học cách thực hiện các phân tích âm thanh hiệu quả.

- Phân loại các khung (frame): gán nhãn âm (phone) cho một khung âm thanh

- Phân loại các âm (phone): gán nhãn âm (phone) cho đoạn âm thanh (nhiều frame)

- Nhận diện âm (phone): nhận biết chuỗi các âm (phone) tương ứng với lời nói được ghi âm

CƠ CHẾ HOẠT ĐỘNG CỦA TAI

Trong nhận dạng giọng nói, việc nắm bắt cơ chế "nghe" của con người quan trọng hơn việc hiểu "nói" Âm thanh mà chúng ta nghe hàng ngày là sự kết hợp của nhiều sóng với tần số từ 20Hz đến 20.000Hz Tai người hoạt động phi tuyến tính, nghĩa là độ nhạy cảm với âm thanh không tỷ lệ thuận với tần số; cụ thể, tai người nhạy cảm hơn với tần số thấp và kém nhạy cảm với tần số cao.

Hình 7 Cấu tạo ốc tai [4]

Âm thanh khi truyền tới tai sẽ va đập vào màng nhĩ, khiến màng nhĩ rung lên và truyền rung động qua ba xương nhỏ: malleus, incus và stapes, đến ốc tai Ốc tai, có hình dạng xoắn ốc và chứa dịch nhầy, giúp truyền âm thanh và có các tế bào lông cảm nhận âm thanh dọc theo ống Các tế bào lông này rung lên khi có sóng âm, gửi tín hiệu tới não Tại đoạn đầu của ốc tai, các tế bào cứng hơn và rung động với tần số cao, trong khi càng sâu vào, các tế bào trở nên mềm hơn và đáp ứng tần số thấp Cấu trúc của ốc tai và số lượng tế bào đáp ứng tần số thấp chiếm ưu thế, dẫn đến khả năng cảm nhận âm thanh của tai người và động vật là phi tuyến tính, nhạy cảm hơn ở tần số thấp và kém nhạy cảm ở tần số cao.

SƠ LƯỢC VỀ TÍN HIỆU ÂM THANH

Âm thanh là tín hiệu được tạo ra từ sự thay đổi áp suất không khí, xuất phát từ dao động của các phân tử, nguyên tử và hạt vật chất Nó lan truyền trong môi trường như các sóng, và cường độ thay đổi áp suất có thể được đo lường, được gọi là biên độ (Amplitude) của âm thanh.

Tín hiệu âm thanh thường lặp đi lặp lại theo một chu kỳ T, và đồ thị của nó sẽ có dạng sóng x

Hình 8 Đồ thị dạng sóng của tín hiệu âm thanh

Tần số âm thanh, ký hiệu là f, được định nghĩa là giá trị nghịch đảo của chu kỳ T Tần số này thể hiện mức độ dao động của nguồn âm thanh trong một giây, tương ứng với số đỉnh của tín hiệu trong khoảng thời gian đó Đơn vị đo tần số là Hertz.

Mặc dù lý thuyết âm thanh thường mô tả tín hiệu dưới dạng sóng hình sin đơn giản, thực tế đồ thị của tín hiệu âm thanh lại phức tạp hơn nhiều.

11 bản vẫn cấu thành dạng sóng và có chu kỳ Ví dụ, ta xem xét đồ thị của một dụng cụ âm nhạc như hình dưới đây

Hình 9 Đồ thị của một dạng sóng phức tạp

Nhiều tín hiệu âm thanh có thể được kết hợp thành một tín hiệu duy nhất Mỗi tín hiệu âm thanh mang đặc trưng riêng, được gọi là âm sắc (timbre) Nhờ vào sự khác biệt về âm sắc, tai người có khả năng phân biệt các âm thanh khác nhau.

XỬ LÝ DỮ LIỆU ÂM THANH

Để máy tính đọc và phân tích dữ liệu âm thanh, cần số hóa âm thanh đầu vào và trích xuất các đặc trưng để áp dụng vào các mô hình học máy.

Tín hiệu âm thanh ban đầu là tín hiệu liên tục (Analog Signal) theo thời gian, nhưng để dễ dàng lưu trữ, xử lý và truyền tải, nó được chuyển đổi thành tín hiệu số (Digital Signal) Quá trình chuyển đổi này cần đảm bảo không mất mát quá nhiều thông tin so với tín hiệu gốc, cho phép khôi phục gần như nguyên vẹn tín hiệu ban đầu Việc số hóa tín hiệu âm thanh được thực hiện bằng cách lấy giá trị biên độ tại các vị trí cách đều nhau trong mỗi chu kỳ.

Hình 10 Lấy mẫu âm thanh

Mỗi vị trí như vậy được gọi là một mẫu (Sample) Ta có khái niệm mẫu tần số (Sample

Rate) là số lượng mẫu trong 1s Ví dụ: sample_rate = 8000 -> trong 1s ta lấy 8000 giá trị biên độ tại các thời điểm cách đều nhau

Tai người có khả năng nghe âm thanh trong dải tần từ 20Hz đến 20.000Hz Theo định lý Nyquist-Shannon, để tránh mất mát thông tin khi lấy mẫu một tín hiệu có tần số thành phần tối đa là fm, tần số lấy mẫu fs cần phải đạt ít nhất gấp đôi tần số này, tức là fs >= 2 fm.

Để đảm bảo việc lấy mẫu không làm mất mát thông tin, tần số lấy mẫu tối ưu là fs = 44100Hz Tuy nhiên, trong nhiều trường hợp phổ biến, tần số lấy mẫu chỉ cần đạt fs = 8000 Hz hoặc fs = 16000 Hz.

Khi làm việc với tín hiệu âm thanh, việc xử lý tín hiệu số, đặc biệt là biến đổi Fourier, là một kiến thức thiết yếu Âm thanh thường được coi là một chuỗi tín hiệu dài, nhưng thực tế hàm lượng thông tin trong đó lại không nhiều.

Âm thanh được hình thành từ sự kết hợp của các sóng có tần số khác nhau Do đó, chúng ta có thể phân giải một đoạn âm thanh ngắn thành các sóng với tần số và biên độ cụ thể.

Hình 11 Biểu diễn của sóng trên miền thời gian và miền tần số

Trong hình, một đoạn âm thanh trong miền thời gian được kết hợp từ hai sóng tuần hoàn

Hai sóng này có tính chất tuần hoàn, cho phép chúng ta chỉ cần lưu lại tần số, biên độ và pha giao động mà không cần lưu giá trị theo thời gian Điều này tạo ra một biểu diễn dày đặc và giàu thông tin hơn cho đoạn âm thanh.

Phép biến đổi Fourier cho phép chuyển đổi thông tin từ miền thời gian sang miền tần số, đồng thời phép biến đổi Fourier ngược giúp đưa thông tin trở lại miền thời gian Công cụ này có ứng dụng rộng rãi trong xử lý tín hiệu, bao gồm âm thanh, hình ảnh và thông tin.

2.5.3 Spectrum, Spectrogram và Mel Spectrogram

Khoảng mười năm trước, khi các kỹ thuật Deep Learning chưa phát triển, chúng ta chủ yếu sử dụng các phương pháp thống kê và xử lý truyền thống để trích xuất đặc trưng cho thuật toán Machine Learning Đối với dữ liệu âm thanh, các phân tích chủ yếu được thực hiện thủ công thông qua các phương pháp phân tích ngữ âm và âm vị Quy trình này yêu cầu sự can thiệp của các chuyên gia có chuyên môn về ngữ âm học để tạo ra các vectơ đặc trưng cần thiết.

Ngày nay, Deep Learning đã làm cho việc trích xuất đặc trưng dữ liệu cho các mô hình học máy trở nên dễ dàng hơn, đặc biệt là trong lĩnh vực âm thanh Dữ liệu âm thanh được chuyển đổi thành hình ảnh và sử dụng kiến trúc CNN kinh điển để xử lý Mặc dù việc chuyển đổi từ âm thanh sang hình ảnh có vẻ kỳ lạ, nhưng nó mang lại hiệu quả cao trong việc phân tích và xử lý dữ liệu âm thanh.

Để hiểu rõ về việc xử lý dữ liệu âm thanh, trước tiên chúng ta cần tìm hiểu về phổ âm (spectrum) và biểu đồ phổ (spectrogram), vì đây là những khái niệm cơ bản và thường gặp trong các bài toán liên quan đến âm thanh.

Phổ âm là sự biến đổi về độ trầm bổng của âm thanh hoặc nốt nhạc, được tạo ra bởi nhạc cụ thông qua sự kết hợp của nhiều tần số âm thanh khác nhau.

Hình dưới đây minh họa phổ âm của một đoạn nhạc, trong đó trục tung biểu thị giá trị biên độ và trục hoành thể hiện giá trị tần số của từng tín hiệu thành phần.

Hình 12 Phổ âm của một đoạn nhạc [6]

Tần số cơ bản, hay còn gọi là tần số nền, là tần số có giá trị nhỏ nhất trong một hệ thống Các tần số khác, được gọi là sóng hài (harmonics), là bội số của tần số cơ bản Chẳng hạn, nếu tần số cơ bản là 200Hz, thì các sóng hài sẽ là 400Hz, 600Hz, và tiếp tục như vậy Bên cạnh đó, còn tồn tại một loại bội âm khác, tạo ra âm thanh chói tai và khó nghe, khác biệt với tần số cơ bản.

Trong phần trước, chúng ta đã phân tích tín hiệu thành các thành phần tần số, những thành phần này sẽ đóng vai trò quan trọng trong việc xác định đặc trưng của mạng nơ ron nhận dạng giọng nói Tuy nhiên, khi áp dụng biến

MÔ HÌNH GMM-HMM

TỔNG QUAN

Hình 37 Hệ thống GMM-HMM ASR [8]

Bắt đầu từ một đoạn âm thanh, chúng ta sử dụng các cửa sổ rộng 25 ms và cách nhau 10 ms để trích xuất các đặc trưng MFCC, với mỗi khung cửa sổ cho ra 39 tham số MFCC Mục tiêu chính của nhận dạng giọng nói là xây dựng mô hình thống kê nhằm suy ra chuỗi văn bản W, chẳng hạn như “cat sit on a mat”, từ chuỗi vectơ đặc trưng.

X Một cách tiếp cận là sẽ tìm kiếm tất cả các chuỗi từ có thể có (với độ dài tối đa giới hạn) và tìm ra chuỗi từ phù hợp nhất với đặc điểm âm thanh đầu vào

Hình 38 Công thức tổng quát của hệ thống GMM-HMM [8]

Hình 39 Quá trình hoạt động các thành phần trong hệ thống GMM-HMM [8]

MÔ HÌNH ÂM THANH - ACOUSTIC MODEL

Mô hình âm thanh là một cấu trúc phức tạp, phản ánh mối quan hệ giữa tín hiệu âm thanh và các đơn vị ngữ âm trong ngôn ngữ.

Hình 40 Mô hình âm thanh [9]

3.2.1.1 Mô hình Markov ẩn (HMM)

Hình 41 Mô hình Markov ẩn [9]

Mô hình Markov ẩn (HMM) là một mô hình thống kê máy trạng thái, giúp phân tích hai thành phần quan trọng: sự kiện quan sát được và các sự kiện ẩn.

Ví dụ trong nhận dạng giọng nói thì sự kiện quan sát được là các đặc trưng âm học của tiếng nói, còn sự kiện ẩn là các từ

HMM bao gồm các thành phần chính sau:

• Q=q1,q2, …, qN: là tập của N trạng thái

Ma trận chuyển trạng thái A = a11, a12, …, ann* thể hiện xác suất aij, cho biết khả năng xuất hiện của trạng thái j tại thời điểm t+1 khi trạng thái i đã xảy ra tại thời điểm t.

• O = o1, o2, …, oT: là một chuỗi T các quan sát tại các thời điểm t khác nhau

Mỗi trạng thái tại thời điểm t sẽ tương ứng với một tập hợp V = {o1, o2, …, om}, bao gồm tất cả các quan sát có thể được ghi nhận trong từng trạng thái.

• 𝐵 = {𝑏𝑗 (𝑣𝑘 )}: B là phân bố xác suất quan sát được các quan sát o trong trạng thái qj

Trong mô hình xác suất, tập hợp Π = {π1, π2, …, πN} đại diện cho các phân bố xác suất của trạng thái khởi đầu, trong đó πi là xác suất để trạng thái i được chọn tại thời điểm khởi đầu t = 1 Điều này tương tự như việc khởi tạo các tham số cho các mô hình Deep Learning.

Trong hình trên, chúng ta thấy một ví dụ về mô hình Markov ẩn (HMM) với ba trạng thái Q = {q1, q2, q3} Tại mỗi trạng thái q, các sự kiện quan sát được là V = {v1, v2, v3, v4} và B = {b1, b2, b3, b4}, trong đó bj(k) là xác suất quan sát sự kiện vk trong trạng thái qj HMM thường được áp dụng để giải quyết ba bài toán chính.

Bài toán 1 liên quan đến việc tính toán likelihood trong mô hình HMM λ(π, A, B) với chuỗi quan sát O=O1, O2, …, OT Mục tiêu là xác định likelihood P(O|λ) Trong lĩnh vực nhận dạng tiếng nói, chuỗi quan sát O đại diện cho tín hiệu âm thanh, trong khi λ là mô hình HMM Do đó, bài toán đặt ra là tính toán likelihood P để mô hình λ có thể quan sát được chuỗi tín hiệu O.

- Bài toán 2: Decoding Cho một chuỗi quan sát O và mô hình HMM λ(A,B,π), xác định chuỗi Q tốt nhất Trong nhận dạng tiếng nói thì đây chính là bài toán

38 nhận dạng, khi quan sát O là tín hiệu tiếng nói thì bài toán là tìm chuỗi âm vị

Q tương ứng với tín hiệu này

Bài toán 3 liên quan đến việc tối ưu hóa các tham số λ = {A, B, π} của mô hình HMM để xác suất P(O| λ) đạt giá trị lớn nhất cho một chuỗi quan sát O và tập các trạng thái của HMM Đây là quá trình huấn luyện mô hình HMM, và có thể được giải quyết thông qua ba thuật toán chính: Forward, Viterbi và Baum-Welch.

Trong HMM, 1 âm vị thường được biểu diễn bằng HMM tuyến tính 3 hoặc 5 trạng thái

Hình 42 Ví dụ mô hình HMM cho từ "cup" [9]

GMM, hay Mô hình Phân phối Gaussian hỗn hợp, được sử dụng để đánh giá khả năng của các quan sát được tạo ra Quá trình huấn luyện HMM-GMM được thực hiện thông qua phương pháp Tối đa hóa kỳ vọng (Expectation Maximization).

Thuật toán EM được sử dụng để ước lượng các tham số trong mô hình GMM, bao gồm hai bước chính được thực hiện lặp đi lặp lại cho đến khi đạt được sự hội tụ.

1 Expectation Step (E-Step): Tính toán xác suất hậu nghiệm (posterior probability) rằng mỗi điểm dữ liệu thuộc về mỗi thành phần Gaussian

2 Maximization Step (M-Step): Cập nhật các tham số của các phân phối Gaussian

(mean, covariance, weights) dựa trên các xác suất hậu nghiệm được tính trong bước E

GMM (Mô hình hỗn hợp Gaussian) xây dựng mô hình phân bố xác suất cho vectơ đặc trưng của âm thanh, cho phép đo lường "khoảng cách" giữa âm và khung âm thanh quan sát Ngược lại, HMM (Mô hình Markov ẩn) phát triển một mô hình nguyên tắc về sự chuyển tiếp và quan sát của các trạng thái, giúp mô hình hóa xác suất của các quan sát một cách hiệu quả.

MÔ HÌNH NGÔN NGỮ - LANGUAGE MODEL

Mô hình ngôn ngữ được biểu diễn bằng P(W) Mô hình ngôn ngữ thống kê là loại mô hình gán xác suất cho các chuỗi từ

Mô hình ngôn ngữ N-Gram

Công thức: P(w|h), tính xác suất của từ w khi biết trước các từ trước nó h

Ví dụ: P(yêu|Tôi là một cô gái đáng) Ở đây, w = yêu, h = Tôi là một cô gái đáng

Để tính xác suất, chúng ta áp dụng phương pháp đếm tần suất tương đối với một kho ngữ liệu lớn Từ kho ngữ liệu này, chúng ta sẽ đếm số lần xuất hiện của cụm từ “Tôi là một cô gái đáng” và sau đó đếm số lần từ “yêu” xuất hiện sau cụm từ đó.

P(yêu|Tôi là một cô gái đáng) = C(Tôi là một cô gái đáng yêu)/C(Tôi là một cô gái đáng)

Khi corpus của bạn đạt hàng triệu hoặc hàng trăm nghìn từ, việc tính toán xác suất trở nên khó khăn Mô hình N-gram cung cấp giải pháp hiệu quả bằng cách ước tính xác suất dựa trên một vài từ (N) đã xuất hiện trước đó, thay vì sử dụng toàn bộ kho dữ liệu.

Trong đó n có thể là 1(unigram), 2(bigram), 3(trigram)

Nhược điểm của các mô hình ngôn ngữ thống kê là chúng được đào tạo dựa trên một kho ngữ liệu cố định Khi gặp dữ liệu ngoài tập ngữ liệu này, xác suất sẽ trở thành bằng không.

0 Ngoài ra còn thiếu tính tổng quát khi tùy vào từng thể loại, từng chủ đề thì sẽ có các cách kết hợp câu, từ khác nhau Để giải quyết vấn đề này, chúng ta có thể sử dụng các mô hình ngôn ngữ học sâu Gần đây, trong lĩnh vực xử lý ngôn ngữ tự nhiên, các mô hình ngôn ngữ dựa trên mạng nơ ron ngày càng trở nên phổ biến hơn

MÔ HÌNH DEEP SPEECH 2

CHUẨN BỊ DỮ LIỆU

Chúng ta sẽ huấn luyện và đánh giá mô hình trên tập dữ liệu TIMIT, một trong những bộ dữ liệu chuẩn phổ biến nhất cho nhận diện giọng nói Được phát triển bởi Texas Instruments và MIT vào năm 1986, TIMIT chứa mẫu giọng nói của 630 người từ 8 vùng địa lý khác nhau của Hoa Kỳ, mỗi người đọc 10 câu Bộ dữ liệu này bao gồm các bản phiên âm chính tả, ngữ âm và từ được căn chỉnh theo thời gian, cùng với tệp âm thanh 16-bit, 16kHz cho mỗi cách phát âm Mặc dù chỉ có khoảng năm tiếng tổng độ dài âm thanh, TIMIT vẫn là một nguồn tài nguyên quý giá cho các nghiên cứu về phân tích ngữ âm.

Trước khi huấn luyện mô hình, cần xử lý dữ liệu để đảm bảo định dạng phù hợp Bước đầu tiên là chuyển đổi dữ liệu sóng thô sang Mel Spectrogram.

Hình 43 Dữ liệu dạng sóng thô sang dạng spectrogram

Hình 44 Dữ liệu ở dạng Mel spectrogram

Mel spectrogram là một hình ảnh phổ thể hiện thông tin quan trọng về thời gian, tần suất và cường độ (amplitude) của sóng âm Nó đã được chuyển đổi sang tỉ lệ Mel và tỉ lệ Decibel, giúp phù hợp hơn với cách chúng ta cảm nhận âm thanh.

Hình 45 Các tham số khi xử lý biến đổi âm thanh sang Mel Spectrogram

Hình 46 cho thấy tham số n_mels8, cho biết rằng sau khi biến đổi, chúng ta sẽ thu được 128 đặc trưng cho mỗi khung âm thanh, tương ứng với 128 kênh Mel đại diện cho các tần số của tín hiệu âm thanh.

Tập dữ liệu TIMIT bao gồm tổng cộng 6.300 mẫu, với 4.620 mẫu trong tập huấn luyện và 1.680 mẫu trong tập kiểm tra.

Hình 46 Chia tập dữ liệu TIMIT để huấn luyện và đánh giá

Hình 47 Cấu trúc tập dữ liệu TIMIT

Tập dữ liệu TIMIT không chỉ cung cấp phụ đề "text" cho mỗi chuỗi âm thanh "audio" mà còn bổ sung thông tin chi tiết về thời điểm bắt đầu và kết thúc của âm vị "phonetic_detail", từ "word_detail", và vùng phương ngữ "dialect_region" Chính vì vậy, nhiều nhà nghiên cứu ưu tiên đánh giá mô hình của họ dựa trên phân loại âm vị thay vì nhận dạng giọng nói khi làm việc với TIMIT, điều này cũng giải thích sự ưa chuộng của nó đối với các mô hình truyền thống như GMM-HMM.

Hình 48 Các trường dữ liệu trong tập dữ liệu TIMIT

Với mô hình Deep Learning mà chúng ta áp dụng, thông tin như tỉ lệ lấy mẫu và phụ đề là đủ, không cần các thông tin khác, chỉ cần dữ liệu âm thanh đầu vào.

Hình 49 Những trường dữ liệu sẽ sử dụng trong mô hình

Do kích thước tập dữ liệu của chúng ta khá nhỏ, việc xử lý tăng cường dữ liệu là cần thiết để tăng tính đa dạng Chúng ta sẽ không áp dụng các kỹ thuật tăng cường trên âm thanh như thay đổi độ cao, tốc độ hay thêm nhiễu, mà sẽ thực hiện trên ảnh phổ của âm thanh Cụ thể, phương pháp được sử dụng là cắt ngẫu nhiên các khối liên tiếp trên trục thời gian và tần số thông qua Time Masking và Frequency Masking.

Hình 50 Xử lý Frequency Masking và Time Masking

Cuối cùng, ta cần ánh xạ từng nhãn kí tự với từng nhãn số nguyên cho mỗi mẫu âm thanh

Hình 51 Dán nhãn ký tự với nhãn số nguyên

XÁC ĐỊNH MÔ HÌNH

Hình 52 Kiến trúc dựa trên mô hình Deep Speech 2 [10]

Mô hình của chúng ta được xây dựng dựa trên kiến trúc Deep Speech 2, bao gồm hai thành phần chính: N lớp mạng Residual Convolutional Neural Networks (ResCNN) để học các đặc trưng âm thanh và một tập hợp các Bidirectional Recurrent Neural Networks (BiRNN) nhằm khai thác sâu hơn các đặc trưng này Cuối cùng, lớp fully connected layer kết hợp với hàm Softmax sẽ chuẩn hóa các giá trị đầu vào về khoảng [0, 1] và đảm bảo tổng các giá trị bằng một, từ đó phân loại các ký tự cho từng bước thời gian.

Mạng nơ-ron hồi tiếp (RNN) rất hiệu quả trong việc xử lý các chuỗi dữ liệu liên tiếp RNN xử lý đặc trưng âm thanh từng bước một, đồng thời đưa ra dự đoán cho mỗi khung hình dựa trên ngữ cảnh của các khung trước đó Một biến thể đáng chú ý là BiRNN, giúp cải thiện khả năng dự đoán bằng cách xem xét thông tin từ cả hai hướng của chuỗi dữ liệu.

Bên cạnh việc sử dụng ngữ cảnh từ các khung trước, tôi muốn mô hình cũng khai thác thông tin từ các khung phía sau Điều này có thể cải thiện kết quả, vì mỗi khung trong dữ liệu âm thanh sẽ cung cấp thêm nhiều thông tin trước khi thực hiện dự đoán.

Hình 53 Các siêu tham số của mô hình

Mô hình được định nghĩa sẽ có các lớp sau:

- 3 lớp CNN, đầu vào là 128 đặc trưng từ Mel spectrogram, với bước nhảy cửa sổ là 2 và tỉ lệ dropout giúp tránh overfitting là 0.1

- 5 lớp RNN, mỗi lớp sẽ có 512 không gian ẩn, tỉ lệ dropout giúp tránh overfitting là 0.1

- Đầu ra sẽ là 29 lớp, tương ứng với 29 ký tự mà chúng ta đã dán nhãn trước đó

Hình 54 Số lượng tham số của mô hình là khoảng 23M

CHỌN OPTIMIZER VÀ SCHEDULER - ADAMW VỚI SIÊU HỘI TỤ

AdamW là một biến thể của thuật toán tối ưu hóa Adam, nhằm cải thiện khả năng áp dụng chính quy hóa trong huấn luyện mô hình học sâu Thuật toán này tách biệt rõ ràng giữa tối ưu hóa và chính quy hóa, bằng cách áp dụng weight decay (L2 regularization) trực tiếp vào việc cập nhật trọng số.

AdamW cải thiện khả năng tổng quát hóa của mô hình bằng cách giảm thiểu overfitting và ổn định quá trình huấn luyện, thay vì thông qua gradient như trong Adam cổ điển Nhờ vào khả năng hội tụ nhanh chóng và hiệu quả, AdamW đã trở thành một lựa chọn phổ biến trong cộng đồng học sâu cho việc huấn luyện các mạng nơ-ron sâu hiện đại.

One Cycle Learning Rate Scheduler là một kỹ thuật trong học sâu, giúp điều chỉnh tỷ lệ học động trong quá trình huấn luyện mô hình Phương pháp này sử dụng chu kỳ học đơn giản, tăng dần tỷ lệ học từ thấp đến cao và sau đó giảm dần, thay vì giữ tỷ lệ học cố định Nhờ đó, One Cycle không chỉ tăng tốc độ hội tụ của mô hình mà còn cải thiện khả năng tổng quát và giảm thiểu hiện tượng overfitting Phương pháp này đã được chứng minh hiệu quả trong nhiều ứng dụng thực tế, đặc biệt trong huấn luyện các mạng nơ-ron sâu như ResNet và Transformer.

Hình 55 Quá trình điều chỉnh learning rate qua các step

Hình 56 cài đặt optimizer và scheduler

CONNECTIONIST TEMPORAL CLASSIFICATION - CTC

Hình 57 cài đặt CTC loss với dán nhãn ký tự đặc biệt blank là 28

Bài toán chuyển đổi chuỗi gặp khó khăn do chúng ta chỉ có bản ghi âm và phụ đề mà không biết chính xác ký tự nào tương ứng với mốc thời gian nào, dẫn đến độ dài chuỗi đầu vào và đầu ra không khớp nhau Để tính toán mất mát, dữ liệu đầu vào và đầu ra cần phải tương ứng, nhưng trong trường hợp này, điều đó không thể thực hiện được Để giải quyết vấn đề căn chỉnh dữ liệu, thuật toán CTC Loss được sử dụng Thuật toán này cho phép mô hình tạo ra các ký tự lặp lại và sau đó hợp nhất chúng, đồng thời sử dụng ký tự đặc biệt “_” để phân biệt các token liên tiếp hoặc trùng lặp.

Ví dụ: chuỗi đầu ra “hh_elll_looo” sẽ có kết quả là “hello”

Xây dựng hàm mất mát CTC:

- 𝑦 là chuỗi ký tự đầu ra

- 𝑥 là chuỗi đầu vào (chuỗi đặc trưng âm thanh)

Xác suất chuỗi đích \( P(y|x) \) thể hiện khả năng xuất hiện của chuỗi y khi đã biết chuỗi đầu vào x Để tính toán xác suất này, ta cần tổng hợp tất cả các xác suất từ các đường đi khả dĩ \( \pi \) có thể tạo ra chuỗi y.

Xác suất 𝑃(𝑦|𝑥) được tính như sau:

Tập hợp các đường đi 𝜋 khả dĩ, ký hiệu là 𝛽 −1 (𝑦), bao gồm những đường đi mà khi loại bỏ các ký tự "blank" (được biểu thị bằng ký tự đặc biệt “_”) và các ký tự liên tiếp trùng nhau, ta sẽ thu được chuỗi y.

- 𝑃(𝜋|𝑥) là xác suất của một đường đi 𝜋, được tính bằng xác suất của từng ký tự trong đường đi đó

Xác suất 𝑃(𝜋|𝑥) được tính như sau:

- 𝑇 là độ dài của chuỗi đầu vào 𝑥

Để tính Loss cho mô hình, chúng ta xem xét ký tự tại vị trí t trong đường đi π Ví dụ, nếu đầu ra của mô hình có độ dài 3 và ký tự cần giải mã là “g”, chúng ta sẽ áp dụng phương pháp tương ứng để xác định giá trị Loss.

Hình 58 Ví dụ tính toán CTC Loss [11]

Loss = -ln(sum all path) = -ln(0.018 + 0.162 + 0.108 + 0.378 + 0.042 + 0.028) = -ln(0.736) = 0.3065251603

Output on every time step All valid path

Hàm mất mát CTC có ý nghĩa quan trọng trong việc tối ưu hóa, nhưng khi đầu vào có độ dài lớn, số lượng tổ hợp cần tính toán sẽ tăng lên đáng kể Để cải thiện hiệu quả tính toán, quy hoạch động thường được áp dụng để xử lý hàm mất mát này.

Sau khi hoàn thành quá trình huấn luyện mô hình, chúng ta sẽ áp dụng thuật toán để dự đoán chuỗi đầu ra có xác suất cao nhất, dựa trên dữ liệu đầu vào và xác suất của các ký tự tại từng thời điểm Công thức tổng quát để tính toán chuỗi đầu ra tối ưu 𝑦 ∗ của thuật toán được sử dụng trong quá trình này.

PHƯƠNG THỨC ĐÁNH GIÁ MÔ HÌNH

Hiện nay, để đánh giá hiệu quả của mô hình nhận diện giọng nói, chỉ số WER (Word Error Rate) thường được sử dụng WER đo lường sự khác biệt giữa các từ được dự đoán và các từ trong chuỗi phiên âm chính xác Khi tính toán WER, cần xem xét ba loại lỗi khác nhau.

- Lỗi thay thế (Substitution): Các từ sai chính tả

- Lỗi xóa (Deletion): Các từ bị mất hoặc bị thiếu

- Lỗi chèn (Insertion): Các từ không chính xác

Hình 59 Các lỗi thay thế, xóa, chèn theo từng từ

Công thức tính WER như sau:

- 𝑆 𝑤 là số lượng từ bị thay thế

- 𝐷 𝑤 là số lượng từ bị xóa

- 𝐼 𝑤 là số lượng từ bị chèn vào

- 𝑁 𝑤 là tổng số từ trong văn bản tham chiếu

Bên cạnh WER, còn có một chỉ số khác gọi là CER – Character Error Rate, giống với WER nhưng hoạt động ở cấp độ ký tự

Hình 60 Các lỗi thay thế, xóa, chèn so với từ gốc "STEAM" [12]

Công thức tính CER như sau:

- 𝑆 là số lượng ký tự bị thay thế

- 𝐷 là số lượng ký tự bị xóa

- 𝐼 là số lượng ký tự bị chèn vào

- 𝑁 là tổng số ký tự trong văn bản tham chiếu

CER thường được sử dụng để phát hiện và trích xuất các tài liệu hoặc chuỗi ký tự có trình tự cụ thể như biển số xe và số điện thoại Ngược lại, WER chủ yếu áp dụng trong việc phiên âm các đoạn văn và câu có nghĩa, chẳng hạn như các trang sách và báo.

WER có mối liên hệ chặt chẽ với CER, miễn là tỷ lệ lỗi không vượt quá mức cho phép, mặc dù giá trị WER luôn cao hơn CER Ví dụ minh họa cho mối quan hệ này sẽ giúp làm rõ hơn sự tương quan giữa hai chỉ số này.

- Văn bản tham chiếu gốc: “My name is kenneth”

- Đầu ra OCR: “Myy nime iz kenneth”

- Ở đây, tỷ lệ lỗi ký tự CER là 16.67%, trong khi tỷ lệ lỗi từ WER là lên tới 75%

4.5.3 Greedy Decoder Để thu được các ký tự dự đoán từ đầu ra của mô hình và tổng hợp chúng lại thành văn bản, chúng ta sẽ dùng phương pháp “greedy” decoding Về cơ bản, bộ giải mã “greedy” nhận đầu ra từ mô hình là ma trận xác suất softmax của các ký tự và với mỗi bước thời gian (khung phổ - Spectrogram frame), nó sẽ chọn nhãn có xác suất cao nhất Nếu nhãn đó là nhãn trống (blank), chúng ta sẽ xóa nhãn đó khỏi bản phiên âm cuối cùng.

HUẤN LUYỆN VÀ ĐÁNH GIÁ MÔ HÌNH

Hình 61 train loss và test loss qua các step

Sau khi huấn luyện và đánh giá mô hình trong 30 epoch, ta xem xét hai đồ thị trong hình

Trong các epoch huấn luyện đầu tiên, đặc biệt trước bước 5000, độ chính xác của mô hình tăng lên rõ rệt Tuy nhiên, từ đó đến cuối quá trình, mặc dù giá trị loss có giảm nhẹ, nhưng không diễn ra một cách đồng đều; thực tế, có nhiều thời điểm giá trị loss thậm chí còn tăng trước khi tiếp tục giảm.

Hình 61 giá trị train loss ở step 10,032

Hình 62 giá trị train loss ở step 13,859

Khi xem xét hai đồ thị về chỉ số WER và CER trong quá trình đánh giá tập test, chúng ta nhận thấy rằng trước bước 8000, cả hai chỉ số đều giảm nhưng không đồng đều, với sự biến động liên tục Sau bước 8000, cả hai chỉ số giảm dần và không còn biến động mạnh, cho thấy kết quả đánh giá khá tốt.

Chỉ số CER luôn cho kết quả tốt hơn chỉ số WER qua tất cả các bước, điều này đã được giải thích chi tiết trong phần lý thuyết về hai chỉ số.

Hình 63 chỉ số wer qua các step

Hình 64 chỉ số cer qua các step

Kết quả phiên âm dự đoán có sai lệch từ khá nhiều so với bản phiên âm tham chiếu

Hình 65 Kết quả phiên âm trên tập test

Mặc dù chúng ta chỉ huấn luyện trên một tập dữ liệu nhỏ, mô hình vẫn đạt được kết quả khả quan, điều mà các mô hình truyền thống cần tập dữ liệu lớn hơn để có được Tuy nhiên, với sự phát triển nhanh chóng của các kỹ thuật Deep Learning, chương tiếp theo sẽ giới thiệu một phương pháp mới trong nhận diện giọng nói, hứa hẹn mang lại kết quả tốt hơn trên cùng tập dữ liệu.

MÔ HÌNH WAV2VEC2

TỔNG QUAN

Hình 66 Kiến trúc học tự giám sát của mô hình Wav2Vec2 [13]

Wav2Vec2 là một mô hình tiên tiến được phát triển để nhận dạng giọng nói tự động, được giới thiệu bởi Alexei Baevski, Michael Auli và Alex Conneau vào tháng 9 năm 2020.

Mô hình Wav2Vec2 được đào tạo dựa trên độ tương phản của dữ liệu, cho phép nó học tốt các biểu diễn giọng nói từ hơn 50.000 giờ dữ liệu không gán nhãn Tương tự như BERT, Wav2Vec2 học các biểu diễn giọng nói theo ngữ cảnh bằng cách che giấu ngẫu nhiên các vectơ đặc trưng trước khi đưa vào mạng Transformer.

Các nhà nghiên cứu đã lần đầu tiên chứng minh rằng việc đào tạo trước và tinh chỉnh trên một tập dữ liệu giọng nói nhỏ với chỉ 10 phút dữ liệu gắn nhãn có thể đạt được kết quả cạnh tranh với các hệ thống nhận diện giọng nói tự động (ASR) hàng đầu Cụ thể, mô hình Wav2Vec2 đã đạt tỷ lệ lỗi từ (WER) dưới 5% trên bộ dữ liệu test đã được làm sạch của LibriSpeech.

Hình 67 Bảng kết quả trích dẫn [13]

Trong bài luận này, chúng tôi sẽ tinh chỉnh mô hình Wav2Vec2-base đã được huấn luyện trước trên tập dữ liệu LibriSpeech với độ dài một ngàn giờ, sử dụng dữ liệu TIMIT khoảng năm giờ cho quá trình tinh chỉnh Sau đó, chúng tôi sẽ so sánh kết quả giữa hai mô hình này Để đơn giản hóa, chúng tôi sẽ không sử dụng thêm mô hình ngôn ngữ khác và coi Wav2Vec2 như một hệ thống nhận diện giọng nói hoàn chỉnh Điều này vẫn đảm bảo thu được kết quả tốt, như đã được các nhà nghiên cứu chứng minh.

Trong quá trình tinh chỉnh, mô hình áp dụng thuật toán Connectionist Temporal Classification (CTC), một phương pháp hiệu quả cho việc huấn luyện mạng nơ ron trong xử lý chuỗi Thuật toán này chủ yếu được sử dụng trong lĩnh vực nhận dạng giọng nói tự động và nhận dạng chữ viết tay, như đã đề cập ở chương 4.

CHUẨN BỊ DỮ LIỆU, TOKENIZER, FEATURE EXTRACTOR

5.2.1 Cài đặt Wav2Vec2CTCTokenizer

Checkpoint Wav2Vec2 đã được tiền huấn luyện để chuyển đổi tín hiệu giọng nói thành chuỗi biểu diễn ngữ cảnh Sau đó, checkpoint này cần được tinh chỉnh để ánh xạ chuỗi biểu diễn ngữ cảnh này đến bản phiên âm tương ứng.

58 của nó, vì vậy một lớp tuyến tính cần được thêm vào phía trên khối Transformer (được hiển thị bằng màu vàng trong hình)

Kích thước đầu ra của lớp trong mô hình Wav2Vec2 phụ thuộc vào số lượng token trong từ điển và không liên quan đến tác vụ pretraining Điều này chủ yếu dựa vào tập dữ liệu có dán nhãn trong quá trình tinh chỉnh Đầu tiên, cần tải tập dữ liệu TIMIT, giống như đã thực hiện trong chương 4.

Hình 68 Tải tập dữ liệu TIMIT và chia thành hai tập train/test

Hình 69 Các mẫu phiên âm trong tập dữ liệu

Chúng ta có thể thấy trong các mẫu phiên âm đều có chứa các ký tự đặc biệt về dấu như

“,.?!;:” Với mục đích của mô hình là hiểu được ý nghĩa của tín hiệu giọng nói, chúng ta sẽ loại bỏ các kí tự này ra khỏi dữ liệu

Hình 70 Loại bỏ các ký tự đặc biệt và chuyển thành chữ thường

Hình 71 Mẫu phiên âm sau khi đã chuẩn hóa

Trong thuật toán CTC, việc phân loại giọng nói thành từng ký tự là rất quan trọng Do đó, cần xây dựng một từ điển chứa các ký tự riêng biệt, được tổng hợp từ toàn bộ phiên âm trong cả hai tập huấn luyện và kiểm tra.

Hình 72 Mã nguồn thực hiện lấy các ký tự riêng biệt

Thay thế ký tự “ “ thành “|” để dễ thể hiện việc ký tự blank có token class của riêng nó

Chúng ta cần thêm một “unknown” token “[UNK]” để model có thể xử lý các ký tự không gặp trong tập dữ liệu huấn luyện TIMIT

Và cuối cùng là một token đệm “[PAD]” (padding), tương ứng với “blank token” của CTC, một ký tự quan trọng trong thuật toán CTC

Hình 73 Thêm các ký tự đặc biệt vào từ điển

Hình dưới là từ điển sau khi được xây dựng xong, chứa tất cả các token cần thiết cho mô hình

Hình 74 Từ điển vocab chứa các ký tự riêng biệt và được đánh số thứ tự

Sau khi hoàn thành việc xây dựng từ điển, bước tiếp theo là khởi tạo tokenizer từ Wav2Vec2CTCTokenizer sử dụng từ điển đã tạo Đồng thời, cần định nghĩa các ký tự đặc biệt để đảm bảo thuật toán CTC có thể hiểu và xử lý chính xác.

Hình 75 Cài đặt Wav2Vec2CTCTokenizer từ vocab.json định nghĩa các ký tự đặc biệt

Chúng ta đã hoàn tất việc cài đặt Tokenizer và tiếp theo sẽ tiến hành trích xuất đặc trưng âm thanh thông qua việc cài đặt Feature Extractor.

5.2.2 Cài đặt Wav2Vec2 Feature Extractor

Trong chương 2, chúng ta đã thảo luận về lý thuyết tín hiệu âm thanh, nhấn mạnh rằng việc số hóa tín hiệu âm thanh là cần thiết để tinh chỉnh dữ liệu trước khi đưa vào mô hình Điều quan trọng là tỉ lệ lấy mẫu của dữ liệu tinh chỉnh phải khớp với tỉ lệ lấy mẫu mà mô hình đã sử dụng trong quá trình huấn luyện May mắn thay, cả tập dữ liệu TIMIT và LibriSpeech đều có tỉ lệ lấy mẫu là 16kHz, giúp đảm bảo tính đồng nhất trong quá trình xử lý dữ liệu.

Hình 76 Cài đặt feature_extractor từ Wav2Vec2FeatureExtractor

Trong đó, các tham số khi khởi tạo gồm:

Mô hình Wav2Vec2 được huấn luyện với dữ liệu giọng nói thuần (raw speech signal), do đó mỗi đặc trưng trong mô hình tương ứng với một điểm lấy mẫu âm thanh.

- sampling_rate = 16000: tỉ lệ lấy mẫu mà mô hình sẽ sử dụng để huấn luyện

- padding_value=0.0: các dữ liệu đầu vào ngắn sẽ được đệm với giá trị cụ thể

Việc xác định thực hiện chuẩn hóa zero-mean unit-variance là rất quan trọng, vì nó có thể cải thiện độ chính xác của mô hình Thực hiện chuẩn hóa giúp dữ liệu trở nên đồng nhất hơn, từ đó nâng cao hiệu suất và khả năng dự đoán của mô hình.

Sau khi hoàn thành việc khởi tạo, chúng ta có được Feature Extractor để trích xuất đặc trưng từ dữ liệu âm thanh, giúp chuẩn bị cho đầu vào của mô hình Để tối ưu hóa quá trình xử lý, chúng ta sẽ cài đặt một Processor, được khởi tạo từ Tokenizer và Feature Extractor mà chúng ta đã tạo ra.

Hình 77 Cài đặt Wav2Vec2Processor

- Đầu tiên, tải lên và lấy mẫu lại dữ liệu âm thanh, vì dữ liệu của chúng ta không cần lấy mẫu lại nên chỉ cần gọi batch[“audio”]

Sau khi tải lên tệp âm thanh, bước tiếp theo là trích xuất các giá trị đầu vào Trong trường hợp này, chúng ta thực hiện việc chuẩn hóa dữ liệu một cách đơn giản Tuy nhiên, đối với các mô hình khác, quá trình này có thể phức tạp hơn, chẳng hạn như việc trích xuất đặc trưng Mel Spectrogram trong mô hình Deep Speech 2 được đề cập ở chương 4.

- Cuối cùng, ta mã hóa các mẫu phiên âm thành các mã nhãn (labels)

Hình 78 Cài đặt chuẩn bị dữ liệu

Hình 79 Chuẩn bị dữ liệu

HUẤN LUYỆN VÀ ĐÁNH GIÁ MÔ HÌNH

Để thực hiện đệm dữ liệu, cần cài đặt DataCollator, vì quá trình xử lý đệm cho input_values và labels là khác nhau do chúng thuộc các loại dữ liệu khác nhau Trong labels, các token đệm sẽ được gán giá trị -100 để đảm bảo rằng chúng không được tính vào khi tính toán mất mát.

Ta sẽ dùng chỉ số WER để đánh giá mô hình

Hình 81 Khởi tạo chỉ số wer bằng hàm load_metric của thư viện jiwer

Mô hình sau khi tính toán xong sẽ trả về chuỗi các vectơ logit 𝑦 1 , , 𝑦 𝑚 với 𝑦 1 𝑓 0 (𝑥 1 , , 𝑥 𝑛 )[0] và 𝑛 ≫ 𝑚

Mỗi vectơ logit 𝑦 1 chứa xác suất cho từng từ trong từ điển, do đó 𝑙𝑒𝑛(𝑦 1 ) tương ứng với chiều dài danh sách từ điển Để tìm từ có xác suất cao nhất, chúng ta sử dụng hàm 𝑎𝑟𝑔𝑚𝑎𝑥( ) cho từng vectơ logit Đồng thời, chúng ta chuyển đổi nhãn mã hóa về chuỗi ban đầu bằng cách thay thế giá trị −100 bằng pad_token_id, đồng thời giải mã các nhãn label_ids và đảm bảo rằng các token liên tiếp không bị nhóm lại theo cách của thuật toán CTC.

Hình 82 Cài đặt hàm tính toán chỉ số wer

Ta cần cài đặt các tham số để huấn luyện mô hình

Hình 83 Các tham số khi train

Cuối cùng, khởi tạo trainer bằng cách truyền vào các thành phần ở trên

Hình 85 Số lượng tham số của mô hình

5.3.2 Huấn luyện và đánh giá mô hình

Kết quả huấn luyện mô hình cho thấy hiệu suất ổn định với tỷ lệ WER giảm dần qua từng bước, không có sự biến động lớn.

Hình 86 Kết quả WER, Loss cho từng 500 step

Kết quả cuối cùng của quá trình huấn luyện mô hình cho thấy chỉ số WER đạt 33.8%, đây là một thành tích đáng khích lệ khi thực hiện trên một tập dữ liệu rất nhỏ.

Hình 87 Kết quả cuối trên tập train

Mô hình cũng cho ra kết quả tốt trên tập dữ liệu test với chỉ số WER là 21.7%

Hình 88 Kết quả trên tập data test

Dưới đây là những mẫu phiên âm dự đoán được, ta có thể thấy rằng không có quá nhiều từ sai lệch trong mỗi câu

Hình 89 Bảng so sánh trên tập test

So sánh kết quả chỉ số WER với model deep speech 2 khi cả hai model đều trên cùng một tập dữ liệu TIMIT test

Bảng 1 Bảng so sánh kết quả WER của hai mô hình Deep Speech 2 & Wav2Vec2

Mô hình Wav2Vec2 có chỉ số WER tốt hơn đáng kể so với mô hình Deep Speech 2 (33.8% so với 65.1%) Do đó, chúng tôi sẽ sử dụng Wav2Vec2 để phát triển một ứng dụng tạo phụ đề tự động đơn giản Để thuận tiện, tôi đã tải mô hình đã tinh chỉnh lên huggingface hub, có thể tìm thấy tại [15].

ỨNG DỤNG TẠO PHỤ ĐỀ TỰ ĐỘNG

GIỚI THIỆU

Tôi đã chọn thư viện Streamlit để xây dựng ứng dụng vì nó đơn giản và hiệu quả trong việc mô tả khả năng của mô hình mà chúng ta vừa huấn luyện, đồng thời không yêu cầu quá nhiều tương tác từ người dùng.

MỤC TIÊU

Ứng dụng cho phép người dùng nhập đường link từ Youtube hoặc tải lên file mp3/mp4 để tự động tạo phụ đề Nó sẽ hiển thị audio tương ứng và cung cấp các tính năng như phụ đề cho đoạn tùy ý, hiển thị mốc thời gian và tự động tạo file srt.

Ứng dụng của chúng tôi không chỉ sử dụng mô hình phụ đề Wav2Vec2 mà còn tích hợp mô hình flexudy/t5-small-wav2vec2-grammar-fixer để thêm dấu câu cho phụ đề Để tối ưu hóa quá trình tính toán, âm thanh sẽ được chia thành các đoạn không quá mười giây, giúp tiết kiệm tài nguyên.

XÂY DỰNG CHỨC NĂNG

Hình 90 Lệnh khởi tạo ứng dụng streamlit từ file myapp.py

Khi lần đầu khởi tạo ứng dụng, quá trình này sẽ mất thời gian để tải và thiết lập các mô hình, vì các tệp mô hình có kích thước lớn, khoảng hơn 300MB.

Hình 91 Kích thước file mô hình

Hình 92 Quá trình ứng dụng khởi tạo mô hình

Sau khi ứng dụng khởi tạo hoàn tất, người dùng có thể nhập vào đường dẫn link youtube hoặc tải lên file mp3/mp4 cần tạo phụ đề

Hình 93 Ứng dụng tạo phụ đề tự động

Hình ảnh bên dưới minh họa ứng dụng tạo phụ đề theo thời gian Người dùng có thể dễ dàng di chuyển đoạn audio đến mốc thời gian tương ứng bằng cách nhấn vào chúng.

Hình 94 Phụ đề được tạo tự động theo các mốc thời gian

Hình 95 Phụ đề được tạo tự động theo thời gian

Nhìn chung, một số ứng dụng cho kết quả ổn định và dễ đọc, trong khi đó, một số khác lại cho ra kết quả sai lệch hoàn toàn, gần như vô nghĩa.

Cuối cùng, sau khi hoàn tất quá trình tạo phụ đề, chúng ta sẽ có một bộ phụ đề hoàn chỉnh Ứng dụng còn cho phép người dùng tải về phụ đề dưới định dạng file txt hoặc srt.

Hình 96 Toàn bộ phụ đề sau khi được tạo

Hình 97 file srt tải về từ ứng dụng

Ngày đăng: 19/12/2024, 11:29

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

TÀI LIỆU LIÊN QUAN