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

XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỌNG nói SPEECH TO TEXT

19 1,4K 9

Đ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 19
Dung lượng 0,93 MB

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

Nội dung

Bài toán nhận dạng tiếng nói là làm cho máy tính nhận biết và chuyển tiếng nói thu nhận của người thành một chuỗi các từ tương ứng, kết quả này có thể được dùng trong các ứng dụng điều k

Trang 1

Khoa Công Nghệ Thông Tin

BÁO CÁO

THỰC TẬP TỐT NGHIỆP

ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỌNG NÓI

SPEECH TO TEXT

Sinh Viên Thực Hiện: Nguyễn Cao Thăng

Giảng Viên Hướng Dẫn: TS.Nguyễn Tấn Khôi

Đà Nẵng, 2/2012

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN

Trang 3

LỜI MỞ ĐẦU Nhân loại ngày nay đang chứng kiến sự phát trển mạnh mẽ của ngành Công nghệ Thông tin, một trong những ngành mũi nhọn của nhiều quốc gia trên thế giới Sự phát triển vượt bậc của nó là kết quả tất yếu của sự phát triển kèm theo các thiết bị phần cứng cũng như phần mề tiện ích

Sự phát triển đó đã kéo theo rất nhiều các ngành khác phát triển theo, trong đó có lĩnh vực nghiên cứu khoa học Công nghệ ngày càng phát triển, tốc độ xử lý của các thiết bị cũng không ngừng tăng cao, nhu cầu thực tiễn của con người không ngừng thay đổi Vì thế việc xây dựng những ứng dụng phục vụ cho nhu cầu của con người trong thời đại ngày nay rất cần thiết

Trang 4

MỤC LỤC

Chương I: TỔNG QUAN VỀ ĐỀ TÀI 6

1 Bối cảnh lý do thực hiện đề tài 6

2 Mục đích của đề tài 6

3 Phương pháp thực hiện đề tài 6

Chương II: CƠ SỞ LÝ THUYẾT 7

1 Giới thiệu chung 7

2 Cơ sở lí thuyết 8

2.1 Sơ lược về nhận dạng giọng nói 8

2.1.1 Công thức cơ bản 8

2.1.2 Các thành phần của một bộ nhận dạng giọng nói 9

2.1.3 Engine Speech Recoginize (SR) 12

2.2 Hoạt động của hệ thống Speech To Text 13

Chương III: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH 14

1 Phân tích hệ thống 14

1.1 Phân tích nhu cầu thực tiễn 14

1.2 Yêu cầu đặt ra 14

2 Thiết kế hệ thống 14

2.1 Sơ đồ use case 14

2.2 Sơ đồ hoạt động 15

2.3 Sơ đồ tuần tự 15

3 Kết quả chương trình 16

Chương IV:TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 17

1 Thực thi chương trình 17

2 Đánh giá kết quả 17

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 18

1 Kết luận 18

2 Hướng phát triển 18

TÀI LIỆU THAM KHẢO 19

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1: Mô tả quá trình nhận dạng tiếng nói 7

Hình 2: Mô tả của mô hình ngữ âm 10

Hình 3: Quá trình chuyển từ Speech To Text 12

Hình 4: Lưu đồ thuật toán Speech To Text 13

Hình 5: Sơ đồ use-case 14

Hình 6: Sơ đồ hoạt động 15

Hình 7: Sơ đồ tuần tự 15

Hình 8: Giao diện Speech To Text 16

Trang 6

Chương I: TỔNG QUAN VỀ ĐỀ TÀI

1 Bối cảnh lý do thực hiện đề tài

Hiện nay, trên thế giới việc sử dụng các phần mềm về âm thanh không còn là một vấn đề quá mới mẻ Tuy nhiên mỗi quốc gia đều có một đặc thù ngôn ngữ khác nhau nên không có các quy tắc, các luật chung trong việc xử lý từ Vì thế em đã chọn và nghiên cứu, xây dựng chương trình nhận dạng giọng Speech To Text ( chuyển âm thanh thành văn bản)

2 Mục đích của đề tài

Xây dựng ứng dụng nhận dạng giọng nói Speech To Text, chuyển âm thanh được nhận dạng sang dạng text

3 Phương pháp thực hiện đề tài

