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

Nhận dạng tiếng nói và ứng dụng tích hợp với các phầnmềm máy tính

102 1.3K 4

Đ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

Cấu trúc

  • CHƯƠNG 1 : TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI

    • 1.1 GIỚI THIỆU VỀ XỬ LÝ TIẾNG NÓI

    • 1.2 NHẬN DẠNG TIẾNG NÓI

      • 1.2.1 Khái niệm về nhận dạng tiếng nói

      • 1.2.2 Phân loại các hệ thống nhận dạng tiếng nói

      • 1.2.3 Các phương pháp nhận dạng tiếng nói

        • 1.2.3.1 Phương pháp âm học ngữ âm học

          • 1. Bước đầu tiên:Tín hiệu tiếng nói sau khi số hoá được đưa qua một bộ “đo” các đặc trưng của tiếng nói, mục đích là nhằm biểu diễn xấp xỉ các đặc tính của tiếng nói thay đổi theo thời gian. Bước này là cần thiết cho hầu hết các hệ thống nhận dạng theo các hướng tiếp cận khác nhau.

          • 2. Bươc thứ hai: Là bước tách các đặc tính của tiếng nói nhằm biến đổi các số đo phổ tín hiệu thành một tập các đặc trưng mô tả các đặc tính âm học của các đơn vị ngữ âm khác nhau. Các đặc trưng đó có thể là: Tính chất âm mũi, âm xát, vị trí các formant…

          • 3. Bước thứ ba: Là bước phân đoạn và gán nhãn. Ở bước này hệ thống nhận dạng cố gắng tìm các vùng âm thanh ổn định và gán cho mỗi vùng này một nhãn phù hợp với đặc tính của đơn vị ngữ âm. Đối với một hệ thống nhận dạng theo hướng âm học ngữ âm học thì bước này là tâm điểm và khó thực hiên nhất. Do đó có rất nhiều chiến lược đã được sử dụng để giới hạn phạm vi của các điểm phân đoạn và xác xuất gán nhãn.

          • 4. Bước cuối cùng: Từ các khối ngữ âm thu được sau bước phân đoạn và gán nhãn, người ta dựa vào một số nguyên tắc lựa chọn để kết hợp các khối ngữ âm này thành các từ, câu nhận dạng.

        • 1.2.3.2 Phương pháp nhận dạng mẫu

          • 1. Trích chọn các đặc trưng: Ở bước này dựa trên một số biện pháp phân tích để xác định các đặc trưng của các mẫu. Đối với các hệ thống nhận dạng tiếng nói có hai phương pháp cơ bản là phương pháp phân tích hệ số phổ theo thang độ Mel (MFCC) và phương pháp phân tích mã hóa dự đoán tuyến tính (LPC).

          • 2. Huấn luyện mẫu: Ở bước này, hệ thống dựa trên các đặc trưng của các mẫu trong cùng một lớp được tạo ra ở bước trước để tạo nên các mẫu tham chiếu của hệ thống. Ví dụ trong hệ thống nhận dạng từ, để xây dựng nên một từ tham chiếu chúng ta phải thu từ đó lặp đi lặp lại nhiều lần, sau đó trích chọn các đặc trưng của những từ này nhằm tạo một từ tham chiếu cho hệ thống.

          • 3. Phân lớp mẫu: Trong bước này, mẫu cần nhận dạng được so sánh với các mẫu tham chiếu. Ở đây, cần một thủ tục để tính khoảng cách cục bộ, và quy chuẩn thời gian giữa các mẫu.

          • 4. Quyết định logic: Sau bước phân lớp mẫu ta có được điểm đánh giá sự “giống” nhau giữa mẫu cần nhận dạng và mẫu tham chiếu. Những thông số điểm này sẽ được sử dụng để đưa ra quyết định là mẫu nào “giống” với mẫu cần nhận dạng nhất.

        • 1.2.3.3 Phương pháp ứng dụng trí tuệ nhân tạo

          • 1. Kiến thức về âm học : Nhằm để phân tích phổ và xác định đặc tính âm học của các mẫu tiếng nói đầu vào.

          • 2. Kiến thức về từ vựng : Sử dụng để kết hợp các khối ngữ âm thành các từ cần nhận dạng.

          • 3. Kiến thức về cú pháp : Nhằm kết hợp các từ thành các câu cần nhận dạng.

          • 4. Kiến thức về ngữ nghĩa : Nhằm xác định tính logic của các câu đã được nhận dạng.

  • CHƯƠNG 2 : QUÁ TRÌNH TIỀN XỬ LÝ TIẾNG NÓI

    • 2.1 PHÁT HIỆN TIẾNG NÓI

      • 2.1.1 Năng lượng ngắn hạn

      • 2.1.2 Tốc độ đi qua điểm không

      • 2.1.3 Lượng thông tin

        • 2.1.3.1 Tính FFT

        • 2.1.3.2 Mật độ xác suất của phổ năng lượng

        • 2.1.3.3 Tính Entropy

      • 2.1.4 Giải thuật phát hiện tiếng nói

        • 1. Khởi tạo: Coi 100ms đầu tiên của tín hiệu thu được là khoảng lặng.

        • 2. Tìm khung có năng lượng lớn hơn ITL đánh dấu nó như là điểm có thể bắt đầu tiếng nói, gọi nó là s.

        • 3. Nếu khung sau s có năng lượng lớn hơn ITL thì nó sẽ là khung bắt đầu tiếng nói. Còn nếu có năng lượng nhỏ hơn ITL thì phải tìm lại s.

        • 4. Tìm khung có năng lượng nhỏ hơn ITU, khung này là khung kết thúc tiếng nói.

        • 5. Kết quả phát hiện tiếng nói ở các bước trên có thể chưa chính xác, cần phải điều chỉnh chúng theo cách sau:

    • 2.2 PHÂN TÍCH MÃ HÓA DỰ ĐOÁN TUYẾN TÍNH (LPC)

      • 2.2.1 Mô hình LPC

      • 2.2.2 Các công thức phân tích LPC

      • 2.2.3 Phân tích tự tương quan

      • 2.2.4 Bộ xử lý LPC trong hệ thống nhận dạng tiếng nói

        • 2.2.4.1 Bộ lọc hiệu chỉnh

        • 2.2.4.2 Phân khung

        • 2.2.4.3 Lấy cửa sổ

        • 2.2.4.4 Phân tích tự tương quan

        • 2.2.4.5 Phân tích LPC

        • 2.2.4.6 Chuyển hệ số LPC thành các hệ số Cepstral

        • 2.2.4.7 Cepstral có trọng số

        • 2.2.4.8 Đạo hàm Cepstral theo thời gian

    • 2.3 PHÂN TÍCH CEPSTRAL THÔNG QUA THANG ĐỘ MEL (MFCC)

      • 2.3.1 Mô hình tính toán các hệ số MFCC

      • 2.3.2 Quá trình tiền xử lý tín hiệu

        • 2.3.2.1 Bộ lọc thích nghi

        • 2.3.2.2 Chuẩn hóa biên độ

        • 2.3.2.3 Phân khung

        • 2.3.2.4 Lấy cửa sổ

        • 2.3.2.5 Phổ năng lượng

        • 2.3.2.6 Băng lọc Mel

        • 2.3.2.7 Logarit các hệ số năng lượng qua băng lọc

        • 2.3.2.8 Biến dổi Cosine rời rạc ngược

        • 2.3.2.9 Cepstral có trọng số

        • 2.3.2.10 Đạo hàm Cepstral theo thời gian

    • 2.4 LƯỢNG TỬ HÓA VECTOR

      • 2.4.1 Tập vector huấn luyện

      • 2.4.2 Khoảng cách giữa hai vector

      • 2.4.3 Nhân của một tập vector

      • 2.4.4 Phân cụm các vector

        • 1. Khởi tạo: Chọn tuỳ ý M vector (Có thể không nằm trong tập huấn luyện) dùng làm các từ khởi tạo trong codebook.

        • 2. Tìm láng giếng gần nhất: Với mỗi một vector trong tập huấn luyện ta tìm ra một vector trong codebook “giống” nó nhất và gán vector này về nhóm tương ứng với từ mã đó

        • 3. Cập nhật nhân: Sử dụng công thức tìm nhân ở trên để cập nhật lại nhân của từng nhóm.

        • 4. Lặp: Lặp lại bước hai và bước ba cho đến khi trung bình khoảng cách của các vector trong cùng một nhóm đến nhân của nhóm nhỏ hơn một ngưỡng nào đó.

  • CHƯƠNG 3 : MÔ HÌNH MARKOV ẨN

    • 3.1 CÁC QUÁ TRÌNH MARKOV RỜI RẠC

      • 1. Trạng thái 1: Trời mưa.

      • 2. Trạng thái 2: Trời nhiều mây.

      • 3. Trạng thái 3: Trời nắng.

    • 3.2 MÔ HÌNH MARKOV ẨN

      • 3.2.1 Khái niệm

        • 1. Các trạng thái của mô hình tương ứng với cái gì.

        • 2. Mô hình cần bao nhiêu trạng thái.

      • 3.2.2 Thành phần của mô hình Markov ẩn

        • 1. N-Số trạng thái của mô hình: Mặc dù số trạng thái của mô hình là ẩn nhưng trong các ứng dụng ở thực tế thì thường có một ý nghĩa vật lý nào đó gắn với các trạng thái của mô hình. Ta đánh nhãn các trạng thái riêng rẽ là {1,2,3,4,..,N} và kí hiệu trạng thái ở thời điểm t là qt.

        • 2. M- Số biểu tượng có thể quan sát được ứng với mỗi trạng thái: Các biểu tượng có thể quan sát được thường tương ứng với sự kiện vật lý đàu ra của một hệ thống đang được mô hình hoá. Trong thí nghiệm tung đồng xu thì số biểu tượng có thể quan sát được ứng với từng trạng thái chính là mặt sấp và mặt ngửa của đồng xu.

        • 3. Ma trận xác suất chuyển trạng thái A = {aij}:Với aij là xác suất để trạng thái ở thời điểm t là i và trạng thái ở thời điểm t+1 là j. Do đó ta có.

      • 3.2.3 Ba bài toán cơ bản của mô hình Markov ẩn

        • 3.2.3.1 Bài toán một

          • 1. Khởi tạo:

          • 2. Quy nạp:

          • 3. Kết thúc:

        • 3.2.3.2 Bài toán hai

        • 3.2.3.3 Ước lượng tham số của mô hình

          • 1. Hoặc  đạt trạng thái tới hạn của một hàm likelihood, tức là = 

          • 2. Hoặc là mô hình "tốt hơn" mô hình  theo nghĩa P(O|) > P(O|), tức là đã tìm ra mô hình mới giải thích được dãy quan sát O tốt hơn so với mô hình cũ .

      • 3.2.4 Các loại mô hình Markov ẩn

      • 3.2.5 Những vấn đề cần thực hiện đối với mô hình Markov ẩn

        • 3.2.5.1 Lấy tỷ lệ

        • 3.2.5.2 Huấn luyện nhiều dãy quan sát

        • 3.2.5.3 Khởi tạo các tham số của mô hình

        • 3.2.5.4 Dữ liệu huấn luyện không đầy đủ

  • CHƯƠNG 4 : TÍCH HỢP VỚI PHẦN MỀM MÁY TÍNH

    • 4.1 GIỚI THIỆU

    • 4.2 TRAO ĐỔI DỮ LIỆU VỚI OFFICE XP

      • 4.2.1 Kết nối theo hướng Add-in

        • 4.2.1.1 Phân loại Add-in

        • 4.2.1.2 Tạo, đăng kí và triển khai một COM Add-in

          • 1. OnConnection: Sự kiện này xuất hiện khi add-in được tải lên. Hàm này có bốn đối trong đó đối đầu tiên chính là con trỏ trỏ tới đối tượng Application của ứng dụng mà Add-in này đang được nó tải lên. Đây là một tham số hết sức quan trọng ta thường phải lưu lại tham số này để thực hiện các thao tác trao đổi dữ liệu tiếp theo.

          • 2. OnDisconnection : Sự kiện này xuất hiện khi đối tượng Com add-in được giải phóng, ta thường sử dụng sự kiện này để viết các đoạn mã thực hiện các công việc dọn dẹp cần thiết.

          • 3. OnStartupComplete: Sự kiện này xuất hiện khi ứng dụng đã thực hiện xong các bước khởi tạo của nó. Nếu một Add-in mà không được tạo để tải ngay từ khi ứng dụng khởi động thì sự kiện này sẽ không xuất hiện. Ngược lại sự kiện này xuất hiện sau sự kiện OnConnection.

          • 4. OnBeginShutdown: Sự kiện này xuất hiện khi mà ứng dụng bắt đầu kết thúc. Nếu add-in mà chưa được tải thì sự kiện này không xuất hiện còn ngược lại sự kiện này xuất hiện trước sự kiện OnDisconnect. Nên

          • 5. OnAddInsUpdate: Sự kiện này xuất hiện ở tất cả các add-in khi có một add-in nào đó được tải lên hoặc được giải phóng. Nếu một add-in mà phụ thuộc vào một add-in khác thì đặt mã kiểm tra trong hàm này là tốt nhất.

      • 4.2.2 Kết nối theo hướng Automation

        • 4.2.2.1 Kết nối động

        • 4.2.2.2 Kết nối tĩnh

    • 4.3 MÔ HÌNH ĐỐI TƯỢNG CỦA EXCEL

      • 1. Application: Quản lý toàn bộ ứng dụng. Có được đối tượng này ta có thể thao tác hầu hết các chức năng trên Excel

      • 2. Workbook: Đối tượng này quản lý một Workbook trong một ứng dụng. Nhiều Workbook được quản lý bởi tập hợp Workbooks.

      • 3. Worksheet: Trong một Workbook có nhiều Worksheet đây là đối tượng mà ta thường phải thao tác với nó nhất khi trao đổi dữ liệu. Tập các Worksheet được quản lý bởi đối tượng Worksheets.

      • 4. Range: Trong một sheet thì có nhiều ô một đối tượng Range quản lý một hoặc một số ô trong một sheet.

    • 4.4 ĐỌC GHI DỮ LIỆU VÀO BẢNG TÍNH EXCEL

      • 1. Ghi dữ liệu vào Excel

      • 2. Đọc dữ liệu vào Excel

  • CHƯƠNG 5 : THIẾT KẾ CHƯƠNG TRÌNH

    • 5.1 XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG TIẾNG NÓI

      • 5.1.1 Thu âm

        • 5.1.1.1 Một số hàm sử dụng khi thu âm

          • 1. WAVEFORMATEX

          • 2. WAVEHDR

          • 3. WAVEINOPEN:

          • 4. WAVEINPREPAREHEADER

          • 5. WAVEINADDBUFFER

          • 6. WAVEINSTART

          • 7. WAVEINSTOP

          • 8. WAVEINCLOSE

        • 5.1.1.2 Giải thuật thu âm trong nhận dạng tiếng nói

      • 5.1.2 Phát hiện tiếng nói

        • 5.1.2.1 Các tham số sử dụng

        • 5.1.2.2 Giải thuật phát hiện tiếng nói

          • 1. SIL_LEN có giá trị khoảng 100ms trong khoảng thời gian này các tham số thống kê của nhiễu và nền được tính toán để từ đó chọn ngưỡng cho việc tách tín hiệu tiếng nói. Trong khoảng thời gian này thì tốt nhất là không nên có tín hiệu tiếng nói. Nếu khi thu âm mà khoảng này bị cắt bỏ thì giải thuật này sẽ thất bại, ngưỡng do nó đưa ra sẽ không chuẩn xác.

          • 2. Tính ngưỡng: Ngưỡng cho các tham số được tính dựa trên những tham số thống kê có được trong khoảng thời gian yên lặng mặc định ban đầu. Ngưỡng cho hai tham số được sử dụng trong giải thuật này tính như sau:

          • 3. Phát hiện điểm đầu: Mỗi frame tín hiệu tiếng nói đầu vào sẽ được sử dụng để tính năng lượng ngắn hạn của tín hiệu. Năng lượng ngắn hạn này sau đó được đem so sánh với ngưỡng ITU, nếu năng lượng ngăn hạn của frame mà lớn hơn ITU thì frame này sẽ trở thành frame bắt đầu.

          • 4. Phát hiện điểm cuối: Sau khi phát hiện được điểm đầu của tín hiệu tiếng nói thì công việc tiếp theo là đi tìm điểm kết thúc. Việc tìm điểm kết thúc này cũng dựa trên năng lượng ngắn hạn của frame. Trong giải thuật do Rabiner và Sambur đưa ra thì frame cuối là frame có năng lượng ngắn hạn nhỏ hơn ITL, nhưng khi cài đặt chương trình thì tôi thấy rằng nếu tìm frame có năng lượng nhỏ hơn ITL thì điểm cuối của tín hiệu sẽ bị sai đi rất nhiều. Bằng thực nghiệm tôi thấy rằng ngưỡng để coi đó là điểm cuối của tín hiệu tiếng nói cũng chính là ITU.

          • 5. Hiệu chỉnh điểm đầu, điểm cuối: Sau hai bước trên thì đã xác định được điểm đầu và điểm cuối của tiếng nói, tuy nhiên, điểm đầu và điểm cuối này có sai lệch đôi chút so với điểm đầu và điểm cuối trên thực tế. Để tăng độ chính xác của giải thuật Rabiner và Sambur đã đưa ra thủ tục để điều chỉnh điểm đầu và điểm cuối như sau:

      • 5.1.3 Trích chọn đặc trưng

        • 1. Bộ lọc hiệu chỉnh: Hệ số a của bộ lọc có giá trị là 0.97

        • 2. Phân khung: Hai tham số chủ yếu của nó là:

        • 3. Lấy của sổ: Hàm của sổ được sử dụng trong chương trình là của sổ Hamming tính theo công thức sau:

        • 4. Phân tích tự tương quan và phân tích LPC: Với hai modul này thì tham số cần phải lựa chọn duy nhất là bậc phân tích LPC. Theo Rabiner thì bậc phân tích LPC tối ưu phụ thuộc vào tần số mà ta lấy mẫu. Giá trị tối ưu theo các tần số lấy mẫu được tổng kết ở bảng sau:[1]

        • 5. Chuyển các hệ số LPC thành các hệ số Cepstral: Các hệ số Cepstral được tính dựa trên các hệ số LPC theo các công thức sau:

        • 6. Gắn trọng số cho các hệ số Cepstral: Các hệ số Cepstral được nhân với một hàm cửa sổ có dạng như sau:

        • 7. Đạo hàm của các hệ số Cepstral theo thời gian: Đạo hàm của các hệ số Cepstral theo thời gian được tính theo công thức:

      • 5.1.4 Tạo codebook

        • 1. Nhân ban đầu là nhân của tập Vector huấn luyện

        • 2. Tách nhân: Mỗi một vector trong codebook hiện tại được tách làm hai, theo công thức:

        • 3. Phân lớp vector: Các vector huấn luyện được phân về các nhóm. Nhóm mà một vector huấn luyện thuộc về là nhóm có chứa vector ở trong codebook hiện tại giống với nó nhất. Số nhóm sau khi phân chính là số vector có trong codebook hiện tại.

        • 4. Tìm các nhân: Sau khi phân các vector huấn luyện thành các nhóm ta tiến hành tìm nhân của từng nhóm. Mỗi nhân này sẽ trở thành một vector trong codebook mới.

        • 5. Độ méo D: Do sử dụng phân tích Cepstral thông qua LPC nên độ méo D thường được tính theo khoảng cách Cepstral theo công thức sau: (h chọn là L/2, L là số hệ số Cepstral)

        • 6. chọn là 1% của D

        • 7. Kích thước của codebook: Theo những nghiên cứu của Rabiner được trình bày trong cuốn [6] thì kích thước của codebook sẽ ảnh hưởng tới độ chính xác của kết quả nhận dạng. Nếu kích thước mà càng lớn thì độ chính xác càng cao nhưng tốc độ nhận dạng lại chậm đi. Còn nếu kích thước mà quá nhỏ thì sai số trong nhận dạng sẽ rất lớn. Vì vậy cần phải cân nhắc kích thước làm sao cho hơp lý nhất. Sau nhiều năm nghiên cứu thì Rabiner nhận thấy rằng nếu kích thước của codebook từ khoảng 32 vector trở nên thì sai số trong nhận dạng thay đổi không đáng kể khi thay đổi kích thước của codebook. Sau một thời gian thử nghiệm tôi chọn kích thước là 128. Kích thước này vừa đảm bảo được độ chính xác đồng thời tốc độ nhận dạng cũng chấp nhận được.

        • 8. Lưu trữ codebook: Codebook sau khi tạo xong cần phải được lưu trữ để sử dụng về sau, cách lưu trữ đơn giản nhất là lưu xuống file, file này cần phải được tổ chức sao cho có thể lấy được các thông số như số vector trong codebook, kích thước của một vector... một cách dễ dàng nhất để thuận lợi khi cần lấy codebook nên. Trong chương trình của tôi toàn bộ dữ liệu về codebook được lưu xuống file nhị phân có phần mở rộng là cbf. Tổ chức của file này như sau:

      • 5.1.5 Lượng tử hóa Vector

      • 5.1.6 Huấn luyện mô hình

        • 5.1.6.1 Tạo tập dữ liệu huấn luyện

          • 1. Tốn nhiều bộ nhớ để lưu trữ vì ngoài lưu trữ dữ liệu tiếng nói lại còn thêm cả các khoảng lặng.

          • 2. Thời gian để thu được các mẫu dùng để huấn luyện sẽ rất lâu và công việc này rất buồn chán.

          • 3. Khi huấn luyện ta phải sử dụng giải thuật phát hiện điểm đầu và điểm cuối của tín hiệu tiếng nói đối với từng file một, rất có thể là giải thuật phát hiện tiếng nói lại không cho kết quả đúng khi dùng để tách tín hiệu tiếng nói từ file (mà ta thì không thể dò từng file một vì mất nhiều thời gian). Từ đó, việc huấn luyện mô hình sẽ bị sai lệch nhiều.

        • 5.1.6.2 Huấn luyện

          • 1. Dòng đầu tiên là chuỗi kí tự nhận dạng file “HMF”.

          • 2. Tiếp theo là một số nguyên kiểu int lưu số mô hình có trong file

          • 3. Các mô hình được lưu tuần tự với cấu trúc lưu trữ của từng mô hình như sau:

      • 5.1.7 Tính xác suất và quyết định

    • 5.2 TÍCH HỢP VỚI EXCEL

      • 1. Kết quả nhận dạng S

      • 2. Kiểm tra S:

  • CHƯƠNG 6 : XÂY DỰNG CHƯƠNG TRÌNH VÀ THỬ NGHIỆM

    • 6.1 GIỚI THIỆU CHƯƠNG TRÌNH

      • 6.1.1 Giao diện chính của chương trình ứng dụng

      • 6.1.2 Một số chức năng chính của chương trình

        • 6.1.2.1 Xây dựng codebook dùng lượng tử hóa vector

          • 1. Waves Path: Nhập đường dẫn đầy đủ của thư mục chứa các file wave (đã được cắt nhiễu và nền) dùng để tạo codebook.

          • 2. Path: Nhập đường dẫn đầy đủ của file sẽ dùng để lưu dữ liệu của codebook mới sẽ được tạo ra. Có thể sử dụng nút “Select” để tìm vị trí lưu trên máy.

          • 3. Size: Trong mục này chọn một giá trị có sẵn để chỉ định kích thước của codebook mới.

        • 6.1.2.2 Huấn luyện mô hình

          • 1. Waves path: Ở mục này bạn nhập hay chọn đường dẫn đầy đủ của thư mục lưu các file wave dùng để huấn luyện mô hình. Thư mục này phải có cấu trúc như đã nói ở phần trên.

          • 2. Codeboook path: Nhập/chọn đường dẫn đầy đủ của file chứa codebook dùng cho lượng tử hóa để huấn luyện mô hình. File chứa codebook này phải có cấu hình như đã trình bày trong phần trên.

          • 3. File name: Nhập/chọn đường dẫn đầy đủ của file sẽ lưu các thông số của các mô hình sẽ được tạo ra.

          • 4. State number: Nhập số trạng thái của các mô hình sẽ được tạo ra. Số trạng thái này phải là một số nguyên dương.

        • 6.1.2.3 Nhận dạng theo thời gian thực

        • 6.1.2.4 Tích hợp với MS Excel

    • 6.2 KẾT QUẢ THỬ NGHIỆM

      • 6.2.1 Kiểm tra lần thứ nhất

      • 6.2.2 Kiểm tra lần thứ hai

      • 6.2.3 Kiểm tra lần thứ ba

        • 1. Dữ liệu huấn luyện chưa đầy đủ, số từ đem huấn luyện chưa nhiều, chưa thu được từ nhiều người, nhiều nơi…

        • 2. Một số thông số có ảnh hưởng đến độ chính xác nhận dạng như số trạng thái của mô hình, giá trị tối thiểu của bj(k), điều kiện hội tụ của mô hình… có thể được lựa chọn chưa tối ưu.

