chương 1, chúng ta đã biết được về chức năng, kiến trúc và công nghệ sử dụng bên trong phần mềm bóc băng biên bản họp và tình hình nghiên cứu, ứng dụng các sản phẩm nhận dạng tiếng nói trong nước và trên thế giới. Những chương tiếp theo sẽ tập trung vào làm rõ công nghệ nhận dạng tiếng nói và cách để xây dựng một hệ thống nhận dạng tiếng nói tiếng Việt tích hợp trong phần mềm ghi biên bản họp. 5 CHƯƠNG 2: TỔNG QUAN CÔNG NGHỆ NHẬN DẠNG TIẾNG NÓI Có rất nhiều cách tiếp cận để giải quyết bài toán nhận dạng tiếng nói như là so sánh mẫu, xây dựng mô hình học thống kê, sử dụng mô hình mạng nơ ron học sâu end-to-end. Ở chương 2 này, tác giả tập trung trình bày phương pháp nhận xây dựng mô hình nhận dạng tiếng nói bằng cách xây dựng mô hình thống kê.
Giới thiệu công nghệ nhận dạng 2. Lý thuyết Nhận dạng tiếng nói bắt đầu xuất hiện từ năm 1960 và đến nay đã đạt được rất nhiều thành tựu. Chính sự thành công này đã dẫn đến sự ra đời của hàng loạt ứng dụng thực tế như giao tiếp người-máy qua lời nói, tự động ghi chép lời nói, hệ thống học ngôn ngữ Mục tiêu của hệ thống ASR là tìm ra chuỗi văn bản đại diện cho một chuỗi âm thanh đầu vào. Sơ đồ hệ thống nhận dạng tiếng nói điển hình được biểu diễn bằng hình 2-1.
Hình 2-1 Kiến trúc cơ bản của hệ thống nhận dạng tiếng nói Như hình 2-1, một hệ thống nhận dạng tiếng nói gồm 5 phần chính. Chúng ta sẽ tìm hiểu chức năng và ý nghĩa của từng thành phần ngay sau đây: Trích chọn đặc trưng (Feature Extraction): trích xuất ra những thông tin có ích và loại bỏ những thông tin dư thừa. Do tín hiệu tiếng nói liên tục các đặc trưng thường được trích xuất dưới dạng các frame. Với mỗi một frame, ta sẽ chọn ra một vector đặc trưng.
Mô hình âm học (Acoustic Model): hoạt động như tai người, đầu vào là đặc trưng của tiếng nói X, đầu ra là xác suất có điều kiện của tử hay âm vị P(X|W). Các tham số của mô hình âm học được xác định thông qua quá trình huấn luyện trên tập mẫu có trước. 6 Mô hình ngôn ngữ (Language Model): lưu trữ thông tin, kiến thức về từ ngữ ngữ pháp. Những kiến thức này thường được thay đổi theo thời gian do vậy mô hình ngôn ngữ cũng cần phải cập nhật thường xuyên.
Từ điển phát âm (Lexicon): Mô hình âm học thường dùng để mô hình hóa những thành phần nhỏ nhất của tiếng nói, gọi là âm vị. Trong khi đó mô hình ngôn ngữ lại dùng từ để mô hình hóa. Vì vậy cần có cầu nối giữa 2 mô hình này gọi là từ điển. Từ điển mô tả cách phát âm của một từ bằng cách biểu diễn từ đó dưới dạng một chuỗi các âm vị.
Bộ giải mã: Mỗi tín hiệu X đầu vào, mô hình âm học sẽ đưa ra xác suất P(X|W) cho mỗi giả thuyết khác nhau về chuỗi text có thể đúng. Mô hình ngôn ngữ cũng đưa ra giả thuyết của mình cho chuỗi text W là P(W). Bộ giải mã sẽ tìm tất cả các chuỗi text có thể có W, lấy P(X|W) từ mô hình âm học, P(W) từ mô hình ngôn ngữ để chọn ra chuỗi W có xác suất P(W|X) lớn nhất để làm kết quả nhận dạng. Phương diện toán học Dưới phương diện toán học thống kê, ASR tìm ra chuỗi từ W (w1,., wn ) , dự đoán từ model đã học sẵn với đầu vào là một chuỗi vector quan sát.
Các thành phần chính của một hệ thống ASR theo phương pháp thống kê được miêu tả ở hình 2-2 Hình 2-2 Kiến trúc ASR trên phương diện toán học [4] Đầu tiên một tín hiệu tiếng nói được biến đổi thành một chuỗi các vector có độ dài cố định gọi là các vector âm học O [o1 , o 2 ., ot ] , sau bước trích xuất đặc trưng. 7 Sau đó, bộ giải mã (decoder) tìm ra chuỗi từ gần nhất (W* ) tương ứng với chuỗi arg max vector đầu vào sao cho W * P(O | W ) P(W ) (2.3) w Likelihood P(O|W) được xác định bởi mô hình âm học và hệ số P(W) được xác định bởi mô hình ngôn ngữ. Như đã thấy trong hình 2-2, mỗi một từ Wn được đại diện cho một chuỗi các đơn vị âm học gọi là phoneme. Khi tính đến trường hợp một từ có nhiều cách đọc, P(O|W) có thể được tính theo công thức P(O | W ) P(O | Q) P(Q | W ) (2., Qn ) là chuỗi các các phát âm cho chuỗi từ W, và mỗi một cách phát âm của một từ là một chuỗi các phone Qn ( q1( n), q2( n),.) P(Qn | wn ) là xác suất từ Wn được phát âm theo chuỗi phone Qn.
DO đó P(Q|W) tương ứng với mô hình phát âm và là xác suất của một chuỗi phone đối với một chuỗi từ cho trước. Mô hình phát âm này được gọi là từ điển phát âm. Khi tính đến cả ba yếu tố (âm học, từ điển, ngôn ngữ ), công thức 3.3 có thể được viết là: arg max W* w Q P(O | Q)P(Q | W ) P(W ) (2. Trích xuất đặc trưng Tín hiệu âm thanh ngoài đời thực là tín hiệu liên tục, hay tính hiệu tương tự trước khi thực hiện bất cứ bước xử lý nào, tín hiệu âm thanh cần được số hóa.
Việc này được thực hiện tự động bởi các thiết bị thu âm, bằng cách lấy mẫu tín hiệu đầu vào. Như vậy, một tín hiệu âm thanh bất kỳ khi đã được đưa vào máy tính, là một tập các mẫu liên tiếp nhau, mỗi mẫu là giá trị biên độ của tín hiệu tại một thời điểm nhất định. Một tham số quan trọng trong việc lấy mẫu tín hiệu âm thanh là tần số lấy mẫu, Fs, tức là số mẫu được lấy trong một giây. Để có thể đo lường chính xác, cần phải lấy ít nhất 2 mẫu trong một chu kỳ của tín hiệu tương tự đầu vào.
Như vậy, tần số lấy mẫu phải lớn hơn 2 lần tần số cao nhất của tín hiệu âm thanh đầu vào. Trích chọn đặc trưng đối với nhận dạng tiếng nói là việc tham số hóa chuỗi tín hiệu âm thanh dạng sống đầu vào, biến đổi tín hiệu âm thanh thành một chuỗi các vector đặc trưng n chiều, mỗi chiều là một giá trị thực. Hiện nay, có rất nhiều phương pháp trích chọn đặc trưng như: LPC (Linear predictive coding – Dự đoán tuyến tính), AMDF (Average magnitude different function – hàm biên độ trung bình), MFCC (Mel-frequency cepstral coefficients). Đặc trưng MFCC Trong nhận dạng tiếng nói, kỹ thuật trích chọn đặc trưng MFCC là phương pháp phổ biến nhất.
MFCC là viết tắt của Mel-frequency cepstral coefficients. Kỹ thuật này dựa trên việc thực hiện biến đổi để chuyển dữ liệu âm thanh đầu vào (đã được biến đổi Fourier cho phổ) về thang đo tần số Mel, một thang đo diễn tả tốt hơn sự nhạy cảm của tai người đổi với âm thanh. Kỹ thuật trích chọn đặc trưng này gồm các bước biến đổi liên tiếp, trong đó đầu ra của bước biến đổi trước sẽ là đầu vào của bước biến đổi sau. Đầu vào của quá trình đặc trưng này sẽ là một đoạn tín hiệu tiếng nói.
Vì tín hiệu âm thanh sau khi được đưa vào máy tính đã được rời rạc hóa nên đoạn tín hiệu tiếng nói này bao gồm các mẫu liên tiếp nhau, mỗi mẫu là một giá trị thực, thể hiện giá trị biên độ của âm thanh tại 1 thời điểm. Các bước của quá trình trích xuất đặc trưng MFCC được thể hiện ở hình 2-3 Hình 2-3 Các bước trích xuất đặc trưng MFCC a) Tiền xử lý Tín hiệu âm thanh thường được thu ở môi trường đời thường, tiếng nói bình thường của một người cũng không được to, trừ khi nói to có chủ định, do đó nhiễu của môi trường (tần số thấp) nhiều khi có cường độ lớn bằng một phần đáng kể (nghe có thể dễ dàng nhận ra) của tiếng nói khi thu âm, bước đầu tiên của quá trình trích chọn đặc trưng MFCC sẽ xử lý vấn đề này, bằng việc thực hiện tăng cường độ của những tần số cao lên nhằm làm tăng năng lượng ở vùng có tần số cao – vùng tần số của tiếng nói, một cách dễ hiểu là làm tiếng nói lớn hơn lên để ảnh hưởng của các âm thanh môi trường và nhiễu trở thành không đáng kể. Việc tăng cường độ của vùng tần số cao lên đồng thời làm cho thông tin rõ ràng hơn đối với mẫu tiếng nói. Hình 2-4 mô tả trước và sau quá trình Pre-emphasis của một đoạn tín hiệu âm thanh: 9 Hình 2-4 Ảnh hưởng của tiền xử lý đến tín hiệu âm thanh 4 b) Cửa sổ hóa Tín hiệu âm thanh thay đổi rất nhanh, do đó các thuộc tính như biên độ, chu kỳ sẽ không ổn định.
Khi tín hiệu âm thanh được cắt ra thành những đoạn nhỏ thì ở mỗi đoạn, có thể coi tín hiệu đó là ổn định, các đặc trưng của tín hiệu là không đổi theo thời gian. Để thực hiện việc này, chúng ta sử dụng một cửa sổ (window) chạy dọc tín hiện âm thanh và cắt ra các đoạn tín hiệu nằm trong cửa sổ đó. Một cửa sổ được định nghĩa bằng các thông số: Frame size: độ rộng của cửa sổ, cũng là độ lớn của frame tín hiệu sẽ được cắt ra. Frame shift: bước nhảy của cửa sổ, là độ dài đoạn mà cửa sổ sẽ trượt để cắt ra frame tiếp theo.
Mỗi frame sau đó sẽ được nhân với một hệ số, giá trị của hệ số này tùy thuộc vào từng loại cửa sổ : y[n] w[n] x[n] (2.6) Trong đó x[n] là giá trị của mẫu thứ n, y[n] là giá trị của mẫu thứ n sau khi nhân với hệ số, w[n] là hệ số cho mẫu thứ n trong frame đó. Loại cửa sổ đơn giản nhất là cửa sổ Rectangular, giá trị của các hệ số w[n] được cho bởi công thức sau: 1| 0 n N 1 w[n ] (2.7) 0 | truonghopkhac với N là số mẫu trong một frame 4 https://viblo.asia/p/feature-extraction-mfcc-cho-xu-ly-tieng-noi-4dbZN2xmZYM 10 Nói cách khác, của sổ Rectangular với bước nhảy là frameshift, ta lấy frame size giá trị liên tiếp của tín hiệu làm một frame. Một loại cửa sổ khác thông dụng hơn trong trích chọn đặc trưng MFCC là cửa sổ Hamming. Trong loại cửa sổ này, giá trị của tín hiệu sẽ giảm dần về 0 khi tiến dần ra hai biên của frame.