Sử dụng ngôn ngữ lập trình C#, các thư viện hỗ trợ nhận dạng giọng nói SpeechRecognitionEngine , VSpeech

Trang 7

Chương II: CƠ SỞ LÝ THUYẾT

1 Giới thiệu chung

Hiện nay có nhiều cách tiếp cận nhận dạng tiếng nói khác nhau bao gồm: sử dụng Mô hình HMM, mạng Neural, cơ sở tri thức, hoặc mô hình kết hợp giữa các

mô hình

Ta thấy đây là bài toán rất khó, vì âm thanh người nói khá phức tạp, có tính liên tục

và các âm quyện nối vào nhau, vì mỗi người mỗi giọng, vì có các tạp âm khác nhiễu vào thiết bị thu, Với tiếng nói chuẩn, các hệ hiện đại cũng mới nhận dạng đúng được khoảng 70% Bài toán nhận dạng tiếng nói là làm cho máy tính nhận biết và chuyển tiếng nói thu nhận của người thành một chuỗi các từ tương ứng, kết quả này có thể được dùng trong các ứng dụng điều khiển thiết bị, nhập dữ liệu, soạn thảo văn bản, hoặc chuyển cho một quá trình xử lý ngôn ngữ ở mức cao hơn Nhận dạng tiếng nói phát triển từ nhận dạng các từ nói riêng biệt đến nhận dạng các từ được nói liên tục, bộ

từ vựng sử dụng trong hệ thống được chia thành 3 nhóm:

Từ vựng nhỏ: sử dụng tối đa khoảng 100 từ

Từ vựng trung bình: sử dụng từ hàng trăm đến 20000 từ

Từ vựng lớn: cho phép mở rộng đến hơn 64000 từ Một hệ thống dạng tiếng nói là một thiết bị có khả năng tự động chuyển đổi tiếng nói thành văn bản

Hình 1: Mô tả quá trình nhận dạng tiếng nói

Hình trên mô tả một cách tổng thể về quá trình nhận dạng tiếng nói Đầu tiên, tiếng nói được phát ra theo ý nghĩ của người nói, tiếng nói này được thu nhận thu dưới dạng sóng âm, sau khi rút trích các đặc trưng và được chuyển tới bộ phận xử lý ngữ âm Tại

Trang 8

đây các đặc trưng được phân tích thành các ngữ âm Sau đó các ngữ âm này được xử lý trong bộ giải mã để cho ra chuỗi từ phù hợp

Ta có thể nhận thấy rằng kết quả của nhận dạng phụ thuộc vào nhiều yếu tố như: chất lượng tiếng nói, thiết bị thu âm và bộ giải mã Bộ giải mã được xem là thành phần quan trọng nhất của hệ thống nhận dạng tiếng nói

Hiện nay có nhiều cách để thiết kế và cài đặt một bộ giải mã, nhưng cách được sử dụng phổ biến nhất và hiệu quả hơn là dùng mô hình HMM kết hợp với lý thuyết thống kê

Như trình bày ở hình 0.0, đầu vào của hệ thống là một chuỗi các ngữ âm quan sát được X Cơ chế giải mã là từ chuỗi ngữ âm này, so sánh với các ngữ âm đã được huấn luyện trước (thông qua quá trình học) cùng với thực hiện phép toán xác suất, chúng tìm

ra chuỗi từ phù hợp nhất Ŵ Quá trình này được thực hiện bằng cách gắn các ngữ âm đã quan sát được và các giả thiết đầu ra là các chuỗi từ phù hợp vào Mô hình HMM Trong

đó các ngữ âm được gắn vào các trạng thái của mô hình HMM, còn các giả thiết đầu ra

là các quan sát Các tham số dùng cho mô hình HMM được ước lượng bằng thuật toán Forward-backward hay còn gọi là thuật toán Baum- Welch Để tính xác suất từ một chuỗi trạng thái sinh ra một chuỗi quan sát nào đó, chúng ta sử dụng thuật toán Viterbi

2 Cơ sở lí thuyết

2.1 Sơ lược về nhận dạng giọng nói

2.1.1 Công thức cơ bản

Một số ký hiệu được sử dụng và các lý thuyết cơ bản Gọi A là tập hợp các ngữ âm

