T-Engine SH7760 là một vi xử lí, có tính năng: một bộ điều khiển LCD, USB host và các chức năng ngoại vi khác
Trang 1LỜI NÓI ĐẦU 3
3.2 Phân tích tham số đặc trưng của tín hiệu tiếng nói 19
Trang 24.1 Tổng quan về tổng hợp tiếng nói 53
4.3 Tổng hợp tiếng nói tiếng Việt sử dụng giải thuật PSOLA 62
PHỤ LỤC A – LẬP TRÌNH T-ENGINE AUDIO CODEC UDA1342 76
A.2 Giao diện âm thanh nối tiếp (SSI- Sound Serial Interface) 88
PHỤ LỤC B – DANH SÁCH CÁC ÂM VỊ VÀ CÂU CẦN THU ÂM 102
Trang 3LỜI NÓI ĐẦU
Cùng với sự phát triển nhanh chóng của xu hướng tương tác người-máy sử dụng
ngôn ngữ tự nhiên, và các hệ thống nhúng thì việc kết hợp các hệ thống nhận dạng và tổng hợp trở thành một hệ thống có tính tương tác cao đồng thời đáp ứng
được những đòi hỏi về tốc độ thực thi thời gian thực là một trong những vấn đề quan trọng Trên cơ sở các yêu cầu cần thiết đó, tác giả quyết định lựa chọn đề tài:
Xây dựng hệ tổng hợp và nhận dạng tiếng Việt trên hệ nhúng để thực hiện, với
mong muốn những nghiên cứu của mình sẽ đóng góp một phần trong quá trình phát triển của các ứng dụng tương tác người-máy, cũng như là một tài liệu tham khảo tốt đối với các đề tài khác về sau Bên cạnh việc tìm tòi, tối ưu hóa các giải thuật đã được chứng minh và sử dụng rộng rãi trong các bài toán nhận dạng và tổng hợp tiếng Việt, trong đề tài của mình tác giả cũng đề ra cách tiếp cận mới trong bài toán
tổng hợp nhằm nâng cao chất lượng của tiếng Việt tổng hợp, đồng thời cũng đưa
ra phương án xây dựng hệ thống kết hợp nhận dạng và tổng hợp tiếng Việt trên
hệ nhúng T-Engine được sử dụng cho các ứng dụng tương tác người – máy sử dụng tiếng nói Với các nhiệm vụ được đề ra , bản thuyết minh đề tài được tác giả trình bày theo bố cục sau:
Phần I: Giới thiệu T-Engine SH7760 Trong phần này tác giả sẽ giới thiệu
tổng qua về các thành phần của hệ nhúng T-Engine SH7760
Phần II: Tổng quan về tín hiệu tiếng nói Trong phần này tác giả trình bày
các lý thuyết cơ sở về tiếng nói và xử lý tín hiệu tiếng nói
Phần III: Nhận dạng tiếng nói trên T-Engine Phần này sẽ cung cấp các lý
thuyết về phân tích đặc trưng tín hiệu tiếng nói và mô hình nhận dạng mẫu được sử dụng, đồng thời cũng đưa ra mô hình thực thi một hệ thống nhận dạng với phần cứng và phần mềm trên hệ nhúng T-Engine và các vấn đề cân khắc phục khi cài đặt hệ trên T-Engine
Phần IV: Tổng hợp tiếng nói trên T-Engine Phần IV sẽ mô tả giải thuật
PSOLA được sử dụng trong tổng hợp tiếng Việt, tác giả cũng chỉ ra trong phần này các vấn đề khi áp dụng PSOLA đối với tiếng Việt, trên cơ sở đó đề
ra phương án để nâng cao chất lượng tổng hợp với tiếng Việt
Phần V: Đánh giá kết quả và hướng phát triển Trong phần này tác giả sẽ
đánh giá những công việc đã đạt được, những hạn chế và giải pháp khắc phục
Hà Nội, ngày 7 tháng 11 năm 2007-11-07
Thực hiện đề tài
Lã Thế Vinh
Trang 4PHẦN I GIỚI THIỆU T-ENGINE SH7760
T-Engine SH7760 là một vi xử lí, có tính năng: một bộ điều khiển LCD, USB host và các chức năng ngoại vi khác SuperHRISC engine là một vi xử lí nền tảng 32bit RISC SuperHRISC engine có một tập lệnh chiều dài cố định là 16 bit, cho phép giảm khoảng gần 50% kích thước chương trình so với một tập lệnh 32 bit SH7760 có một CPU SH4 mà tại mức độ đối tượng lệnh là hoàn toàn tương thích với các vi xử lí SH-1, SH-2 và SH-3 Vi xử lí này có một cache lệnh, một cache toán hạng mà có thể chuyển giữa các chế độ copy-back và write-through, bộ quản lí bộ nhớ với 64 phần tử liên kết đầy đủ được chia sẻ TLB( Translation Look aside Buffer) Kích thước của cache lệnh và cache toán hạng là 16 kbyte và 32 kbyte Vi mạch này cũng có tính năng bộ điều khiển trạng thái bus(Bus State Controller-BSC) mà có thể lên kết với SDRAM Và bởi vì nó có các chức năng on-chip như bộ điều khiển LCD, một USB host, các bộ định giờ và các chức năng truyền tin nối tiếp yêu cầu cho các phương tiện multimedia và OA nên vi mạch này cho phép giảm thiểu rất lớn giá thành trong hệ thống
Trong phần này em xin trình bày một số những tìm hiểu về T-Engine SH7760 bao gồm kiến trúc tổng quát, các đặc tả và các tìm hiểu tiếp theo tập trung vào các thành phần cần thiết cho việc xây dựng một hệ thống nhận dạng tiếng Việt
số lượng từ hạn chế
Trang 5(External): 66MHz (x 4) Mạch: 256-pin BGA Flash memory Dung lượng: 8MB MBM29DL640E90TN (Fujitsu) x 1
SDRAM Dung lượng: 64MB EDS2516APTA-75 (ELPIDA) x 2
PC Card I/F Một khe Controller: MR-SHPC-01 V2T
(Marubun) Mạch: 144pin TQFP Serial I/F Controller gồm 2 kênh:
ST16C2550CQ48 (EXAR) Package: 48pin TQFP
-Kênh A:
H8/3048F-ONE I/F
-Kênh B: Theo dõi việc gỡ lỗi Sound Tên model: UDA1342TS (Philips)
Mạch: 28pin SSOP
SSI tích hợp trên SH7760 được sử dụng
để vận chuyển
dữ liệu IIC trên SH7760 được
sử dụng để chọn chế độ
Earphone/microphone:
- Một đầu ra tai nghe
- Một đầu vào micro
- Trở kháng: 2.2KOhm
Độ nhạy: -51dB/Pa
- Tai nghe ra có trở kháng:32Ohm
USB Host 1kênh
Controller: SH7760 on-chip USB Host TFT color LCD
module NL2432DR22-02B (NEC) Số màu hiển thị : 262,144 màu
Kích thước: 240(Chiều ngang) x 320 (chiều dọc)
Controller:SH7760 on-chip LCDC
Bộ điều khiển
nguồn cung cấp H8/3048F-ONE Tên model: HD64F3048BVTE25
Trang 6(Renesas Technology)
Tần số hoạt động: 7.3728MHz Mạch: 100-pin TQFP
H8/3048F-ONE Mạch: 10pin SSOP-G
Màn hình cảm
ứng I/F Tên Model: ADS7843 (TI) Package:
16pin SSOP
Thông qua H8/3048F-ONE (Được gắn trên bảng mạch LCD)
H8/3048F-ONE Tên model: S-29391AFJA (SII)
Điều khiển từ xa
hồng ngoại
ONE
quaH8/3048F-Tên model: GL100MN0MP (SHARP) Sóng mang: 38KHz
Bộ thu:
Tên model: GP1UC101 (SHARP) Sóng mang: 38KHz
1.2 Mô hình tổng quan.
Sơ đồ khối tổng quan của T-Engine được chỉ ra như ở hình dưới đây:
Hình 1.1 – Sơ đồ khối tổng quan của T-Engine
Hình trên đã chỉ ra các khối cơ bản cấu thành nên bộ phát triển T-Engine trong đó khối quan trọng nhất là vi xử lí SH7760 đóng vai trò bộ xử lí trung tâm Hình trên
Trang 7cũng đồng thời chỉ ra kết nối giữa các khối và cho một cái nhìn tổng quan về bộ phát triển T-Engine Sơ đồ khối bên trong của T-Engine được chỉ ra trong hình dưới đây:
Hình 1.2 – Sơ đồ trong của T-Engine
Trang 81.3 Giao diện của SH7760.
Hình 1.3 – Giao diện của T-Engine
Như thấy trong hình thì T-Engine gồm 4 bảng mạch được kết nối với nhau Trên cùng là bảng mạch LCD cung cấp chức năng của màn hình cảm ứng cùng 3 phím điều khiển, trong đó có 1 phím đa chiều ở giữa Dưới bảng mạch LCD là bảng mạch CPU nơi gắn vi xử lí trung tâm SH7760 đóng vai trò điều khiển hoạt động của toàn
bộ các bộ phận của bộ phát triển Dưới bảng mạch CPU là 2 bảng mạch phụ trách hai việc là : vào ra và gỡ lỗi Trên mạch vào ra có gắn các thiết bị hỗ trợ vào ra như liên kết cổng COM, USB, codec, thẻ nhớ CF, điều khiển sóng hồng ngoại vv.vv Cuối cùng mạch gỡ lỗi cho phép liên kết với máy tính để cung cấp chức năng gỡ lỗi cho chương trình chạy trên bộ phát triển
Trang 9PHẦN II TÔNG QUAN VỀ TÍN HIỆU TIẾNG NÓI
Nội dung của phần này nhằm giới thiệu các khái niệm và lý thuyết cơ bản về tiếng nói: nguồn gốc của tín hiệu tiếng nói (quá trình phát âm của con người) và sự cảm nhận của con người đối với tín hiệu tiếng nói Những khái niệm này là cơ sở nền tảng không thể không xét đến trước khi quyết định hướng tiếp cận bài toán nhận dạng hay tổng hợp tiếng nói
Giao tiếp giữa con người với nhau sử dụng tiếng nói là quá trình bắt đầu với việc phát âm của ngưòi nói và kết thúc khi người nghe cảm nhận, diễn dịch và đáp ứng tín hiệu tiếng nói do người nói tạo ra trong quá trình phát âm (Hình 2.1)
Hình 2.1 – Quá trình giao tiếp bằng tiếng nói
Hình thành nội dung Phát âm
Tín hiệu tiếng nói
DE Cảm nhận và diễn dịch
Trang 10Sơ đồ trên có thể được mô tả như sau: trước tiên người nói hình thành nội dung hội thoại trong não bộ (A), những thông tin này sẽ tạo ra các xung thần kinh điều khiển
bộ phận phát âm (dây thanh, khoang miệng, khoang mũi ) để tạo ra tín hiệu tiếng nói(B), thực chất là sự lan truyền của áp suất thay đổi trong không gian (C), trong quá trình lan truyền trong không gian, tín hiệu tiếng nói có thể cộng hưởng hoặc triệt tiêu với các tín hiệu khác tạo ra một tín hiệu có nhiễu với dạng sóng tương đối phức tạp, tín hiệu truyền đến tai người nghe tạo ra sự dao động màng nhĩ nhờ đó người nghe cảm nhận được tiếng nói (D) tiếp theo là quá trình phân tích ngữ nghĩa diễn ra tại não bộ(E)
Từ các phân tích nêu trên, ta thấy rằng một vấn đề đặt ra trong nhận dạng tiếng nói
đó là: làm thế nào ta có thể mô phỏng quá trình cảm nhận tiếng nói của con người bắt đầu từ khâu thu nhận tín hiệu(D) đến khâu phân tích ngữ nghĩa(E) Một vấn đề cần được chú ý đó là quá trình cảm nhận của con người là hoàn toàn không tuyến tính, chi tiết hơn ta sẽ nói ở trong phần sau
2.1 Quá trình phát âm.
Hình 2.2 – Cơ quan phát âm
Khi con người phát âm, không khí được đẩy từ phổi qua khí quản, luồng không khí chuyển động làm cho dây thanh rung kết hợp với hình dạng của tuyến âm, môi, lưỡi đóng vai trò như các bộ cộng hưởng và các bộ lọc sẽ tạo ra các âm thanh khác nhau Người ta có thể mô hình hóa toàn bộ quá trình phát âm bởi các mô hình
Trang 11toán học khác nhau Dưới đây là một ví dụ mô hình toàn điểm cực được dùng nhiều trong nghiên cứu tiếng nói:
Hình 2.3 – Mô hình toàn điểm cực 2.2 Biểu diễn tín hiệu tiếng nói.
Như ta đã biết một tín hiệu cùng với các đặc điểm riêng của nó có thể được biểu diễn trên miền thời gian hoặc miền tần số, hoặc kết hợp thời gian và tần số Tín hiệu tiếng nói xét trên miền thời gian có thể coi là tín hiệu ít biến đổi khi ta chỉ xét một khoảng thời gian đủ ngắn (5-100ms), điều đó có nghĩa là tín hiệu tiếng nói có thể coi là ổn định trong khoảng thời gian ngắn Tuy nhiên khi xét trong một khoảng thời gian dài hơn (0.5s) thì tín hiệu tiếng nói lại là không ổn định hay nó thay đổi theo các âm khác nhau được phát âm bởi người nói
Để có thể thực hiện các phân tích trên tín hiệu tiếng nói nhằm tìm ra các đặc trưng riêng cho các đoạn tín hiệu ứng với các âm khác nhau, trước hết chúng ta cần có các phương pháp để biểu diễn tín hiệu tiếng nói Sau đây là một sô phương pháp thường được dùng
Trang 12Tín hiệu tiếng nói trên miền thời gian
Hình 2.4 – Biểu diễn tín hiệu tiếng nói trên miền thời gian
Trên miền thời gian tín hiệu tiếng nói được biểu diễn bởi đồ thị biên độ tại các thời điểm t khác nhau, trong tự nhiên đó là một đồ thị liên tục, tuy nhiên tín hiệu tiếng nói được xử lý trong máy tính đã được số hoá nghĩa là rời rạc cả về mặt thời gian và tần số
Tín hiệu tiếng nói trên miền tần số
Chúng ta biết rằng tín hiệu tiếng nói không chỉ bao gồm một thành phần tần số mà gồm rất nhiều thành phần tần số khác nhau, tần số lớn nhất có thể lên tới hơn 10 kHz, mặt mức độ tham gia của các thành phần tín hiệu này cũng khác nhau Dạng biểu diễn tín hiệu tiếng nói trên miền thời gian không chứa đủ thông tin để phân tích các thành phần tín hiệu ở các tần số khác nhau, đó là lý do người ta cần đến dạng biểu diễn tín hiệu tiếng nói trong miền tần số, hay còn gọi là phổ tín hiệu
Hình 2.5 – Biểu diễn tín hiệu tiếng nói trên miền tần số
Tín hiệu tiếng nói trên miền thời gian và tần số kết hợp
Trong khi nghiên cứu tiếng nói người ta luôn có gắng để biểu diễn tín hiệu nhằm thu được nhiều thông tin nhất từ hình biểu diễn Một trong những phương pháp biểu diễn được dùng nhiều nhất và đó là cách biểu diễn tín hiệu trên miền kết hợp thời gian và tần số Thực chất của cách biểu diễn này là biểu diễn tín hiệu trên miền tần
số (2) nhưng được thực hiện với các đoạn tín hiệu ổn định (thời gian đủ ngắn) theo thời gian Các giá trị biên độ được thể hiện bằng màu sắc
Trang 13Hình 2.6 – Biểu diễn tín hiệu tiếng nói trên miền kết hợp
2.3 Âm vị trong tiếng nói.
Chúng ta biết rằng khi con người kết thúc việc hình thành nội dung cần phát
âm, một câu nói hoàn chỉnh sẽ được xây dựng bằng cách chọn và tổng hợp các đơn
vị cơ bản của tiếng nói để hình thành nên các từ phát âm hoàn chỉnh Về mặt hình thức điều này có thể ví dụ như cách đánh vần của trẻ khi học bắt đầu học chữ Các đơn vị cơ bản đó được gọi là các âm vị Trong tiếng Việt hiện có khoảng 23 âm vị là phụ âm và 16 âm vị là nguyên âm Âm vị có thể xem như một trong những phương pháp mà con người biểu diễn các phần khác nhau của một tín hiệu tiếng nói liên tục
và nó chia tín hiệu tiếng nói thành các đoạn con, điều đó có thể sẽ mang lại những thuận lợi nhất định khi thực hiện các nghiên cứu về tiếng nói ví dụ như trong các bộ nhận dạng tiếng nói với số lượng từ lớn hoặc trong tổng hợp tiếng nói
Trang 14Hình 2.7 – Bảng các âm vị là phụ âm
Trang 15Hình 2.8 – Bảng các âm vị là nguyên âm 2.4 Kết luận.
Trong phần này chúng ta đã tìm hiểu một cách sơ bộ về tiếng nói và một số vấn đề liên quan đến tín hiệu tiếng nói như: sự hình thành, biểu diễn và các thành phần Những hiểu biết cơ bản trên đặc biệt là những đặc điểm của hệ thống cảm thụ
tiếng nói của con người (tính không tuyến tính) và sự hợp thành của các âm vị để
tạo ra tiếng nói hoàn chỉnh sẽ là một trong những nền tảng quan trọng để tiếp cận đến các nghiên cứu sâu hơn về tiếng nói
Trang 16PHẦN III NHẬN DẠNG TIẾNG NÓI TRÊN T-ENGINE 3.1 Tổng quan.
Nhận dạng tiếng nói là làm cho máy hiểu, nhận biết được ngữ nghĩa của lời nói Thực chất đây là quá trình biến đổi tín hiệu âm thanh thu được qua micro, qua đường dây điện thoại hoặc các thiết bị thu âm khác, thành một chuỗi các từ, sau
đó các từ được nhận dạng có thể được sử dụng ngay trong các ứng dụng điều khiển thiết bị, nhập liệu, soạn thảo văn bản bằng lời, hoặc được đưa đến một quá trình
xử lý ngôn ngữ mức cao hơn
Các hệ thống nhận dạng tiếng nói có thể được phân thành các loại như sau :
• Nhận dạng các từ phát âm rời rạc / liên tục
• Nhận dạng tiếng nói phụ thuộc người nói / không phụ thuộc người nói
• Hệ thống nhận dạng có từ điển cỡ nhỏ (< 20 từ) / từ điển cỡ lớn (hàng nghìn từ)
• Nhận dạng tiếng nói trong môi trường có độ ồn thấp / cao
Trong một hệ thống nhận dạng tiếng nói phát âm rời rạc thì người nói sau khi nói một từ phải dừng lại trước khi phát âm từ tiếp theo Ngược lại, hệ thống nhận dạng lời nói liên tục không đòi hỏi điều này
Hệ thống nhận dạng phụ thuộc người nói đòi hỏi người nói phải cung cấp một số mẫu tiếng nói của mình trước khi sử dụng Còn hệ thống nhận dạng không phụ thuộc người nói có thể nhận dạng lời nói của bất kì người nào
Độ chính xác trong hệ thống nhận dạng tiếng nói có từ điển cỡ lớn hoặc có nhiều từ
dễ lẫn thường không cao bằng hệ thống nhận dạng có vốn từ vựng cỡ nhỏ
Các phương pháp tiếp cận trong nhận dạng tiếng nói
Hiện nay có 3 phương pháp phổ biến được sử dụng trong nhận dạng tiếng nói, đó
Trang 17Phương pháp âm học - ngữ âm học
Phương pháp này dựa trên lý thuyết về âm học - ngữ âm học cho rằng tồn tại các đơn vị ngữ âm xác định, có tính phân biệt trong lời nói và các đơn vị ngữ âm đó được đặc trưng bởi một tập các đặc tính tín hiệu tiếng nói Bước đầu tiên trong nhận dạng tiếng nói theo phương pháp này là phân đoạn và gán nhãn Bước này chia tín hiệu tiếng nói thành các đoạn có đặc tính âm học đặc trưng cho một (hoặc một vài) đơn vị ngữ âm, đồng thời gán cho mỗi đoạn âm thanh đó một hay nhiều nhãn ngữ
âm phù hợp Bước tiếp theo (bước nhận dạng) dựa trên một số điều kiện ràng buộc
về từ vựng, ngữ pháp, để xác định ra một từ hoặc một chuỗi từ đúng trong số một chuỗi các nhãn ngữ âm được tạo ra sau bước thứ nhất
Phương pháp nhận dạng mẫu
Phương pháp này không cần xác định đặc tính âm học hay phân đoạn tiếng nói mà
sử dụng trực tiếp các mẫu tín hiệu tiếng nói trong quá trình nhận dạng Các hệ thống nhận dạng tiếng nói theo phương pháp này được phát triển theo 2 bước Ở bước thứ nhất, hệ thống sử dụng một tập mẫu tiếng nói (cơ sở dữ liệu tiếng nói) để huấn luyện tạo ra các mẫu tiếng nói đặc trưng (mẫu tham chiếu) Bước thứ hai hệ thống nhận các mẫu tiếng nói từ bên ngoài, so sánh chúng với các mẫu đặc trưng để nhận dạng
Trong phương pháp này, nếu cơ sở dữ liệu tiếng nói dùng cho huấn luyện có đủ các phiên bản của mẫu cần nhận dạng thì quá trình huấn luyện có thể xác định chính xác các đặc tính âm học của mẫu (mẫu ở đây có thể là âm vị, từ, cụm từ, ) Trước đây, đối với các hệ thống nhận dạng tiếng nói là các từ rời rạc, vốn từ vựng cỡ nhỏ thì người ta thường áp dụng các kĩ thuật nhận dạng mẫu đơn giản như : lượng tử hóa vector, hiệu chỉnh thời gian động, Hiện nay có hai kĩ thuật nhận dạng mẫu được
áp dụng khá thành công trong lĩnh vực nhận dạng tiếng nói, đó là mô hình Markov
ẩn và mạng Neural
Một số đặc điểm của phương pháp nhận dạng mẫu :
Hiệu năng của hệ thống rất nhạy cảm đối với số dữ liệu mẫu đưa vào huấn luyện Nếu số lượng mẫu càng nhiều thì độ chính xác của hệ thống càng cao, tuy nhiên dung lượng bộ nhớ và thời gian luyện mẫu cũng tăng theo
Trang 18 Các mẫu tham chiếu thường phụ thuộc vào môi trường phát âm và các đặc tính truyền dẫn của môi trường.
Phương pháp này có thể được sử dụng để nhận dạng từ mà không đòi hỏi khả năng am hiểu sâu về ngôn ngữ
Phương pháp ứng dụng trí tuệ nhân tạo
Có thể coi đây là phương pháp kết hợp của các phương pháp trên với ý tưởng tận dụng tối đa các ưu điểm của từng phương pháp, đồng thời cố gắng mô phỏng khả năng tuyệt hảo của con người trong sự phân tích và cảm nhận các sự kiện bên ngoài nói chung và tiếng nói nói riêng
Đặc điểm chung của các hệ thống nhận dạng theo phương pháp này là :
Sử dụng hệ chuyên gia để phân đoạn, gán nhãn ngữ âm Điều này làm đơn giản hóa hệ thống so với phương pháp nhận dạng ngữ âm
Sử dụng mạng neural để học mối quan hệ giữa các ngữ âm Sau đó dùng mạng này để nhận dạng tiếng nói
Việc sử dụng hệ chuyên gia ở đây là nhằm mục đích tận dụng các nguồn kiến thức của con người vào trong hệ thống nhận dạng, đó là :
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
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
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.
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
Trang 19Hình 3.1 - Mô hình hệ thống nhận dạng 3.2 Phân tích tham số đặc trưng của tín hiệu tiếng nói.
Trong các phần trên chúng ta đã tìm hiểu cơ chế phát âm của con người qua đó ta biết rằng để phát ra một âm con người phải phối hợp nhịp nhàng nhiều cơ quan khác nhau bắt đầu từ não cho đến dây thanh, khoang miệng, khoang mũi, môi, trong số
đó nhiều cơ quan đóng vai trò như các bộ cộng hưởng hay các bộ lọc thông cao (môi) do đó hình dạng vị trí của các cơ quan này sẽ đóng vai trò quyết định đến âm được tao ra, như vậy có thể hiểu một cách nôm na là mỗi một âm phát ra đều có một cấu hình về hình dạng và bố trí các cơ quan phát âm khác nhau, đó là cái đặc trưng cho mỗi âm Trong phần này chúng ta sẽ trình bày một số phương pháp phân tích các tham số đặc trưng của tín hiệu tiếng nói, các tham số đặc trưng này sẽ là một phần không thể thiếu của một hệ thống nhận dạng tiếng nói (nhận dạng nội dung, nhận dạng người nói ) Có rất nhiều phương pháp phân tích tham số đặc trưng khác nhau, tuy nhiên có thể mô tả tổng quát các phương pháp này bởi sơ đồ sau:
T-Engine SH7760
tạo CSDL trên PC
Mô hình Đối sánh mẫu
Tách tham số đặc trưng
CSDL mẫu
Tách tham số đặc trưng
Trang 20Hình 3.2 – Sơ đồ phương pháp phân tích đặc trưng
Từ sơ đồ trên ta thấy rằng từ tín hiệu tiếng nói đã được lấy mẫu ban đầu, sau quá trình phân tích tham số ta thu được bộ tham số đặc trưng fx(n,m) với m = 0…M – 1 và n = 0 N – 1 có nghĩa là M véc-tơ tham số có chiều dài mỗi véc tơ là N Chi tiết hơn về các phương pháp này sẽ được trình bày trong các phần dưới đây
3.2.1 Ghi âm và tiền xử lý tín hiệu
Để hỗ trợ vào ra tín hiệu âm thanh, KIT T-Engine được phối ghép với một chip âm thanh của hãng Phillips (UDA1342) và giao tiếp với T-Engine thống qua chuẩn giao tiếp SSI, việc vào ra dữ liệu được thực hiện nhờ sử dụng các ngắt phần cứng của T-Engine ở một trong 2 chế độ: POLLING hoặc DMA Dưới đây là lưu đồ thực hiện việc ghi âm sử dụng chip UDA1342 Chi tiết về lập trình cho chip UDA1342 trên T-Engine xin xem thêm phần phụ lục A
Cần lưu ý rằng do chip UDA1342 chỉ hỗ trợ tần số lấy mẫu tối thiểu là 44100Hz, nên nếu giữ nguyên tần số lấy mẫu này thì tốc độ xử lý sẽ rất chậm do phải xử lý tính toán với số mẫu rất lớn (44100 mẫu / giây) mà điều này thực sự không cần thiết với bài toán nhận dạng do thông tin thực sự tập trung chủ yếu trong vùng tần số thấp
từ khoảng 5000Hz trở lại, vì vậy trong quá trình ghi âm tín hiệu tiếng nói sau khi được trả về từ UDA1342 sẽ được lấy mẫu lại với tần số 11025Hz nhằm làm tăng tốc
Tín hiệu tiếng nói sau khi lấy mẫu lại
Trang 21Hình 3.4 – Ghi âm trên T-Engine sử dụng UDA1342
Chờ ngắt Idle từ SSI
Kết thúc
Dừng SSI, ngắt dữ liệu, ngắt lỗi, cho phép ngắt Idle
Đọc dữ liệu từ thanh ghi nhận
dữ liệu
Sử dụng các bit trong SSISR để
tổ chức lại dữ liệu sau khi tràn
EN=0, DMEN=0, UIEN=0, OIEN=0,IIEN=1
EN=1, DMEN=1, UIEN=1, OIEN=1
Chỉ rõ TRMD, EN, SCKD, SWSD, MUEN, DEL, PDTA, SDTA, SPDP, SWSP, SCKP, SWL, DWL, CDNL
Trang 22Bộ lọc hiệu chỉnh
Hình 3.5 – Tín hiệu nguồn
Ta thấy rằng tín hiệu nguồn là tuần hoàn và có độ dốc của phổ năng lượng là -12dB
Do đó trước khi tiến hành các thao tác phân tích đặc trưng người ta cố gắng làm đều phổ để mọi đánh giá sẽ khách quan với mọi tần số Để thực hiện người ta sử dụng một bộ lọc thông cao đối với tín hiệu tiếng nói, thông thường bộ lọc được chọn là:
Một trong những vấn đề quan trọng có ảnh hưởng đến độ chính xác của một hệ thống nhận dạng tiếng nói đó chính là vấn đề dò tìm diểm bắt đầu và kết thúc của một đoạn tín hiệu tiếng nói hay nói cách khác là bài toán loại bỏ khoảng lặng trong
Trang 23tín hiệu Những kết quả tồi tệ của bài toán loại bỏ khoảng lặng, ví dụ như: tín hiệu tiếng nói bị cắt cụt quá nhiều hoặc có lẫn quá nhiều khoảng lặng sẽ làm sai lệch kết quả nhận dạng Bài toán này thoạt nghe có vẻ tầm thường nhưng thực tế lại là một trong những bài toán rất khó trong thực tế đặc biệt là trong những môi trường có độ
ồn cao, mặt khác tốc độ cũng là một vấn đề khi thực hiện các giải thuật loại bỏ khoảng lặng thời gian thực, để không xảy ra khả năng bị mất mẫu khi ghi âm có kết hợp dò tìm khoảng lặng thì tốc độ thực thi của giải thuật phải không được phép chậm hơn tốc độ lấy mẫu, tức là không quá 1 giây xử lý 44100 mẫu trên T-Engine,
đây thực sự cũng là một trong những bài toán tối ưu tương đối khó khăn so với việc cài đặt các hệ nhận dạng trên máy tính PC
Thông thường bài toán này được giải quyết nhờ sử dụng hàm năng lượng ngắn hạn hoặc tần suất vượt điểm không của tín hiệu Các đại lượng này được tính như sau:
2 1 2 1
1
1 ( ) ( ) (3.2)
n m L m S
n m L m s
s
W ( ) m = P ms( )(1 − Z m Ss( )) (3.6)c
Trang 24Với giá trị Sc cỡ khoảng 1000
Ngưỡng kích hoạt cho hàm W được tính bởi: tW = µ αδw + w, trong đó µ, δ tương
ứng là giá trị trung bình và phương sai của W tính cho 10 khung tín hiệu đầu tiên, α
là một hằng số được định nghĩa bởi: α = 0.2 δW0.8 Với các định nghĩa trên thì hàm quyết định ngưỡng tín hiệu được xác định như sau:
Hình 3.7 – Giải thuật loại bỏ khoảng lặng và các đại lượng
3.2.3 Phân khung và hàm cửa sổ
Do tín hiệu tiếng nói có thể coi là ổn định trong một khoảng thời gian nhỏ cỡ khoảng vài chục ms, nên khi tiến hành các phép phân tích biến đổi trên tín hiệu tiếng nói người ta thường chia tín hiệu tiếng nói thành các đoạn nhỏ cỡ 20-30 ms, công
Trang 25việc đó được gọi là phân khung tín hiệu, các khung tín hiệu liên tiếp có thể chồng nhau khoảng 1/3 độ dài
Hình 3.8 – Phân khung tín hiệu
Tuy nhiên vấn đề khi phân khung đó chính là sai số của các phép biến đổi so với tín hiệu gốc, do đó người ta cố gắng sử dụng hàm cửa sổ để hạn chế các sai số do độ dài hữu hạn của tín hiệu gây ra trong các phép biến đổi Hàm cửa sổ thường được dung là Hamming được cho bởi công thức sau:
2 k w(k) = 0.54 - 0.46cos( ) (3.8)
K - 1
π
Hình 3.9 – Hàm cửa sổ Hamming
Trang 26Áp dụng hàm cửa sổ Hamming tín hiệu tại đầu ra của cửa sổ được tính như sau:
• Phương pháp này thực sự khai thác tương đối tốt các đặc tính của tuyến
âm, trong khi đó như ta đã biết các đặc tính của tuyến âm là một trong những yếu tố quyết định âm thanh được phát ra
• Các tính toán tương đối đơn giản dễ kiểm soát
• Thực tế đã chứng minh rằng các tham số đo được thực sự tốt cho các ứng dụng nhận dạng tiếng nói
Bên cạnh việc phân tích các tham số đặc trưng của tín hiệu nói trên (ta gọi là các tham số tĩnh) thì người ta còn quan tâm đến biến thiên của chính các tham số này theo thời gian hay chính là đạo hàm cấp một và đạo hàm cấp hai của tham số (ta gọi
là các tham số động) và năng lượng tín hiệu
Trước hết để hiểu rõ hơn về cái gọi là đặc trưng của tín hiệu tiếng nói ta sẽ giới thiệu qua phương pháp xư lý đồng hình là một trong những phương pháp dùng để phân tích tham số của tuyến âm độc lập so với nguồn âm
Phương pháp xử lý đồng hình.
Như ta đã biết âm được phát ra có thể coi là kết quả của 2 giai đoạn chính:
• Giai đoạn một: Luồng không khí từ phổi làm cho dây thanh rung tạo ra sự thay đổi áp suất hình thành song âm, ta gọi các thành phần tham gia giai đoạn này là nguồn âm
• Giai đoạn hai: Khoang miệng, khoang mũi…Hình thành một hệ thống cộng hưởng tác động đến song âm, tao gọi hệ thống này là tuyến âm
Trang 27Đối với các âm khác nhau có thể coi nguồn âm không thay đổi, sự thay đổi chính là
do hình dạng tuyến âm thay đổi Như vậy có thể nói các đặc điểm của tuyến âm chính là những tham số đặc trưng cho các âm khác nhau, do đó việc phân tách độc lập tuyến âm và nguồn âm là một bài toán quan trọng trong việc phân tích tham số đặc trưng
Nếu coi tuyến âm như một bộ lọc có đáp ứng xung h(n) và nguồn âm như một chuỗi xung đơn vị tuần hoàn u(n) thì tín hiệu tiếng nói được s(n) được tính bởi:
Trang 28* * *
*
*
( ) ( ) (n) ( ) + (n) ( ) = (n) ( ) (3.15) = H ( )
s n c n u c n h c n
h c n n
=
Bằng cách biến đổi FFT đại lượng H*(n) ta có được đáp ứng tần số của tuyến âm
Phương pháp phân tích p hổ Mel (MFCC)
Trong phần 2 chúng ta đã chỉ ra rằng con người không cảm thụ một cách tuyến tính với mọi tần số Do đó thay vì sử dụng thang tần số Hz người ta chuyển đổi sang một thang tần số khác: Bark hoặc Mel Sau đây chúng ta chỉ xét thang Mel
Hình 3.11 – Chuyển đổi thang tần số Mel-Hz
Khi áp dụng thang Mel trong phân tích phổ người ta thường sử dụng các bộ lọc thông dải tam giác, các băng lọc này được xây dựng như sau:
• Tính giá trị cực đại cực tiểu của thang Mel ứng với tần số (Hz) nhỏ nhất
và lớn nhất (Ví dụ sử dụng dải tần số 0…5000Hz)
• Chia dải miền tần số Mel thành K băng đều nhau với K là số lượng các
bộ lọc thông dải, FMel(k) k = 0…K là các điểm chia
• Tính FHz(k) tương ứng với FMel(k) như công thức (3.17)
Trang 29Các hệ số của bộ lọc thông giải thứ k được tính bởi:
0 [ 1]
2( - [ - 1]
[ 1] [ ]( [ 1] [ 1])( [ ] [ 1])
[ ]
2( [ + 1]- )
[ ]( [ 1] [ 1])( [ ] [ 1])
Hình 3.12 – Các cửa sổ tam giác trên miền tần số
Hình 3.13 – Giới hạn của các cửa sổ tam giác trên miền tần số
Trang 30Áp dụng các bộ lọc trên với phổ tín hiệu trên miền tần số (X[k]) ta thu được các hệ
sô phổ Mel(S[m]):
1 2 0
[ ] log [ ] [ ] 0 (3.19)
N
m k
S m − X k H k m M
=
Phương pháp phân tích tham số phổ Mel được mô tả như sau:
• Biến đổi FFT tín hiệu tiếng nói đầu vào
• Tính toán và áp dụng các bộ lọc tam giác, ta được S[m]
• Biến đổi cosine S[m] ta được c[n]
• Nhân trọng số (Sẽ trình bày ở phần IV - Hiệu chỉnh kết quả)
Hình 3.14 – Phân tích tham số đặc trưng
3.2.5 Đánh giá năng lượng
Nhiều thử nghiệm trong lĩnh vực nhận dạng tiếng nói đã chứng minh rằng, năng lượng tín hiệu cũng là một tham số mở rộng rất hữu ích cho việc nâng cao độ chính xác của hệ thống nhận dạng Do đó với mỗi một khung tín hiệu người ta sử dụng thêm một đại lượng:
1 2 0
(3.20)( , )
K m
k
=
Trang 313.2.6 Các tham số tức thời (tham số động)
Sự biến thiên của phổ tín hiệu giữ một vai trò quan trọng đối với việc cảm thụ tiếng nói của con người, do đó các hệ số đạo hàm bậc nhất và đạo hàm bậc hai là những tham số không thể thiếu trong một hệ thống nhận dạng tốt Một trong những phương pháp đơn giản để tính các tham số đạo hàm là lấy hiệu 2 giá trị liên tiếp Khi đó ta
có công thức:
(3.21)( , ) ( , 1) ( , )
Để thực hiện ta dung một đa thức (thông thường bậc 2) để nội suy đường cong chứa các giá trị cần đạo hàm sau đó đạo hàm của đa thức chính là đại lượng ta cần tính
Trang 32h 1
h 2
h 3
p P P
p h
Trang 33Hình 3.16 – Nội suy các giá trị rời rạc
Trang 34Với đa thức nội suy h 1 + h 2 p + h 3 p 2thì các giá trị đạo hàm được tính bởi:
(2)
3 (3.30)( , ) 2 ( , )
h
3.2.7 Hiệu chỉnh kết quả
Sau các bước trên ta đã thu được tập các tham số đầy đủ, tuy nhiên trước khi được
sử dụng cho một hệ thống nhận dạng các tham số này sẽ được đưa qua một khâu đánh trọng số nhằm làm tăng hoặc giảm vai trò của các tham số tương ứng Ví dụ nếu có nhiễu tần số thấp thì thông thường người ta sẽ tìm cách làm giảm giá trị một vài hệ số Mel đầu tiên Bước đánh trọng số được cho bởi công thức:
1 0
(3.31)
1 ( ) M h( , )
Trang 353.2.8 Kết luận
Toàn bộ các quá trình trên được minh hoạ bởi hình sau:
Hình 3.17 – Sơ đồ khối chức năng phân tích tham số đặc trưng
3.3 Ứng dụng mô hình Markov trong nhận dạng tiếng nói.
Nhận dạng mẫu là một phần không thể thiếu trong hệ thống nhận dạng tiếng nói Trải qua nhiều năm phát triển những mô hình nhận dạng mẫu ngày càng trở nên phong phú và phức tạp, nhiều mô hình nhận dạng mẫu đã chứng minh được tính hiệu quả và thực tế của nó trong nhiều lĩnh vực như: Mạng nơ-ron, Support Vector Machine(SVM), Gausian Mixture Model(GMM), Hidden Markov Model(HMM), ngoài ra các mô hình lai giữa chúng cũng được sử dụng nhiều Trong số đó mô hình Markov ẩn là một trong những mô hình được sử dụng nhiều nhất cho nhận dạng tiếng nói trong những năm gần đây Do tính hiệu quả của HMM đã được chứng minh qua nhiều thí nghiệm về nhận dạng tiếng nói nên tác giả đã quyết định sử dụng HMM để cài đặt ứng dụng cho đề tài của mình Phần này sẽ trình bày một cách chi tiết cơ sở toán học và cac giải thuật cần thiết để xây dựng các HMM cho nhận dạng tiếng nói
Trang 363.3.1 Tổng quan về HMM
Mô hình Markov ẩn là một mô hình thống kê có khả năng ghi nhớ các biến đổi theo thời gian của các đại lượng không ổn định, ví dụ như trong lĩnh vực nhận dạng tiếng nói thì đại lượng đó là một chuỗi các tham số đặc trưng của tín hiệu tiếng nói Mô hình Markov ẩn (HMM) được xây dựng trên cơ sở lý thuyết của chuỗi Markov và các tiến trình Markov
Các tiến trình Markov rời rạc.
Xét một mô hình gồm N trạng thái: S1 … SN như mô tả trong hình dưới, giả sử rằng tại các thời điểm rời rạc t = 1, 2, 3…T mô hình sẽ có các chuyển đổi từ trạng thái hiện tại đến các trạng thái khác với các xác suất chuyển đổi cho trước Một chuỗi các chuyển đổi của mô hình được coi là một tiến trình ngẫu nhiên
Hình 3.18 – Mô hình chuyển đổi ngẫu nhiên
Như vậy xác suất để tại thời điểm t mô hình ở tại trạng thái Sj nào đó sẽ phụ thuộc vào tất cả các trạng thái trước đó, người ta gọi đó là một tiến trình Markov đầy đủ Tuy nhiên trong thực tế để đơn giản hoá việc nghiên cứu các tiến trình ngẫu nhiên thì người ta giả thiết rằng các tiến trình này là các tiến trình Markov rời rạc bậc nhất nghĩa là xác suất tại một thời điểm chỉ phụ thuộc vào thời điểm trước đó Biểu diễn bằng công thức ta có:
Trang 37ta thấy rằng đầu ra là một chuỗi các trạng thái và mỗi trạng thái trong các trường hợp khác nhau được gán cho các sự kiện ngẫu nhiên nhất định Xét ví dụ mô hình 3 trạng thái sau dùng để dự báo thời tiết, trong đó mỗi trạng thái được gán cho các sự kiện khac nhau:
Biết rằng thời tiết ngày đầu tiên là nắng (q1 = S3), chúng ta cần tính xác suất để trong
7 ngày tiếp theo thời tiết sẽ diên biến theo một quy luật cho trước ví dụ: nắng - nắng
- mưa - mây Một cách hình thức hơn ta gọi quy luật cần quan sát là một chuỗi quan sát O có dạng O = {S3, S3, S3, S1, S1, S3, S2, S3}như vậy xác suất cần tính có dạng:
P(O|Mô hình) = P(S3, S3, S3, S1, S1, S3, S2, S3|Mô hình)
= P(S3) P(S3| S3) P(S3| S3) P(S1| S3) P(S1| S1) P(S3| S1) P(S2| S3) P(S3| S2)
= π3 a33 a33 a31 a11 a13 a32 a23
Trang 38= 1.536 x 10-4 (3.36)Trong đó: πi = P(q1 = Si).
Mô hình Markov ẩn.
Trong phần trên ta đã trình bày về mô hình Markov với các trạng thái quan sát được,
có nghĩa là mỗi trạng thái ứng với một sự kiện thực tế nào đó hay nói cách khác tại mỗi trạng thái ta quan sát được chắc chắn một hiện tượng nào đó Trong phần này
và các phân tiếp theo sau đây ta sẽ tìm hiểu về một mô hình Markov khác trong đó các quan sát được chỉ mang tính xác suất chứ không tuyệt đối rõ ràng như trên (ví
dụ tại trạng thái số 1 của bài toán thời tiết trên ta chỉ có xác suất 0.5 cho hiện tượng mưa chứ không chắc chắn là mưa), mô hình đó được gọi là mô hình Markov ẩn Để
có thể hiểu rõ hơn sự khác nhau giữa mô hình Markov ẩn và mô hình Markov quan sát được ta xét ví dụ sau: có một người tung một số không biết trước các đồng xu phía sau một màn chắn và quan sát các mặt lật(L) hoặc úp(U) của các đồng xu, người đó chỉ cho bạn biết một chuỗi kết quả tung LLUULLUU… Bài toán đặt ra là xây dựng một mô hình HMM có khả năng dự đoán chính xác nhất các chuỗi quan sát được đưa ra Ở đây có nhiều phương án có thể được đưa ra, sau đây ta chỉ xét 2 phương án đặc trưng cho 2 loại mô hình Markov mà ta đang cần phân biệt như đã nói trên
Phương án 1: Sử dụng 2 trạng thái một trạng thái lật và một trạng thái úp.
Hình 3.19 – Mô hình quan sát được
Trong trường hợp này tham số cần xác định duy nhất của mô hình là P(L) do ta đã
có P(U) + P(L) = 1 Như ta thấy tại mỗi trạng thái của mô hình ta luôn quan sát đựợc một trạng thái xác định lật hoặc úp, do đó mô hình này là quan sát được
Phương án 2: Vẫn sử dụng 2 trạng thái nhưng mỗi trạng thái đại diện cho một đồng
xu (trong trường hợp này ta đang giả thiết chỉ có 2 đồng xu, giả thiết nàycó thể đúng
Trang 39hoặc không đúng, điều đó sẽ ảnh hưởng đến độ chính xác của mô hình mà ta xây dựng)
Hình 3.20 – Mô hình ẩn
Trong trường hợp này bộ tham số cần xác định là: P1, P2, ai j Ta cũng thấy rằng tại mỗi trạng thái của mô hình ta chỉ có thể đoán được trạng thái lật hoặc úp với xác suất nào đó, do đó mô hình này là mô hình ẩn Thông thường mô hình ẩn có độ chính xác cao hơn mô hình quan sát được rất nhiều, nên mô hình ẩn thường được sử dụng nhiều trong thực tế
Như vậy chúng ta đã đưa ra những ví dụ tương đối chi tiết và dễ hiểu về mô hình Markov ẩn, tóm lại ta thấy rằng một mô hình Markov ẩn bao gồm các thành phần cơ bản như sau: λ = (N, Π, A, B) trong đó:
N - Số trạng thái
A = {ai j} - Xác suất chuyển đổi
Π = {πi}- Xác suất phân bố trạng thái đầu
B = {bi(j)}– Xác suất quan sát được các ký hiệu Oj (hiện tượng) ở các trạng thái qi
Ba vấn đề cơ bản của HMM.
Vấn đề 1: Cho một chuỗi quan sát tuần tự O=(o o o o1 2 3 )T , và một mô hình
( , , )A B
λ π= tính xác suất quan sát được chuỗi trên mô hình: P(O|λ)
Vấn đề 2: Cho một chuỗi quan sát tuần tự O=(o o o o1 2 3 )T , và một mô hình ( , , )A B
λ π= , tìm chuỗi chuyển trạng thái Q q q q= 1 2 Nđể mô hình quan sát được chuỗi với xác suất lớn nhất
Trang 40Vấn đề 3: Điều chỉnh tham số của mô hình sao cho xác suất trong bài toán một là
lớn nhất
Lời giải cho vấn đề 1 – đánh giá xác xuất.
Chúng ta muốn tính xác suất của chuỗi quan sát O=(o o o o1 2 3 )T , với một mô hình λ,
có nghĩa là tính P(O|λ) Cách đơn giản nhất là tính tất cả các khả năng có thể của dãy chuyển trạng thái
Ví dụ: Với 1 chuỗi trạng thái tuần tự là: Q q q q= 1 2 N với q 1 là trạng thái khởi đầu Xác suất của chuỗi quan sát O được tính là:
ta cần tính 2.100.5100 ≈ 1072 phép tính Để giảm bớt số phép tính cần thực hiện trong bài toán một người ta đưa ra 2 giải thuật theo tư tưởng quy lạp đó là:
• Giải thuật tiến
• Giải thuật lùi