Nội dung

Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 LỜI NÓI ĐẦU Nhằm rèn luyện kỹ năng tổng hợp các kiến thức đã học, tính tự chủ, tinh thần trách nhiệm trong công việc, khả năng làm việc độc lập tạo ra bản thiết kế cho một đề tài hoàn chỉnh, mỗi sinh viên trước khi tốt nghiệp đều được nhận một đề tài tốt nghiệp do giáo viên hướng dẫn giao cho hoặc tự lựa chọn. Tham gia thực hiện đồ án một cách nghiêm túc sẽ giúp sinh viên tiếp cận với các phương pháp giải quyết một bài toán thực tế. Tôi chọn đề tài: “Nhận dạng tiếng nói và ứng dụng tích hợp với các phần mềm máy tính” làm đồ án của mình nhằm đạt các mục tiêu chính sau: • Tìm hiểu về lĩnh vực xử lý tiếng nói; • Nghiên cứu và tìm hiểu về ứng dụng nhận dạng tiếng nói; • Xây dựng chương trình nhận dạng tiếng nói theo thời gian thực; • Xây dựng chương trình tích hợp với các phần mềm máy tính. Xử lí tiếng nói là lĩnh vực rộng đã và đang từng bước được nghiên cứu và thử nghiệm trong thực tế. Nhờ sự nỗ lực của bản thân cùng sự giúp đỡ của gia đình, thầy cô và bạn bè tôi đã thực hiện các nội dung của đồ án theo đúng yêu cầu. Sau thời gian nghiên cứu, tìm hiểu và thực hiện, tôi xin trình bày bản báo cáo tổng hợp những lý thuyết liên quan và chương trình Demo nhận dạng tiếng nói và chương trình tích hợp với Excel. Trước tiên tôi xin gửi lời cảm ơn tới cha mẹ và những người thân đã luôn động viên và tạo điều kiện tốt nhất cho tôi học tập. Tôi cũng xin gửi lời cảm ơn tới các thầy cô giáo trong khoa Công nghệ thông tin I nói riêng và Học viện Công nghệ Bưu chính Viễn thông nói chung đã giúp đỡ, dìu dắt tôi trong những năm tháng học tập tại trường. Đặc biệt, tôi xin chân thành cảm ơn thầy giáo Ts.Nguyễn Quang Hoan người đã trực tiếp hướng dẫn trong thời gian tôi thực hiện đồ án tốt nghiệp. 1 Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 MỤC LỤC Trang LỜI NÓI ĐẦU 1 MỤC LỤC 2 DANH MỤC HÌNH VẼ 4 CÁC THUẬT NGỮ VIẾT TẮT 5 MỞ ĐẦU 6 CHƯƠNG 1 :TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI 8 1.1GIỚI THIỆU VỀ XỬ LÝ TIẾNG NÓI 8 1.2NHẬN DẠNG TIẾNG NÓI 9 1.2.1Khái niệm về nhận dạng tiếng nói 9 1.2.2Phân loại các hệ thống nhận dạng tiếng nói 11 1.2.3Các phương pháp nhận dạng tiếng nói 12 CHƯƠNG 2 :QUÁ TRÌNH TIỀN XỬ LÝ TIẾNG NÓI 18 2.1PHÁT HIỆN TIẾNG NÓI 18 2.1.1Năng lượng ngắn hạn 18 2.1.2Tốc độ đi qua điểm không 19 2.1.3Lượng thông tin 19 2.1.4Giải thuật phát hiện tiếng nói 20 2.2PHÂN TÍCH MÃ HÓA DỰ ĐOÁN TUYẾN TÍNH (LPC) 21 2.2.1Mô hình LPC 21 2.2.2Các công thức phân tích LPC 22 2.2.3Phân tích tự tương quan 24 2.2.4Bộ xử lý LPC trong hệ thống nhận dạng tiếng nói 26 2.3PHÂN TÍCH CEPSTRAL THÔNG QUA THANG ĐỘ MEL (MFCC) 31 2.3.1Mô hình tính toán các hệ số MFCC 31 2.3.2Quá trình tiền xử lý tín hiệu 31 2.4LƯỢNG TỬ HÓA VECTOR 35 2.4.1Tập vector huấn luyện 35 2.4.2Khoảng cách giữa hai vector 35 2.4.3Nhân của một tập vector 36 2.4.4Phân cụm các vector 36 2 Website: http://www.docs.vn Email : lienhe@docs.vn Tel (: 0918.775.368 CHƯƠNG 3 :MÔ HÌNH MARKOV ẨN 40 3.1CÁC QUÁ TRÌNH MARKOV RỜI RẠC 40 3.2MÔ HÌNH MARKOV ẨN 42 3.2.1Khái niệm 42 3.2.2Thành phần của mô hình Markov ẩn 44 3.2.3Ba bài toán cơ bản của mô hình Markov ẩn 46 3.2.4Các loại mô hình Markov ẩn 54 3.2.5Những vấn đề cần thực hiện đối với mô hình Markov ẩn 55 CHƯƠNG 4 :TÍCH HỢP VỚI PHẦN MỀM MÁY TÍNH 63 4.1GIỚI THIỆU 63 4.2TRAO ĐỔI DỮ LIỆU VỚI OFFICE XP 63 4.2.1Kết nối theo hướng Add-in 63 4.2.2Kết nối theo hướng Automation 65 4.3MÔ HÌNH ĐỐI TƯỢNG CỦA EXCEL 66 4.4ĐỌC GHI DỮ LIỆU VÀO BẢNG TÍNH EXCEL 68 CHƯƠNG 5 :THIẾT KẾ CHƯƠNG TRÌNH 70 5.1XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG TIẾNG NÓI 70 5.1.1Thu âm 71 5.1.2Phát hiện tiếng nói 76 5.1.3Trích chọn đặc trưng 81 5.1.4Tạo codebook 83 5.1.5Lượng tử hóa Vector 85 5.1.6Huấn luyện mô hình 87 5.1.7Tính xác suất và quyết định 89 5.2TÍCH HỢP VỚI EXCEL 91 CHƯƠNG 6 :XÂY DỰNG CHƯƠNG TRÌNH VÀ THỬ NGHIỆM 92 6.1GIỚI THIỆU CHƯƠNG TRÌNH 92 6.1.1Giao diện chính của chương trình ứng dụng 92 6.1.2Một số chức năng chính của chương trình 93 6.2KẾT QUẢ THỬ NGHIỆM 96 6.2.1Kiểm tra lần thứ nhất 96 6.2.2Kiểm tra lần thứ hai 97 6.2.3Kiểm tra lần thứ ba 98 KẾT LUẬN 100 TÀI LIỆU THAM KHẢO 102 3 Nhận dạng tiếng nói và… Danh mục hình vẽ DANH MỤC HÌNH VẼ 4 Nhận dạng tiếng nói và… Các thuật ngữ viết tắt CÁC THUẬT NGỮ VIẾT TẮT Viết tắt Viết đầy đủ Dịch nghĩa ASR Automatic Speech Recognition Nhận dạng tiếng nói tự động CWT Continuos Wavelet Transform Biến đổi Wavelet liên tục DCT Discrete Cosin Transform Biến đổi Cosin rời rạc DFT Discrete Fourier Transform Biến đổi Fourier rời rạc FFT Fast Fourier Transform Biến đổi Fourier nhanh FIR Finite Impulse Response Bộ lọc đáp ứng xung hữu hạn HMM Hide Markov Model Mô hình Markov ẩn IDFT Inverse Discrete Fourier Transform Biến đổi Fourier rời rạc ngược LCT Local Cosin Transform Biến đổi Cosin cục bộ LPC Linear Prediction Coding Mã dự đoán tuyến tính MCI Media Control Interface Giao diện điều khiển truyền thông MFCC Mel Frequency Cepstral Coefficients Hệ số phân tích phổ tần Mel PC Personal Computer Máy tính cá nhân ROT Running Object Table Bảng chương trình đang chạy TTS Text To Speech Chuyển văn bản thành tiếng nói STE Short Time Energy Năng lượng ngắn hạn STFS Short Time Fourier Transform Biến đổi Fourier ngắn hạn WFT Windowed Fourier Transform Biến đổi Fourier cửa sổ ZCR Zero Crossing Rate Tỉ lệ vượt quá điểm không 5 Nhận dạng tiếng nói và… Mở đầu MỞ ĐẦU Trong thời đại công nghệ thông tin hiện nay, khi việc giao tiếp giữa người với máy, máy với máy… luôn luôn là vấn đề được quan tâm thì việc trao đổi thông tin bằng tiếng nói có một vai trò quan trọng. Máy tính ra đời đã giúp con người giải quyết công việc nhanh gọn và hiệu quả hơn. Tuy nhiên, các máy tính ngày nay chỉ nhận thông tin từ con người qua các thiết bị như: bàn phím, chuột, bút, Mặc dù tốc độ xử lý của máy tính ngày càng được cải thiện đáng kể song tốc độ tạo lập thông tin của các thiết bị này vẫn còn thấp. Con người mong muốn máy tính ngày càng mạnh hơn, thông minh hơn và một trong số các yêu cầu đó là máy tính trong tương lai phải tương tác với người sử dụng bằng tiếng nói tự nhiên. Đây sẽ là một bước tiến lớn nhằm nâng cao sức mạnh của máy tính, đồng thời cũng tăng tốc độ truyền đạt thông tin giữa máy tính và con người. Xử lý tiếng nói trở thành một trong những lĩnh vực quan trọng trong xu hướng phát triển công nghệ của xã hội hiện nay. Đặc biệt, khi công nghệ thông tin ngày càng phát triển thì các ứng dụng của xử lý tiếng nói ngày càng trở lên cấp thiết. Mục đích của những nghiên cứu trong lĩnh vực xử lý tiếng nói là làm cho việc tương tác giữa người và máy ngày càng hiệu quả và tự nhiên hơn. Hiện nay trên thế giới các công nghệ xử lý tiếng nói đã phát triển, các hệ thống ứng dụng xử lý tiếng nói đã được sử dụng ở nhiều nơi, độ chính xác của các hệ thống này ngày càng được cải thiện. Các ứng dụng của lĩnh vực xử lý tiếng nói rất phổ biến: nhận dạng tiếng nói, tổng hợp tiếng nói, xác thực người nói qua giọng nói và các thành tựu của chúng được áp dụng vào nhiều lĩnh vực trong thực tế. Ở Việt Nam vì nhiều lí do khác nhau nên xử lý tiếng nói còn chưa phát triển, chưa có nhiều kết quả được công bố, đồng thời các ứng dụng của xử lý tiếng nói chưa nhiều, tài liệu về xử lý tiếng nói viết bằng tiếng Việt chưa phổ biến. Lĩnh vực xử lý tiếng nói đã và đang tiếp tục được nghiên cứu, phát triển và các ứng dụng của nó ngày càng trở nên phổ biến và quan trọng. Vì vậy xử lý tiếng nói và các ứng dụng của nó đã trở thành đề tài được nhiều nhà nghiên cứu cũng như học sinh, sinh viên nghiên cứu và phát triển. Đồ án tốt nghiệp của tôi tập trung nghiên cứu ứng dụng nhận dạng tiếng nói trong thực tế, từ đó xây dựng một ứng dụng nhận dạng cụ thể (nhận dạng các con Nhận dạng tiếng nói và… Mở đầu số) và ứng dụng nhận dạng tiếng nói vào một số phần mềm máy tính (ban đầu là nhập dữ liệu vào bảng tính Excel). Nội dung đồ án của tôi gồm các chương như sau: Chương 1: Tổng quan về nhận dạng tiếng nói Chương này giới thiệu tổng quan về xử lý tiếng nói, tập trung giới thiệu tổng quan về nhận dạng tiếng nói và các phương pháp nhận dạng đã được áp dụng trong thực tế. Chương 2: Quá trình tiền xử lý tiếng nói Chương này tập trung trình bày cơ sở lý thuyết của các thuật toán trong khâu tiền xử lý tiếng nói bao gồm: giải thuật phát hiện tiếng nói, hai phương pháp trích chọn đặc trưng LPC và MFCC; những lý thuyết cơ bản về lượng tử hóa vector, những thành phần cần thiết để thực hiện lượng tử hóa vector . Chương 3: Mô hình Markov ẩn (HMM) Chương này tập trung nói về lý thuyết mô hình Markov ẩn, những vấn đề cần phải thực hiện khi cài đặt mô hình Markov ẩn trong ứng dụng nhận dạng tiếng nói. Chương 4: Tích hợp với phần mềm máy tính Nội dung của chương này tập chung giới thiệu các phương pháp kết nối với bộ Office XP. Giới thiệu về mô hình đối tượng của Excel và việc trao đổi dữ liệu với Excel. Chương 5: Thiết kế chương trình Chương này tập trung vào công việc thiết kế của đồ án bao gồm các bước thiết kế và các thuật toán được cài đặt trong chương trình. Chương 6: Xây dựng chương trình và thử nghiệm Nội dung của chương sẽ giới thiệu về chương trình đã xây dựng cùng với một số kết quả được thống kê khi chạy thử nghiệm chương trình. Nội dung cụ thể từng chương sẽ lần lượt được trình bày trong các phần tiếp theo của đồ án. Nhận dạng tiếng nói và… Chương 1: Tổng quan về nhận dạng tiếng nói CHƯƠNG 1 : TỔNG QUAN VỀ NHẬN DẠNG TIẾNG NÓI 1.1 GIỚI THIỆU VỀ XỬ LÝ TIẾNG NÓI Xử lý tiếng nói ngày nay đang là vấn đề được quan tâm nghiên cứu nhiều bởi khả năng ứng dụng trong nhiều lĩnh vực như: Công nghệ thông tin, Viễn thông, tự động hóa (chế tạo người máy có khả năng tương tác với con người) qua đó giúp quá trình tương tác giữa người với máy trở nên hiệu quả và tự nhiên hơn. Quá trình xử lý tín hiệu tiếng nói là quá trình thu nhận, lưu trữ và truyền tín hiệu. Quá trình nhận dạng, tổng hợp tiếng nói hay xác thực người nói thông qua giọng nói là các ví dụ điển hình của quá trình xử lý tín hiệu tiếng nói. Mục đích của xử lý tiếng nói: • Thực hiện xử lý, mã hoá một cách có hiệu quả tín hiệu tiếng nói để truyền và lưu trữ tiếng nói. • Tổng hợp và nhận dạng tiếng nói tới giao tiếp người-máy bằng tiếng nói dựa vào các thông tin của quá trình tiền xử lý… Chúng ta có thể mô hình hóa cho bài toán xử lý tiếng nói như sau: Hình 1-1 Mô hình bài toán xử lý tiếng nói. Thông tin đầu vào là tín hiệu tiếng nói do con người phát ra dưới dạng tương tự, sau đó tín hiệu này được số hóa (rời rạc, lượng tử và mã hóa dạng nhị phân). Quá trình tiền xử lý tiếng nói tiến hành xử lý tín hiệu tiếng nói cho kết quả là các tham số của tín hiệu tiếng nói (Các hệ số MFCC và LPC). Các tham số này trở thành đầu vào đối với tất cả các ứng dụng của xử lý tiếng nói. Nhận dạng tiếng nói và… Chương 1: Tổng quan về nhận dạng tiếng nói Như vậy tất cả các ứng dụng của xử lý tiếng nói đều cần phải dựa trên các kết quả của quá trình tiền xử lý. Kết quả của quá trình này góp phần quyết định tính chính xác và hiệu quả của các ứng dụng. 1.2 NHẬN DẠNG TIẾNG NÓI 1.2.1 Khái niệm về nhận dạng tiếng nói Nhận dạng tiếng nói tự động là một kỹ thuật nhằm làm cho máy “hiểu” được tiếng nói của con người. Thực chất đây là một quá trình biến tín hiệu tiếng nói do người phát ra thành tín hiệu số sau đó sử dụng một số giải thuật để đối chiếu giữa tín hiệu thu được với các dữ liệu tham chiếu để xác định xem tín hiệu thu được tương ứng với dữ liệu tham chiếu nào trong bộ tham chiếu (từ điển nhận dạng). Kết quả của việc nhận dạng sau đó có thể được sử dụng trong các ứng dụng khác như nhập số liệu, soạn thảo văn bản bằng lời nói, điều khiển tự động… Mục tiêu của hầu hết các chương trình nhận dạng tiếng nói là kết quả nhận dạng đạt đến độ chính xác 100% mà không phụ thuộc vào một điều kiện nào cả. Tuy nhiên tất cả các nghiên cứu gần đây chỉ cho độ chính xác đến khoảng trên 90% trong một số điều kiện cụ thể nào đó còn những chương trình nhận dạng mà không có điều kiện giới hạn gì thì độ chính xác chỉ đạt không quá 87%. Các chương trình nhận dạng tiếng nói tự động hiện nay khá nhiều và hết sức đa dạng. Tuy nhiên chúng ta cũng có thể dựa vào một số đặc điểm để phân chúng thành một số dạng chủ yếu như: 1. Nhận dạng các từ phát âm rời rạc/liên tục: Trong các chương trình nhận dạng các từ phát âm rời rạc yêu cầu người nói phải dừng một khoảng trước khi nói từ tiếp theo. Còn hệ thống nhận dạng các từ phát âm liên tục không yêu cầu điều kiện này: 2. Nhận dạng tiếng nói độc lập/phụ thuộc người nói Đối với hệ thống nhận dạng phụ thuộc người nói đòi hỏi tiếng người nói phải có trong cơ sở dữ liệu của hệ thống còn hệ thống nhận dạng không phụ thuộc người nói thì người nói không nhất thiết phải có mẫu trước khi nhận dạng trong cơ sở dữ liệu. 3. Nhận dạng với tử điển cỡ nhỏ/vừa/lớn: Hiệu năng của một hệ thống nhận dạng với từ điển cỡ nhỏ thường cao hơn hiệu năng của các hệ thống nhận dạng có từ điển cỡ vừa và lớn. Nhận dạng tiếng nói và… Chương 1: Tổng quan về nhận dạng tiếng nói 4. Nhận dạng trong môi trường nhiễu cao/thấp: Hiệu năng của các hệ thống nhận dạng không nhiễu sẽ cao hơn hiệu năng của các hệ thống nhận dạng có nhiễu. Dưới đây là hình biểu diễn các phần tử cơ bản của một hệ thống nhận dạng tiếng nói. Hình 1-2 Các phần tử cơ bản của một hệ thống nhận dạng tiếng nói Tín hiệu tiếng nói sau khi được số hóa sẽ phân thành các khung có độ dài khoảng từ 10 đến 45ms qua bước phân tích và xác định các đặc tính sẽ cho ta một dãy các vector đặc tính của tiếng nói. Các vector này sau đó sẽ được sử dụng để tìm kiếm các từ giống nhất trong từ điển dựa trên một số điều kiện ràng buộc nào đó về mặt âm thanh, ngữ nghĩa, từ vựng… Do tính chất của tiếng nói phụ thuộc vào nhiều yếu tố nên việc thu nhận, phân tích các đặc trưng của tiếng nói là việc không dễ dàng. Ở đây, chúng ta có thể nêu ra một số yếu tố khó khăn cho bài toán nhận dạng tiếng nói: • Khi phát âm, người nói thường nói nhanh chậm khác nhau. • Các từ được nói thường dài ngắn khác nhau. • Một người cùng nói một từ nhưng ở hai lần phát âm khác nhau thì cho kết quả phân tích khác nhau. [...]... 0mN-1 iu ny tng ng vi vic nhõn tớn hiu ting núi s(m+n) vi mt ca s cú di hu hn w(m), ca s ny bng 0 bờn ngoi khong 0mN-1 Nh vy mu ting núi cú th c biu din nh sau : s (m + n).w(m) với 0 m N 1 sn ( m) = 0 trong các trờng hợp khác (2.25) Vỡ sn(m) = 0 mN-1 Tuy nhiờn, trong vựng t... cú trng s phng trỡnh (2.25), sai s bỡnh phng trung bỡnh tr thnh : En = N 1+ p e m =0 2 n ( m) (2.26) V n (i, k ) cú th c biu din nh sau: n (i, k ) = N 1+ p s (m i) s (m k ) n m =0 với 1 i p, 0 k p (2.27) với 1 i p, 0 k p n (2.28) Hay : n (i, k ) = N 1 ( i k ) s ( m) s ( m + i k ) n m =0 n Vỡ phng trỡnh (2.28) ch l mt hm ca i-k nờn hm hip bin n (i, k ) tr thnh hm t tng quan n gin:... thng nhn dng ting núi S khi ca b tin x lý ny nh sau: N s(n) Bộ lọc hiệu chỉnh ~ ( n) s M Phân khung w(n) xt (n) Lấy cửa sổ p ~ ( n) xt Phân tích tự t ơng quan rm (t ) W(m) cm (t ) Đạo hàm theo thời gian Gắn trọng số cm (t ) Chuyển LPC thành Cepstral am (t ) Phân tích LPC cm (t ) Hỡnh 2-7 S khi b tin x lý LPC trong h thng nhn dng ting núi B tin x lý LPC bao gm 8 bc nh trong hỡnh 2.2, chc nng c th tng

Ngày đăng: 18/12/2014, 08:39

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w