để bộ nhận dạng dùng để xác định từ nào đã được nói A là một chuỗi các kí tự trong bảng alphabet A:

A= a1, a2, …, am ai U A (1.1)

Gọi W= w1, w2, , wn wi U W (1.2)

W là một chuỗi n từ, những từ này nằm trong một bộ từ vựng cố định cho trước P(W|A) là xác suất để tập từ W được nói với chuỗi ngữ âm quan sát được là A

Trang 9

Từ chuỗi W, bộ nhận dạng sẽ xác định một chuỗi từ tốt nhất Ŵ để cho ra chuỗi quan sát là A, tức là:

Ŵ = argmaxWP(W|A) (1.3)

Theo công thức Bayes ta có:

Trong đó P(W) là xác suất để chuỗi W được nói, P(A|W) là xác suất quan sát được

A khi đọc chuỗi W, và P(A) là xác suất trung bình A được quan sát P(A) được tính theo công thức:

Vì A là cố định nên từ (I.3) và (I.5) ta có xấp xỉ lớn nhất của bài toán giải mã:

Ŵ = argmaxWP(W)P(A|W) (1.6)

Theo công thức (1.6) thì bài toán nhận dạng tiếng nói (nhận ra chuỗi từ Ŵ) chính là phải xác định được các xác suất P(W) và P(A|W) P(W) được tính thông qua mô hình ngôn ngữ, còn xác suất P(A|W) được tính thông qua mô hình ngữ âm

2.1.2 Các thành phần của một bộ nhận dạng giọng nói

a) Xử lý ngữ âm

Công việc đầu tiên của một hệ thống dạng tiếng nói là thông qua dữ liệu ngữ âm được quan sát A Bộ phận làm việc này gọi là Front end, Front end sẽ rút trích vector đặc trưng biểu diễn thông tin của ngữ âm quan sát A để chuyển đổi âm thanh dưới

dạng sóng thành các ký tự ai.

b) Mô hình ngữ âm (Acoustic model)

Một mô hình âm thanh được tạo ra bằng cách giữ lại các giọng nói được ghi âm, sau

đó phiên âm các từ của giọng nói và sử dụng phần mềm để tính các xác suất của âm thanh tạo nên mỗi từ Nó được sử dụng bởi một bộ máy nhận dạng để nhận ra tiếng nói

Trang 10

Theo cấu trúc giọng nói, mô hình ngữ âm cho phép tính toán xác suất tương quan của vector đặc trưng của chuỗi quan sát được đến một từ cụ thể Quay trở lại công thức 1.6, bộ nhận dạng cần phải tính được P(A|W) là xác suất khi người nói nói chuỗi từ W thì bộ phân tích ngữ âm phân tích được chuỗi ngữ âm A Để phục vụ công việc nhận dạng, chúng ta cần phải tính P(A|W) của tất cả các cặp A, W có thể Điều này khó có thể thực hiện được, vì số lượng rất lớn Và nếu có tính hết được thì cũng rất khó có thể tìm kiếm được cặp A, W phù hợp

Vì vậy để tính P(A|W) chúng ta cần một mô hình xác suất ngữ âm của chuỗi từ mà người nói đã nói Số lượng mô hình phụ thuộc vào cách mà người nói nói chuỗi từ đó, vào nhiễu (tiếng ồn, tiếng vọng …), vị trí và các đặc tính của microphone, và việc xử lý ngữ âm của Front end

Mô hình ngữ âm được sử dụng rộng rãi nhất trong các bộ nhận dạng tiếng nói hiện nay là mô hình HMM Ngoài ra còn nhiều loại mô hình khác, chúng có thể dựa vào thuật toán mạng Neural (artificial neural networks) hoặc thuật toán qui hoạch động (dynamic time warping)

Hình 2: Mô tả của mô hình ngữ âm

c) Mô hình ngôn ngữ (Language model_LM)

Một mô hình ngôn ngữ là một phân phối xác suất trên các chuỗi từ, nó được sử dụng để hạn chế việc tìm kiếm từ Hầu hết các mô hình ngôn ngữ thường được sử dụng

