Ứng dụng neural network vào nhận dạng tiếng nói trên kit arm cortex-M3
Bạn đang xem tài liệu "Ứng dụng neural network vào nhận dạng tiếng nói trên kit arm cortex-M3", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
ung_dung_neural_network_vao_nhan_dang_tieng_noi_tren_kit_arm.pdf
Nội dung text: Ứng dụng neural network vào nhận dạng tiếng nói trên kit arm cortex-M3
- ỨNG DỤNG NEURAL NETWORK VÀO NHẬN DẠNG TIẾNG NÓI TRÊN KIT ARM CORTEX-M3 SPEECH RECOGNITION USING NEURAL NETWORKS ON ARM CORTEX-M3 KIT Lê Hoàng Hân1, Lê Tiến Thường2 1Trường Đại Học Sư Phạm Kỹ Thuật Tp Hồ Chí Minh, 2Trường Đại Học Bách Khoa Tp Hồ Chí Minh Tóm tắt: Lĩnh vực nhận dạng tiếng nói đã được nghiên cứu từ lâu để phát triển thành một công cụ hữu ích nhằm phục vụ tốt cho thực tiễn ngày nay. Để xây dựng thành một hệ thống nhận dạng hoàn chỉnh đòi hỏi phải có một quá trình phức tạp bao gồm các vấn đề về trích đặc trưng tiếng nói, sử dụng các đặc trưng này vào mô hình nhận dạng, mô hình nhận dạng rất đa dạng nhưng ở đây sử dụng mô hình Neural Network vì nó mô hình hóa tiếng nói rất tốt và cho kết quả nhận dạng khá cao. Trong thực tế, công nghệ nhận dạng tiếng nói có thể được sử dụng trong các hệ thống tổng đài, hoặc các hệ thống công ích phục vụ cho người tàn tật, hoặc các hệ thống bảo mật. Tuy nhiên trong thực tế tồn tại rất nhiều vấn đề về nhiễu loạn mà nó có thể ảnh hưởng rất lớn đến quá trình nhận dạng tiếng nói của hệ thống. Bài báo này chỉ xây dựng hệ thống từ vựng cỡ nhỏ, và được dùng để điều khiển robot nhằm thử nghiệm của hệ thống. Kết quả nhận dạng khoảng hơn 90% trong điều kiện môi trường ít nhiễu và khoảng 80% trong điều kiện môi trường có nhiều nhiễu hơn. Abstract: The purpose with this final master degree project was to develop a speech recognition tool, to make the technology accessible. The development includes an extensive study of Artifactial Neural Network, which is currently the state of the art in the field of speech recognition. A speech recognizer is a complex machine developed with the purpose to understand human speech. In real life this speech recognition technology might be used to get a gain in traffic security or facilitate for people with functional disability. The technology can also be applied to many other areas. However in a real environment there exist disturbances that might influence the performance of the speech recognizer. The report includes an performance evaluation in different noise situations, in a robot environment. The result shows that the recognition rate varies from 90%, in a noise free environment, to 80% in a more noisy environment. 1. Giới thiệu hợp xử lý thông tin ở các mức cao và cao nhất là tri thức. Nhận dạng tiếng nói bao gồm cả nhận dạng âm tiết rời rạc, liên tục, nhận dạng người nói, ngôn ngữ Các nghiên cứu về nhận dạng tiếng nói dựa trên nói và cao cấp hơn có thể nhận dạng được trạng thái ba nguyên tắc cơ bản: tâm lý của người nói. Có rất nhiều ứng dụng của Tín hiệu tiếng nói được biểu diễn chính xác nhận dạng tiếng nói trong đời sống xã hội như xác bởi các giá trị phổ trong một khung thời gian nhận thông tin (liên quan đến security), dịch tự ngắn (short-term amplitude spectrum). Nhờ động, các hệ thống phone banking, voice mail, vậy ta có thể trích ra các đặc điểm tiếng nói Tuy nhiên cái mà mọi người cố gắng nghiên cứu là từ những khoảng thời gian ngắn và dùng các làm sao máy tính có thể giao tiếp với con người đặc điểm này làm dữ liệu để nhận dạng tiếng thông qua tiếng nói. Nhận dạng tiếng nói là một nói. lĩnh vực của xử lý ngôn ngữ tự nhiên (Natural Language Processing), tức là về cơ bản nhận dạng Nội dung của tiếng nói được biểu diễn dưới tiếng nói phụ thuộc vào ngôn ngữ nói. Do vậy ngôn dạng chữ viết, là một dãy các ký hiệu ngữ ngữ nhận dạng tiếng Việt rất khác so với tiếng Anh âm. Do đó ý nghĩa của một phát âm được bảo và các thứ tiếng khác. Một ví dụ đơn giản để có thể toàn khi chúng ta phiên âm phát âm thành hình dung, nếu sử dụng các engine nhận dạng tiếng dãy các ký hiệu ngữ âm. Anh có sẵn (bao gồm cả software như speech Nhận dạng tiếng nói là một quá trình nhận engine trong Microsoft Office hay hardware như thức. Thông tin về ngữ nghĩa (semantics) và một số vi mạch xử lý tiếng nói đang bán trên thị suy đoán (pragmatics) có giá trị trong quá trường) thì hiệu quả đối với tiếng Việt là khá thấp. trình nhận dạng tiếng nói, nhất là khi thông Một số không thể phân biệt được như chuẩn, chuẫn, tin về âm học là không rõ ràng. [1] chuân, (vì tiếng Việt có thanh điệu - tonal language, còn tiếng Anh thì không), vì vậy nhận 1.1. Ngoài nước dạng tiếng Việt chỉ có thể do người Việt làm. Nhận Hiện nay, trên thế giới có rất nhiều hệ thống dạng và tổng hợp tiếng nói không thể dựa trên các nhận dạng tiếng nói đã và đang được ứng dụng rất mức xử lý thấp (signal processing) mà còn phải kết hiệu quả như: Via Voice của IBM, Spoken Toolkit
- của CSLU (Central of Spoken Laguage được thực hiện như Hình 1. Vì vậy, chúng ta phải Understanding) trong tiếng Anh, mô hình Fujisaki tiến hành theo các bước sau: được trong hệ thống của tiếng Nhật, mô hình MFGI 1. Trích chọn đặc trưng: mỗi một khung phổ tín (Mixdorff – Fujisaki model of German Intonation) hiệu tiếng nói trong miền thời gian sẽ được trong tiếng Đức, phân tích một vector đặc trưng, nó sẽ được sử Theo thống kê và dự báo về thị trường công dụng để huấn luyện mô Hình ANN. nghệ thông tin và truyển thông năm 2009, chi tiêu 2. Lượng tử hóa vector: kết quả của việc trích cho nghiên cứu, phần cứng, phần mềm liên quan đến công nghệ xử lý tiếng nói trong năm 2008 trên chọn đặc trưng tiếng nói là một dãy các vector toàn thế giới đã vượt con số 5 tỷ đô-la Mỹ. đặc trưng của chuỗi các đặc trưng phổ tín hiệu tiếng nói. Do đó, chúng ta có thể ánh xạ các 1.2. Trong nước vector này thành một tập các vector rời rạc Đề tài “Thiết kế chíp nhận dạng tiếng nói Việt nhằm mục đích làm giảm số lượng tính toán Nam trên nền công nghệ FPGA” của nhóm nghiên cho việc huấn luyện hay nhận dạng trên mô cứu trường đại học Bách khoa thành phố Hồ Chí hình. Minh do TS. Hoàng Trang vào năm 2012 làm 3. Huấn luyện ANN: với mỗi một từ trong bộ từ trưởng nhóm đã góp phần “cứng hóa” thành công các giải thuật phức tạp trong nhận dạng tiếng Việt. vựng chúng ta phải xây dựng một mô Hình Trên phần cứng, có ba vấn đề rất quan trọng cần ANN. Chúng ta phải ước tính được các thông quan tâm, bao gồm: độ chính xác nhận dạng, tài số của mô Hình để xác lập khả năng lớn nhất nguyên phần cứng và tốc độ tính toán. Ba yếu tố của tập vector huấn luyện của mỗi từ. này thường được cân nhắc chọn lựa kỹ bởi khó có 4. Nhận dạng: mỗi từ trong bộ từ vựng được nói thể đạt được tối ưu trên cùng lúc cả ba yếu tố trên. sẽ được nhận dạng theo qui trình như trong Vấn đề nhận dạng tiếng nói tiếng Việt đã có Hình 1, chuỗi quan sát thu được thông qua phân nhiều công trình nghiên cứu nhưng chưa được triển tích đặc trưng và bộ vector đã được lượng tử khai thực hiện tốt trên phần cứng là do ba yếu tố hóa. Tiếp theo tính toán khả năng cho tất cả các trên. Bên cạnh đó, nhận dạng tiếng nói tiếng Việt mô hình và sau đó là lượng chọn từ mà nó có trên nền công nghệ FPGA có ưu điểm là tính toán nhanh nhưng nền công nghệ này chưa được ứng khả năng cao nhất. dụng nhiều trên các thiết bị di động ngày nay như: 2.1. Trích đặc trưng điện thoại di động, máy tính bảng, robot dịch vụ, Smart TV Vì vậy, mục tiêu của đề tài là sẽ triển Sơ đồ giải thuật tổng quát phân tích thông tin khai trên vi điều khiển ARM Cortex-M3, đây là vi tiếng nói theo phương pháp MFCC như Hình 2. Tín điều khiển đủ mạnh để thực hiện nhiệm vụ trên và hiệu tiếng nói x(n) sau khi phân tích thông tin sẽ thu được ứng dụng trong nhiều thiết bị di động hiện được đặc trưng dạng các vector f (n;m). Bộ vector nay, đặc biệt là chúng ta có thể tìm bộ KIT ARM x Cortex-M3 dễ dàng trên thị trường. fx(n;m) có M vector (m = 0, 1, , M – 1) và mỗi vector có kích thước là N (n = 0, 1, , N – 1). [3] 1.3. Mục đích nghiên cứu 2.1.1. Tiền xử lý Đề tài này nghiên cứu thử nghiệm một hướng nhận dạng tiếng nói – tiếng Việt dựa trên việc trích Bước này ta thực hiện lọc nhiễu, nhấn tín hiệu đặc trưng của tiếng nói bằng phương pháp MFCC và tách tiếng nói khỏi khoảng lặng. Xem Hình 3. (Mel–Frequency Ceptrums Coefficients), và nhận Nhấn mạnh tín hiệu (pre-emphasis). Trong bước dạng bằng mô hình ANN (Artificial Neural Networks). Đồng thời, một mô hình điều khiển xử lý đầu tiên này, tín hiệu được đưa qua một bộ bằng tiếng nói – tiếng Việt được xây dựng với bộ từ lọc số: vựng nhỏ, thiết lập hệ thống điều khiển bằng tiếng H(z) = 1 – az-1 (6.1) (1) nói với một tập lệnh cố định. Tập lệnh này dùng để Trong đó a là hệ số nhấn mạnh, thường có giá trị điều khiển Robot, và mô hình điều khiển xe bằng là 0,97. Bộ lọc có tác dụng tăng cường tín hiệu tại tiếng nói hoàn chỉnh là một ứng dụng thực tế mang tính thử nghiệm đề tài. tần số cao (trên 1KHz) với hai lý do chính: [8] Giọng nói có sự suy giảm khoảng 20dB/decade 2. Thiết kế hệ thống nhận dạng tiếng nói khi lên tần số cao do đặc điểm sinh lý của hệ trên KIT ARM Cortex-M3 thống phát âm của con người. Bước xử lý này Hệ thống nhận dạng thực hiện tác vụ nhận dạng sẽ tăng cường tín hiệu lên một giá trị gần các từ đơn. Do đó, giả sử chúng ta có R từ cần được 20dB/decade để khắc phục sự suy giảm này, nhận dạng và mỗi từ đó sẽ được mô hình hóa bằng một mạng ANN, sau đó qui trình nhận dạng sẽ
- Hệ thống thính giác của con người nhạy cảm trong khoảng thời gian ngắn, hoặc ước tính công hơn với vùng tần số cao, bước xử lý này nhấn suất trong khoảng thời gian ngắn, và dò điểm 0. mạnh vùng tần số cao, trợ giúp cho quá trình Nhưng qua quá trình nghiên cứu và thử nghiệm tác mô Hình hoá âm thanh sau này của hệ thống giả nhận thấy rằng sự kết hợp giữa phương pháp nhận dạng. ước tính công suất trong khoảng thời gian ngắn và tỉ lệ qua điểm zero cho kết quả tốt hơn. Tách tiếng nói khỏi nền nhiễu (voice activation Phương pháp này dựa vào tính chất năng lượng detection). Nhiệm vụ của khối này là xử lý tín hiệu của tín hiệu tiếng nói thường lớn hơn năng lượng từ micro, dùng kỹ thuật xử lý đầu và cuối để phát của tín hiệu nhiễu và tỉ lệ qua điểm zero của nhiễu hiện tín hiệu tiếng nói và phần tín hiệu nhiễu. Từ đó sẽ lớn hơn tín hiệu tiếng nói. Hình 4 cho thấy mối ta có thể tách tiếng nói ra khỏi nền nhiễu (chỉ thu quan hệ giữa tín hiệu thu được, giá trị của hàm năng lượng thời gian ngắn và tỉ lệ qua điểm zero. [5] tín hiệu tiếng nói mà không thu tín hiệu nhiễu nền). Vấn đề tách tiếng nói khỏi khoảng im lặng cũng có nhiều cách thực hiện như: ước tính năng lượng Trríícchh cchhọọnn Xââyy ddựựnngg ccơơ đđặặcc ttrrưưnngg ssởở hhuuấấnn MFCC lluuyyệệnn mạạnngg L n g n ệ n Thử nghiệm ấ Thử nghiệm D y ạ u DL thử nghiệm Độ chính xác S u h l m mạạnngg C Tiiềềnn xxửử llýý n ệ ((ttáácchh kkhhooảảnngg y Tín hiệu tiếng nói u Tín hiệu tiếng nói l llặặnngg,, llọọcc n ấ nnhhiiễễuu )) u h L D Xââyy ddựựnngg vvàà hhuuấấnn lluuyyệệnn MLP mạạnngg Trríícchh cchhọọnn Lựựaa cchhọọnn Tíínnhh xxáácc đđặặcc ttrrưưnngg xxáácc ssuuấấtt llớớnn Từ được nhận dạng ssuuấấtt MFCC nnhhấấtt Hình 1. Sơ đồ khối mô Hình huấn luyện và nhận dạng từ đơn Hình 2. Sơ đồ giải thuật phương pháp phân tích thông tin tiếng nói Hình 3. Tiền xử lý tín hiệu
- Hình 4. Phân tích khoảng lặng của tiếng nói Với một cửa sổ kết thúc tại mẫu thứ m, hàm Tiếp theo là tính ngưỡng quyết định để xác năng lượng thời gian ngắn Es1(m) được xác định điểm đầu và điểm cuối của tiếng nói. Để định bởi: xác định được ngưỡng này, ta phải thu tín hiệu nhiễu nền xung quanh. Giả định rằng ta thu 10 ( ) ( ) ∑ ( ) khung nhiễu nền và tính giá trị Ws1 như sau: Ws1(m) = Ps1(m) · (1 − Zs1(m)) Sc Công suất tương ứng là: Trong đó, Sc là hệ số dùng để tránh các giá ( ) ∑ ( ) ( ) trị nhỏ, ở đây chọn S = 1000. Ngưỡng nhiễu c nền sẽ là: Tỷ lệ qua điểm zero (zero crossing rate) là một thông số cho biết số lần mà biên độ tín Trong đó, là trị trung bình và là hiệu đi qua điểm zero trong một khoảng thời phương sai của Ws1(m) được tính trong 10 gian cho trước được xác định bởi: khung nhiễu nền. α là hằng số và phụ thuộc | ( ( )) ( ( ))| ∑ ( ) vào đặc điểm của nhiễu nền. Sau quá trình ( ) kiểm tra thực nghiệm thì giá trị α tốt nhất được Trong đó: xác định là: ( ) ( ( )) { ( ) Hàm dò tiếng nói có thể thực hiện như sau: Mỗi khung có L mẫu. Chú ý rằng chỉ sổ ( ) ( ) { trong các hàm này là m, vì việc tính toán ( ) không phải thực hiện tại mỗi mẫu (chỉ tính sau mỗi khung mẫu). Hình 5. Tách tiếng nói khỏi khoảng im lặng theo VAD
- Hình 6. Từ tiếng nói có khoảng im lặng tách thành tiếng nói không có khoảng lặng 2.1.2. Tạo khung và cửa sổ hóa tín hiệu Mỗi khung có chiều dài là K mẫu, các Bước tiếp theo là chia tín hiệu x1(n) thành khung cách nhau một khoảng P mẫu, xem các khung và cửa sổ hóa mỗi khung, xem Hình8. Hình7. [3] Giá trị cho K và P lần lượt là 160 mẫu và 50 mẫu tương ứng với thời gian lần lượt là 20ms và 5ms tại tần số lấy mẫu là 8kHz [11]. Bằng cách đó ta chia x1(n) thành M vector, mỗi vector có chiều dài K, khi đó ta nhận được x1(k;m), trong đó k = 0, 1, , K – 1 và m = 0, 1, , M – 1. Tiếp theo ta thực hiện cửa sổ hóa Hình 7. Frame blocking và Windowing mỗi khung để giảm gián đoạn tín hiệu ở hai đầu của khung. Cửa sổ thường được sử dụng là Tạo khung tín hiệu (framing). Tín hiệu cửa sổ Hamming. Nó được tính như sau: tiếng nói luôn luôn biến thiên theo thời gian, ( ) ( ) ( ) tuy nhiên, trong khoảng thời gian khoảng 20- 25ms, tín hiệu tiếng nói được coi là tương đối Tất cả các khung x1(k;m) được nhân với ổn định. Do đó, tín hiệu thường được chia w(k) để được x2(k;m). thành các khung kích thước 20 – 25 ms với vùng gối lên nhau khoảng 5 – 10 ms. Hình 8. Chia khung chuỗi tín hiệu
- Generalized Hamming Window: (1- )- *cos(2 n/(K-1)), 0 k K-1 1 =0 0.9 =0.05 =0.1 0.8 =0.15 0.7 =0.2 =0.25 0.6 =0.3 =0.35 0.5 =0.4 =0.45 0.4 =0.5 0.3 0.2 0.1 0 0 10 20 30 40 50 60 70 80 90 100 Hình 9. Cửa sổ Hamming với các hệ số α khác nhau Original signal 1 0.5 0 -0.5 -1 50 100 150 200 250 300 350 400 450 500 Windowed signal 1 0.5 0 -0.5 -1 50 100 150 200 250 300 350 400 450 500 Hình 10. Tín hiệu tiếng nói sau khi được cửa sổ hóa so với ban đầu Hình 11. Các bước thực hiện MFCC 2.1.3. Trích đặc trưng biến nhất. Các bước chính để thực hiện phương pháp này như được mô tả ở Hình11. Đây là bước quan trọng, được thực hiện để a. Biến đổi Fourier rời rạc (Discrete trích các thông tin chính từ các khung tiếng Fourier Transform - DFT) nói. Phương pháp MFCC được sử dụng phổ
- Phép biến đổi Fourier rời rạc (DFT) chuyển (6) tín hiệu âm thanh từ miền thời gian sang miền tần số. Một tín hiệu x (k;m) khi qua biến đổi [ ] ∑ [ ] ( ) 2 DFT sẽ thu được tín hiệu phức miền tần số gồm 2 phần: ReX (kết quả phần thực) và ImX Ở bước này, để thực hiện FFT theo cơ số 4 (kết quả phần ảo). Phương trình của phép biến cho khung tín hiệu tiếng nói với chiều dài 256 đổi DFT: [8] điểm thì ta phải thêm 96 mẫu, vì K = 160 như đã trình bày ở trên. Sau khi thực hiện FFT và [ ] ∑ [ ] ( ) tính biên độ tín hiệu x2(k;m) ta thu được X2(n;m). Original signal Windowed signal 1 1 0.5 0.5 0 0 -0.5 -0.5 -1 -1 50 100 150 200 250 50 100 150 200 250 Energy spectrum (linear scale) Energy spectrum (linear scale) 150 80 60 100 40 50 20 0 0 0 1000 2000 3000 4000 0 1000 2000 3000 4000 Hình 12. Phổ Fourier của tín hiệu gốc và tín hiệu đã cửa sổ hóa b. Mel scale ∑| ( )| ( ) ( ) Lọc theo thang tần số Mel (Mel-frequency bandpass filter). Các bộ lọc số được áp dụng để lọc các tín hiệu theo các giải tần số khác Trong đó ( ) là bộ lọc tam giác nhau. IDCT (Iverse Discrete Cosin Transform). Phản ứng của tai người với các thành phần Giọng nói của con người có phổ khá trơn của tần số là không tuyến tính. Sự khác nhau (smooth) trên miền tần số, do vậy, các giá trị về tần số ở vùng tần số thấp (<1KHz) dễ được năng lượng của các bộ lọc gần nhau có sự nhận biết bởi con người hơn là ở vùng tần số tương quan (correlated) khá gần. Bước xử lý cao. Lọc theo thang tần số Mel mô phỏng tính này biến đổi các giá trị năng lượng thành các chất này bằng cách dùng các bộ lọc được phân hệ số ít tương quan với nhau hơn, các hệ số bố theo một hàm phi tuyến trong khoảng này được gọi là hệ số cepstral. [7] không gian tần số, thông thường là hàm Mel: Ở đây có 12 băng lọc được sử dụng trong dãy tần số 0 – 4000 Hz. Các hệ số phổ mel sau ( ) ( ) ( ) khi được tính sẽ được lấy logarit ngược và biến Như vậy, tiếp theo ta lấy biên độ của đổi cosin rời rạc như sau: ( ) X2(n;m) nhân với các băng lọc tỉ lệ mel. Bước ( ) ( ) này được mô tả theo công thức sau: ( ) ∑ ( ) Trong đó:
- thêm các thông tin về sự sai biệt thời gian, các √ hệ số delta, các hệ số gia tốc (đạo hàm bậc hai của hệ số mel-cepstrum). Ta có thể sử dụng biểu thức sau để tính trực tiếp các hệ số này: √ (Hình 14). [3] { ( ) ( ) ( ( ) ( )) ( ) Với N là số kênh lọc, mk là giá trị năng lượng của mạch lọc thứ k, n là bậc của hệ số Và cepstral. ( )( ) ( ( )( ) ( )( )) ( ) Chỉnh các giá trị cepstral. Giá trị cepstral bậc cao thường có giá trị rất thấp, so với các e. Tóm tắt giá trị cepstral bậc thấp. Sự khác biệt này gây Quá trình rút trích vector đặc trưng tiếng khó khăn cho việc mô Hình hoá dữ liệu, ví dụ nói được mô tả lại như Hình15. như khi sử dụng các hàm mật độ xác suất Như vậy, với mỗi khung 20 ms thì vector Gauss. Do đó các hệ số cepstral cs(n;m) tiếp đặc trưng rút ra theo Hình gồm các thành phần tục được điều chỉnh lại (re-scaled) theo công chính như sau: thức: [3] 1 đặc trưng năng lượng 12 MFCC (mel frequency cepstral ( ) ( ) ( ( )) coefficients) (các hệ số cepstral tần ( ). số mel) c. Tính năng lượng tín hiệu 1 delta đặc trưng năng lượng 12 đặc trưng delta MFCC Thành phần khá quan trọng trong mỗi 1 đặc trưng double – delta năng khung đó là yếu tố năng lượng. Mỗi khung tín lượng hiệu đều có năng lượng riêng và năng lượng 12 đặc trưng double – delta MFCC này được tính theo logarit như sau: Tổng cộng có 39 thứ nguyên đặc trưng. ∑ ( ) ( ) d. Các hệ số delta và gia tốc Biến đổi phổ đóng vai trò quan trọng trong nhận dạng tiếng nói. Do đó chúng ta cần có Triangular filter bank 1 0.5 0 0 500 1000 1500 2000 2500 3000 3500 4000 Frequency (Hz) Triangular filter bank (normalized) 0.01 0.005 0 0 500 1000 1500 2000 2500 3000 3500 4000 Frequency (Hz) Hình 13. Băng lọc tam giác melscale trên miền tần số
- m-1 m m+1 m+2 ch(n;m) δ(1)(n;m) δ(2)(n;m) Hình 14. Tính các hệ số delta Hình 15. Quá trình rút trích đặc trưng 2.1.4. Hậu xử lý Sau đó các vector đặc trưng được chuẩn Sau khi trích được các vector mong muốn, hóa: các vector này có thể được tăng trọng số hoặc ( ) ( ) ̂ ( ) ( ) giảm trọng số để các đặc trưng có tác động Sau bước chuẩn hóa này ta thu được các giá nhiều hoặc ít hơn. Nó có thể được thực hiện trị MFCC hoàn chỉnh. bởi hàm trọng sau: [3] ( ) ( ) ( ) ( ) Bước tiếp theo là chuẩn hóa các vector đặc trưng. Vector trung bình được tính như sau: Hình 16. Các bước hậu xử lý tín hiệu ( ) ∑ ( ) ( ) ̂
- 2.2. Lượng tử hóa vector (tập gồm các dấu tròn xanh lá cây) và cách phân chia (tập các dấu tròn đen) codebook phải Lượng tử hóa vector có thể được bắt đầu tìm là codebook có ra khoảng cách trung bình như sau. Cho một vector nguồn với các thuộc bé nhất (Hình17). [4] tính đã biết, cho một khoảng cách (độ sai lệch), và cho số lượng codevector, tìm một codebook . Hình 17. Minh họa lượng tử hóa vector 2.3. Huấn luyện ANN MFCC tương ứng cũng không có cùng số phần tử. Nhưng đầu vào của MLP lại phải Thu thập và tiền xử lí tín hiệu tiếng nói ở cố định. Do đó phải thực hiện lượng tử hóa giai đoạn huấn luyện được thực hiện bằng vector đặc trưng MFCC bằng cách đưa qua phương pháp thủ công: sử dụng phần mềm ghi Neural Network. Kết quả đầu vào của âm, lọc nhiễu và cắt thành các từ riêng rẽ. Neural Network là một vector 39 thành Bộ dữ liệu xây dựng gồm: phần. Đầu ra mong muốn của dữ liệu nhận 500 file wav 12 bit 8kHz, mỗi file là dạng xác định rất đơn giản: là một vector phát âm của một từ. 26 thành phần (ứng với 26 lớp mẫu). Nếu 5 từ là “tiến”, “lùi”, “trái”, “phải”, thành phần tương ứng có trong bộ dữ liệu “dừng”. huấn luyện thuộc lớp k, thì thành phần thứ k 50 người nói. của vector có xác suất lớn nhất, các thành phần còn lại có xác suất nhỏ hơn. Từ đó, ta Bộ dữ liệu huấn luyện gồm 5 từ này được sẽ chọn được giá trị lượng tử là k để tính chia thành 26 lớp (“t” thuộc lớp 1, “i” thuộc xác suất mà k sẽ xuất hiện. Sau khi các lớp 2, “e” thuộc lớp 3, “e” thuộc lớp 4, “s” vector đặc trưng và hệ số đặc trưng đó được thuộc lớp 5, “n” thuộc lớp 6, “l” thuộc lớp 7, lượng tử vector để chuyển thành chuỗi quan “u” thuộc lớp 8, “f” thuộc lớp 9, “i” thuộc lớp sát O. 10, “t” thuộc lớp 11, “r” thuộc lớp 12, “a” Sau khi có được chuỗi quan sát O của từ thuộc lớp 13, “s” thuộc lớp 14, “i” thuộc lớp cần nhận dạng, ta tiến hành đọc lần được 15, “p” thuộc lớp 16, “h” thuộc lớp 17, “a” các mô Hình HMM của từng từ đã được thuộc lớp 18, “r” thuộc lớp 19, “i” thuộc lớp huấn luyện trước đó và tính xác suất của 20, “d” thuộc lớp 21, “u” thuộc lớp 22, “w” chuỗi quan sát O vừa được tạo ra đối với thuộc lớp 23, “f” thuộc lớp 24, “n” thuộc lớp từng mô Hình HMM. 25, “g” thuộc lớp 26. Trên cơ sở các xác suất của chuỗi quan sát Các dữ liệu trên được tiếp tục chia làm 2 O đối với từng mô Hình HMM đã được phần: một phần dành cho huấn luyện và một huấn luyện, ta lựa chọn ra xác suất nào có phần để kiểm tra. [2] [6] giá trị lớn nhất thì chuỗi quan sát O ứng với mô hình đó. [2] [6] 2.4. Nhận dạng bằng mô Hình ANN . Vì các tín hiệu tiếng nói có độ dài ngắn khác nhau nên dãy các vector đặc trưng
- Sttaarrtt Sttaarrtt Tín hiệu tiếng nói s(n) Táácchh ttừừ kkhhỏỏii Eppoocchh = 11 kkhhooảảnngg llặặnngg,, xxửử llýý nnhhiiễễuu Khhởởii ttạạoo ccáácc ttrrọọnngg Trríícchh ssốố vvàà đđộộ ddốốcc vvớớii đđặặcc ttrrưưnngg ggiiáá ttrrịị nnggẫẫuu nnhhiiêênn Các vector đặc trưng {y1, y2, , yT} Lượng tử Nhhậậnn ddữữ lliiệệuu hhuuấấnn Lượng tử hhóóaa vveeccttoorr luyện ngõ vào và luyện ngõ vào và Chuỗi vectorquan sát ttíínnhh ttooáánn ccáácc ggiiáá ttrrịị y = {y1, y2, , yT} nnggõõ rraa Tíínnhh xxáácc Tíínnhh xxáácc Tíínnhh xxáácc M1 M2 . . . MR 1 ssuuấấtt 2 ssuuấấtt R ssuuấấtt Tíínnhh mssee P(y|M1) P(y|M1) P(y|MR) . . . Đ mssee ≤≤ msseemmiinn Xáácc đđịịnnhh xxáácc ssuuấấtt llớớnn nnhhấấtt S Chỉ số của từ được nhận dạng Đ i*=argmax[P(y|M1)] Eppoocchh = Eppoocchh + 11 Eppoocchh ≥≥ Eppoocchhmmaaxx Enndd Enndd i S Hình 19. Lưu đồ giải thuật nhận dạng từ đơn Cậậpp nnhhậậtt ttrrọọnngg ssốố vvàà đđộộ ddốốcc sử dụng ANN Hình 18. Lưu đồ giải thuật huấn luyện ANN 2.5. Kết quả thử nghiệm trên phần cứng thước 39xFrame, trong đó Frame là số khung của dữ liệu tiếng nói, và số khung này sẽ Tập dữ liệu tiếng nói được thu âm từ 50 không giống nhau theo thời gian và theo người người nói khác nhau, thuộc miền Nam, và gồm nói. Tập hợp tất cả các bộ vector đặc trưng lại cả nam lẫn nữ (40 nam, 10 nữ). Dữ liệu tiếng và thực hiện lượng tử hóa để tạo ra codebook. nói được lấy mẫu ở mức 8000Hz, 12 bit từ bộ Như vậy, cùng với codebook và các bộ vector KIT đưa lên máy tính. đặc trưng sẽ là bộ tham số để thực hiện huấn Tập dữ liệu này được tổ chức thành 2 luyện mô Hình nhận dạng và kiểm tra hiệu suất nhóm: 40 người sẽ được hệ thống học mẫu của mô Hình. Riêng đối với nhóm mạo danh, (registered speakers) và 10 người đóng vai trò không cần dữ liệu huấn luyện nên chỉ tạo ra bộ người mạo danh (impostors/unknown vector đặc trưng (không được sử dụng trong speakers). công đoạn lượng tử hóa và huấn luyện); do đó, Dữ liệu tiếng nói từng từ của mỗi người nhóm này được sử dụng để kiểm tra tính hiệu trong nhóm hệ thống học mẫu sẽ được phân quả của mô hình. tích thành một bộ vector đặc trưng có kích
- Tín hiệu tiếng nói Phân tích hệ số đặc trưng Các vector đặc trưng 1 2 3 4 N c c c c c c c c c c f f f f f m m m m m Hình 20. Minh họa phân tích dữ liệu tiếng nói thành các hệ số đặc trưng để sử dụng cho huấn luyện hệ thống và nhận dạng Bảng 2. Kết quả thử nghiệm cho nhóm mạo Như vậy, từ tập dữ liệu ban đầu, ta chia danh thành 2 tập con: Tập huấn luyện: gồm 40 người, mỗi TỪ NHẬN DẠNG người có 5 mẫu. Tổng cộng là 200 mẫu. TIẾN LÙI TRÁI PHẢI DỪNG Tập kiểm tra: gồm 50 người (40 T ỉ lệ nhận registered speakers và 10 unknown dạng chính 80,0% 90,0% 90,0% 80,0% 80,0% speakers), mỗi người có 5 mẫu. Tổng xác Tỉ lệ nhận cộng 250 mẫu. 20,0% 0,0% 10,0% 0,0% 0,0% dạng nhầm Tập huấn luyện được dùng để huấn luyện Tỉ lệ không 0,0% 10,0% 0,0% 20,0% 20,0% mô Hình và tập kiểm tra sẽ được dùng để khảo nhận dạng sát các tham số và đánh giá hiệu năng của hệ thống. Nhìn chung kết quả nhận dạng chính xác Tất cả các công đoạn này được thực hiện khá cao. Tuy nhiên, vấn đề thu mẫu, huấn trên máy tính và được kiểm tra, mô phỏng trên luyện mẫu khi triển khai trên KIT phần mềm MATLAB. STM32F103ZET6 mang tính khả thi không cao vì một số lý do sau: Kết quả thử nghiệm nhận dạng từ trên phần Hạn chế về bộ nhớ. mềm MATLAB cho nhóm người mà hệ thống có học mẫu trong điều kiện bình thường được Hạn chế về tốc độ. tổng hợp trong bảng sau: Do đó, để đạt hiệu quả cao về thời gian huấn luyện ANN, đặc biệt là huấn luyện với số Bảng 1. Kết quả thử nghiệm cho nhóm hệ lượng mẫu lớn, và không bị hạn chế về không thống học mẫu gian lưu trữ, xử lý dữ liệu thì ta sẽ thực hiện công đoạn huấn luyện và tạo codebook trên TỪ NHẬN DẠNG máy tính bằng phần mềm MATLAB. Sau đó, LÙI TRÁI PHẢI DỪNG TIẾN ta sẽ triển khai hệ thống nhận dạng trên KIT T ỉ lệ nhận STM32F103ZET6 theo bộ thông số ANN đã dạng chính 97,5% 92,5% 92,5% 95,0% 92,5% xác được huấn luyện và codebook đã được lượng Tỉ lệ nhận tử hóa này. Như vây, theo phương pháp này ta 2,5% 7,5% 7,5% 5,0% 7,5% dạng nhầm đã giải quyết được hai vấn đề lớn trong quá Tỉ lệ không 0,0% 0,0% 0,0% 0,0% 0,0% trình thi công hệ thống nhận dạng tiếng nói nhận dạng trên KIT STM32F103ZET6 trong khi vẫn cho kết quả nhận dạng tương đối tốt trong điều kiện bình thường.
- Tiếp theo là bảng tổng hợp kết quả nhận nhận dạng là 5 từ đơn: “trái”, “phải”, dạng tiếng nói của 3 người khác nhau trên KIT “tiến” “lùi”, “dừng”. STM32F103ZET6, trong đó có một người nằm Số mẫu tối đa cho một từ để huấn luyện là trong nhóm hệ thống học mẫu và 2 người mạo 40 lần, kết quả nhận dạng của mô Hình khi danh. Mỗi người thử nghiệm 20 lần cho mỗi từ đọc 20 lần, tỉ lệ nhận dạng đúng từ là trong điều kiện bình thường, và kết quả chỉ xét khoảng 80%. theo hiệu suất nhận dạng từ chính xác Mô Hình nhận dạng từ trong khoảng 1 giây. Bảng 3. 3. Kết quả thử nghiệm nhận dạng từ Không phụ thuộc vào tiếng nói dài ngắn trên KIT STM32F103ZET6 khác nhau. TỪ NHẬN DẠNG 4. Tài liệu tham khảo TIẾN LÙI TRÁI PHẢI DỪNG [1]. Vũ Hải Quân, Nghiên cứu, Xây Ngư ời dựng hệ thống VoiceServer và ứng thứ 1 (hệ 85,0% 85,0% 80,0% 80,0% 85,0% dụng cho các dịch vụ trả lời tự thống động qua điện thoại, Thuyết trình học mẫu) đề tài nghiên cứu khoa học, Đại học Người quốc gia tp Hồ Chí Minh, 2010 – thứ 2 80,0% 80,0% 75,0% 75,0% 80,0% 2012. (mạo [2]. TS. Nguyễn Như Hiền, TS. Lại danh) Người Khắc Lãi, Hệ mờ & Nơron trong kỹ thứ 3 thuật điều khiển, NXB Khoa học tự 75,0% 80,0% 75,0% 75,0% 75,0% (mạo nhiên và công nghệ Hà Nội, 2007. danh) [3]. Lawrence Rabiner – Biing – Hwan Juang, Fundamentals of speech Như vậy, với bộ codebook có 5 từ thì hệ recognition, Prentice-Hall thống trên KIT STM32F103ZET6 cho kết quả International, 1993. nhân dạng chính xác khoảng gần 80% và thời [4]. John Holmes, Wendy Holmes, Speech synthesis and recognition gian nhận dạng cho một từ chưa đầy 1 giây. nd Đây là một kết quả có thể chấp nhận được khi 2 edition, British Library. [5]. Bian Wu, Xiaolin Ren, Chongqing triển khai hệ thống nhận dạng tiếng nói trên Liu, Yaxin Zhang, A Robust, Real- phần cứng. Time Voice Activity Detection 3. Kết luận Algorithm for Embedded Mobile Đề tài đã khai thác một số tính năng trên Devices, International Journal Of Speech Technology 8, 2005, KIT STM32F103ZET6 của hãng ST và triển [6]. Hervé Bourlard, Nelson Morgan, khai xây dựng chương trình nhận dạng tiếng Connectionist speech recognition a nói trên KIT STM32F103ZET6 cụ thể như hybrid approach, Kluwer sau: Academic Publishers, ISBN 0- Đề tài đã ứng dụng bộ ADC 12-bit để lấy 7923-9396-1, 1994. mẫu tín hiện âm thanh và lưu trữ, lưu trữ [7]. Ben J. Shannon, Kuldip K. Paliwal, A Comparative Study of Filter Bank dữ liệu huấn luyện lên bộ nhớ SRAM có Spacing for Speech Recognition, trên kit KIT STM32F103ZET6 để phục vụ Microelectronic Engineering cho quá trình nhận dạng, lấy mẫu dữ liệu Research Conference, 2003. từ các nguồn khác thông qua máy tính để [8]. Deller John R., Jr., Hansen John phục vụ cho quá trình huấn luyện mô J.L., Proakis John G., Discrete- Hình. Time Processing of Speech Signals, Xây dựng hệ thống nhận dạng tiếng nói để IEEE Press, ISBN 0-7803-5386-2 nhận dạng tiếng nói tiếng Việt với số từ
- BÀI BÁO KHOA HỌC THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ Bài báo khoa học của học viên có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn Bản tiếng Việt ©, TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH và TÁC GIẢ Bản quyền tác phẩm đã được bảo hộ bởi Luật xuất bản và Luật Sở hữu trí tuệ Việt Nam. Nghiêm cấm mọi hình thức xuất bản, sao chụp, phát tán nội dung khi chưa có sự đồng ý của tác giả và Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh. ĐỂ CÓ BÀI BÁO KHOA HỌC TỐT, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN! Thực hiện theo MTCL & KHTHMTCL Năm học 2016-2017 của Thư viện Trường Đại học Sư phạm Kỹ thuật Tp. Hồ Chí Minh.