là mô hình ngôn ngữ N-gram, có chứa số liệu thống kê của các chuỗi từ và các trạng thái hữu hạn Để đạt được độ chính xác tốt mô hình ngôn ngữ N-gram của ta phải rất thành công trong việc hạn chế không gian tìm kiếm, có nghĩa là nó phải được dự đoán

Trang 11

với xác suất rất tốt trong N từ tiếp theo Mô hình ngôn ngữ còn nhằm hạn chế các từ vựng chứa trong các từ

Mô hình ngôn ngữ thường được kết hợp trong bộ giải mã để nhận dạng ra tiếng nói Đối với các hệ thống nhận dạng tiếng nói liên tục từ vựng lớn hiện nay, có nhiều mô hình ngôn ngữ âm học, từ điển phát âm và thậm chí mô hình ngôn ngữ từ vựng lớn được xây dựng sẵn để có thể tải về

Công thức 1.6 cũng yêu cầu phải tính xác suất các chuỗi chữ W để tìm ra chuỗi từ

có xác suất tốt nhất mà người dùng muốn nói chuỗi từ W Công thức Bayes cho phép

có nhiều cách khác nhau để phân tích P(W) Nhưng bởi vì bộ nhận dạng muốn truyền đạt chuỗi văn bản một cách ngẫu nhiên như những gì con người đã nói, vì thế chúng ta

sử dụng cách phân tích:

Bộ nhận dạng phải ước lượng xác suất P(wi|w1,…, wi-1) Chúng ta phải ước lượng bởi vì dù với một giá trị n vừa phải và kích thước từ vựng hợp lý, thì xác suất P(wi|w1,…, wi-1) có rất nhiều đối số

Tuy nhiên, thật là vô lý nếu cho rằng việc lựa chọn chữ thứ i của người nói phụ thuộc vào tất cả i-1 chữ trước trong toàn bộ những lời mà một người đã đã nói Vì vậy, chúng ta sẽ cho những từ trước vào các lớp tương đối Ф(wi|w1,…, wi-1), công thức 1.7 trở thành:

Sự khác biệt giữa các mô hình ngôn ngữ khác nhau chính là việc xác định Ф

phù hợp và một phương pháp để ước lượng P(wi| Ф(w1,…, wi-1))

Việc xây dựng mô hình ngôn ngữ chỉ phụ thuộc vào bộ văn bản sử dụng, hoàn toàn không phụ thuộc vào tiếng nói (không phụ thuộc vào việc ghi âm cho học)

Trang 12

Là một chuỗi các mục có thứ tự, các mục có thể là các âm tiết, các chữ cái, các từ tùy theo ứng dụng

Một N-gram có kích thước N =1 được gọi là unigram,

kích thước N =2 là bigram, kích thước N =3 là trigram và kích thước N ≥ 4 được gọi là N-gram Hầu hết các mô hình ngôn ngữ đều được xây dựng từ N-gram Mô hình N-Gram:

Là một loại mô hình xác suất cho các dự đoán mục kế tiếp trong một chuỗi Mô hình N-gram được dùng trong nhiều lĩnh vực khác nhau của mô hình thống kê để xử lý ngôn ngữ tự nhiên, nhận dạng tiếng nói và phân tích chuỗi gen

2.1.3 Engine Speech Recoginize (SR)

SR là một tiến trình chuyển từ ngôn ngữ nói thành dạng text Tiến trình bao gồm:

1 Thu nhận và số hóa âm thanh của người nói

2 Chuyển và số hóa âm thanh thành âm vị cơ bản

3 Xây dựng những từ (word) từ những âm vị cơ bản đó

4 Phân tích ngữ cảnh xuất hiện của từ để chắc chắn đánh vần đúng từ được nói

Hình 3: Quá trình chuyển từ Speech To Text

Trang 13

2.2 Hoạt động của hệ thống Speech To Text

Hình 4: Lưu đồ thuật toán Speech To Text

Bắt đầu Khởi tạo recognize engine Khởi tạo recognize context Thiết lập các even message Thiết lập các interest Tạo đối tượng audio

Thu nhận âm thanh của người nói vào

Tạo dictation Load dictation

Thiết lập trạng thái kích hoạt

cho dictation

Chuyển âm thanh sang text

Kết thúc

Giải phóng

Trang 14

Chương III: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH

1 Phân tích hệ thống

1.1 Phân tích nhu cầu thực tiễn

Hiện nay, trên thế giới việc sử dụng các phần mềm nhận dạng về âm thanh không còn là vấn đề quá mới mẻ Tuy nhiên mỗi quốc gia đều có một đặc thù ngôn ngữ khác nhau nên không có các quy tắc, các luật chung trong việc xử lý từ Chính vì vậy, việc nghiên cứu và xây dựng một ứng dụng nhận dạng giọng nói là rất phù hợp

1.2 Yêu cầu đặt ra

Xây dựng ứng dụng nhận dạng giọng nói Speech To Text

2 Thiết kế hệ thống

2.1 Sơ đồ use case

Hình 5: Sơ đồ use-case

Trang 15

2.2 Sơ đồ hoạt động

Hình 6: Sơ đồ hoạt động

2.3 Sơ đồ tuần tự

Hình 7: Sơ đồ tuần tự

Trang 16

3 Kết quả chương trình

Hình 8: Giao diện Speech To Text

Trang 17

Chương IV: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ

1 Thực thi chương trình

Thực thi chương trình tại đường dẫn: \\STT_V_E\bin\Debug\STT_V_E.exe

2 Đánh giá kết quả

Chương trình đã thực hiện được yêu cầu đề ra

Trang 18

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

1 Kết luận

a Kết quả đạt được

Đề tài đã đạt được các kết quả như sau :

Tìm hiểu được cách thức lập trình nhận dạng giọng nói trong môi trường Net

Tìm hiểu được cách thức hoạt động của chương trình chuyển âm thanh thành văn bản (Speech To Text)

b Những hạn chế của chương trình

Chỉ là một chương trình đơn giản cho phép chuyển đổi từ âm thanh sang văn bản Chưa ứng dụng được trong thực tiễn

Giao diện đơn giản

2 Hướng phát triển

Nếu có điều kiện, em sẽ cố gắng khắc phục những hạn chế của chương trình, và xây dựng thêm các tính năng điều khiển các ứng dụng trên PC thông qua giọng nói

Trang 19

TÀI LIỆU THAM KHẢO Tài liệu:

[1] MSDN Library for Visual Studio 2008 - ENU

[2] Trịnh Văn Loan, Tài liệu xử lý tiếng nói.

[3] Cao Quyết Thắng, Bài giảng môn học xử lý tiếng nói, Trường Đại học Hàng Hải

Việt Nam – Khoa Công nghệ thông tin

[4] VSPEECH SDK1.0, Nhóm phát triển phần mềm BK02 – Khoa Công nghệ thông tin – Đại học Bách Khoa TPHCM

Các trang Web

[1] http://www.voicexml.org

[2] http://www.c-sharpcorner.com

Ngày đăng: 01/07/2016, 12:57

HÌNH ẢNH LIÊN QUAN

Hình 1: Mô tả quá trình nhận dạng tiếng nói - XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỌNG nói SPEECH TO TEXT
Hình 1 Mô tả quá trình nhận dạng tiếng nói (Trang 7)
Hình 2: Mô tả của mô hình ngữ âm - XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỌNG nói SPEECH TO TEXT
Hình 2 Mô tả của mô hình ngữ âm (Trang 10)
Hình 3: Quá trình chuyển từ Speech To Text - XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỌNG nói SPEECH TO TEXT
Hình 3 Quá trình chuyển từ Speech To Text (Trang 12)
Hình 4: Lưu đồ thuật toán Speech To Text - XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỌNG nói SPEECH TO TEXT
Hình 4 Lưu đồ thuật toán Speech To Text (Trang 13)
2.1. Sơ đồ use case - XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỌNG nói SPEECH TO TEXT
2.1. Sơ đồ use case (Trang 14)
Hình 6: Sơ đồ hoạt động - XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỌNG nói SPEECH TO TEXT
Hình 6 Sơ đồ hoạt động (Trang 15)
2.2. Sơ đồ hoạt động - XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỌNG nói SPEECH TO TEXT
2.2. Sơ đồ hoạt động (Trang 15)
Hình 8: Giao diện Speech To Text - XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG GIỌNG nói SPEECH TO TEXT
Hình 8 Giao diện Speech To Text (Trang 16)

TỪ KHÓA LIÊN QUAN

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