máy móc tự học hỏi thói quen, hành vi của người dùng nhằm cải thiện hiệu suất làm việc của công nghệ nhận dạng giọng nói nữa.Một số ví dụ trong giới công nghệ: Đã có nhiều nghiên cứu về
Trang 1VIỆN CƠ KHÍ
BỘ MÔN CƠ ĐIỆN TỬ -* -
TRÍ TUỆ NHÂN TẠO TRONG ROBOT
Đề tài: NHẬN DẠNG GIỌNG NÓI SỬ DỤNG TENSORFLOW
Giáo viên hướng dẫn: Ts Nguyễn Xuân Thuận
Trang 2Mục lục
Phần I Đặt vấn đề………2
1 Mục đích, lý do chọn đề tài………2
2 Tổng quan về âm thanh và model nhận dạng giọng nói … ……….4
2.1 Kiến thức cơ bản về âm thanh ……….4
2.1.1 Âm thanh và nguyên lý hình thành tiếng nói……… 4
2.1.2 Các đặc trưng của âm thanh………4
2.1.3 Biến đổi Fourier……… 6
2.1.4 Quang phổ……… 8
2.2 Giới thiệu về model nhận dạng giọng nói……… … 9
2.2.1 Mạng CNN ……….…9
2.2.2 Tensor Flow và Keras……… 13
2.2.3 Model nhận dạng giọng nói……….…… 14
Phần II Xây dựng model nhận dạng giọng nói……… ………15
Phần III Kết quả…… ……… ………16
Phần IV Kết luận……… … ………18
1 Thu hoạch……… ………… 18
2 Khó khăn ……….…18
3 Định hướng phát triển……… …19
Phần V Tài liệu tham khảo……….……… 19
Phần VI Phụ lục……….……… ……… 20
Trang 3I Đặt vấn đề
1 Mục đích, lý do chọn đề tài
Trong những bộ phim khoa học viễn tưởng, chúng ta rất thường hay thấy cảnh con người tương tác với các thiết bị điện tử bằng giọng nói Giấc mơ này
đã có từ khá lâu và bây giờ nó đang dần trở thành hiện thực Những chiếc
smartphone, tablet giờ đây đều có tính năng điều khiển bằng giọng nói, một số sản phẩm thậm chí còn trả lời lại người dùng như thể hai người đang nói chuyệnvới nhau Sự ra đời của công nghệ này đã trở thành một xu hướng mới mẻ trongthị trường ứng dụng di động, đặc biệt là những app trước đây đòi hỏi người dùng phải gõ và nhập liệu nhiều
Vì sao lại là giọng nói ?
Có cả trăm, cả nghìn ứng dụng cho phép người dùng tìm kiếm, viết email, ghi chú và đặt lịch hẹn trên smartphone Thế nhưng, với một số người, việc sử dụngbàn phím nhỏ xíu trên điện thoại là không tiện lợi, thậm chí là rất khó chịu Tốc
độ gõ của bạn có thể rất nhanh và chính xác, nhưng cũng có những người như nổi điên lên khi phải xóa đi viết lại chỉ một chữ duy nhất chỉ vì họ bấm nhầm sang những phím bên cạnh
Giọng nói là giải pháp hợp lý nhất tính đến thời điểm hiện tại Người dùng không chỉ xài giọng nói của mình như một phương thức nhập liệu mà chính bản thân thiết bị cũng có thể xài giọng nói để đọc ra những thông tin cần thiết Đó làchưa kể đến lợi ích to lớn mà những phần mềm dựa trên giọng nói có thể mang lại cho những người khiếm thị Họ có thể tận hưởng những tiến bộ công nghệ tương tự như những gì mà một người bình thường có thể làm, không còn
khoảng cách xuất hiện do những khiếm khuyết về giác quan
Tất nhiên, hiện nay công nghệ giọng nói vẫn chỉ mới ở giai đoạn đầu chứ chưa thể nào thay thế hoàn toàn bàn phím ảo/vật lý hoặc các nút trên màn hình Tuy nhiên, chúng ta đang dần tiến đến một kỉ nguyên hiện đại hơn, các ứng dụng giọng nói cũng dần dần được hoàn thiện Hãy nhìn vào Google
Voice Input, Apple Siri hay mới đây là Microsoft Cortana là bạn sẽ dễ dàng thấy được xu hướng này
Càng ngày những phần mềm nhận dạng giọng nói càng thông minh hơn, khả năng nhận dạng chính xác hơn, thông tin trả về cũng hữu ích và đa dạng hơn Người ta còn áp dụng cả những kĩ thuật như data mining (khai thác dữ liệu theo chiều sâu, đưa ra những phân tích về nhiều mặt), machine learning (cho phép
Trang 4máy móc tự học hỏi thói quen, hành vi của người dùng) nhằm cải thiện hiệu suất làm việc của công nghệ nhận dạng giọng nói nữa.
Một số ví dụ trong giới công nghệ:
Đã có nhiều nghiên cứu về việc triển khai hoặc giới thiệu thành công những ứng dụng giọng nói Chúng có thể nhắc đến Ask.com, một dịch vụ cho phép người dùng hỏi và nhận câu trả lời, đã tích hợp công nghệ nhận dạng giọng nói
do Nuance phát triển vào ứng dụng iOS và Android của mình Sự liên kết này cho phép người dùng hỏi, trả lời cũng như đăng tải các lời bình luận
Amazon cũng cập nhật app Kindle trên iOS để hỗ trợ tính năng VoiceOver trong iOS VoiceOver sẽ tự động đọc nội dung trên màn hình để giúp cho việc xem sách của những người bị khiếm thị được dễ dàng và thuận tiện hơn Hãng cho biết có khoảng 1,8 triệu đầu sách e-book tương thích với tính năng này Bảnthân Amazon cũng từng mua lại công ty IVONA Software vốn cung cấp giải pháp chuyển đổi từ chữ sang giọng nói cho các sách mua từ Amazon
Và rồi chúng ta có Siri, Google Voice hay Cortana Đây đều là những ứng dụng được phát triển bởi các tập đoàn công nghệ lớn với tiềm lực mạnh mẽ và quy tụ nhiều nhân tài Bộ ba phần mềm này đã giúp người dùng thiết bị di động tương tác với thiết bị của mình một cách thông minh hơn, từ việc đặt câu hỏi, nhận câu trả lời cho đến điều chỉnh các thông số máy và khởi chạy app Một việc đơn giản có thể kể đến là đặt lịch hẹn hoặc báo thức Trước đây chúng ta phải mất cả chục thao tác chạm mới đặt xong một sự kiện, còn với Siri, Google Voice hay Cortana, bạn chỉ cần ra lệnh một cái là xong Mọi thao tác, từ việc ghi nội dung cho đến thiết lập giờ giấc, đều được thực hiện một cách tự động
Tiềm năng của công nghệ nhận dạng giọng nói là rất lớn Hiện nay chúng ta chỉ mới khai thác được những bề nổi của nó chứ chưa thật sự đi sâu Hãy nghĩ đến một tương lai nơi bạn có thể hoàn toàn để điện thoại trong túi quần và thực hiện tất cả chỉ bằng cách nói vào tai nghe Bluetooth Nhìn rộng hơn, bạn vừa về tới nhà và nói vào chiếc điện thoại của mình: mở máy lạnh nha, kao về nhà rồi,
mở sẵn luôn cả nhạc nữa nhé, thế là khi mở cửa bước vào thì mọi thứ đã được thực hiện Tính năng nhận dạng giọng nói không chỉ dừng lại ở việc nhập liệu
mà nó còn mở ra cả một chân trời để chúng ta khai thác và đơn giản hóa cuộc sống của mình Vì vậy, nhóm đã lựa chọn đề tài: Nhận dạng giọng nói sử dụng TensorFlow
Trang 52 Tổng quan về âm thanh và model nhận dạng giọng nói
2.1 Kiến thức cơ bản về âm thanh
2.1.1 Âm thanh và nguyên lý hình thành tiếng nói
Âm thanh là dao động cơ học của các hạt , lan truyền trong vật chất giống nhưsóng
Ví dụ về sóng âm thanh
Nguyên lý đẩy hơi từ phổi tạo lên âm thanh Đầu tiên, một luồng hơi được đẩy lên từ phổi, tạo áp lực lên
thanh quản Dưới áp lực đó thì thanh quản mở và giúp luồng khí thoát qua, làm
áp lực giảm xuống, thanh quản đóng lại, làm áp lực lại tăng lên Chu kì
đóng/mở của thanh quản này liên tục tái diễn, tạo ra các tần số sóng âm với tần
số cơ bản của nam là 125Hz và nữ là 210Hz Điều này là lý do tại sao ng ta nói giọng nữ cao hơn giọng nam
Như vậy, thanh quản đã tạo ra các tần số sóng âm cơ bản Tuy nhiên, luồng hơi thoát ra còn đi qua các cơ quan như vòm họng, khoang miệng, lưỡi, răng, mũi…Điều này làm khuếch đại hoặc triệt tiêu một vài tần số để tạo ra tiếng nói
2.1.2 Các đặc trưng của âm thanh
Âm thanh có đặc trưng vật lý và đặc trưng sinh lý
Đặc trưng vật lý:
Trang 6a/ Tần số (f):
là dao động của nguồn âm, âm trầm (bass) có tần số nhỏ, âm cao (treble)
có tần số lớn
b/ Cường độ âm (I):
tại một thời điểm được xác định bằng năng lượng của sóng âm truyền vuông góc qua một diện tích trong một đơn vị thời gian
c/ Đồ thị dao động âm:
Âm thanh phát ra trong không khí khi được thu lại và truyền thành dao động của các cần rung hoặc dao động điện có cùng tần số
Cấu tạo cơ bản của loa biến dao động cơ thành dao động điện
Đồ thị dao động âm của một nốt nhạc do dây đàn violon phát ra
Đặc trưng sinh lý
a/ Độ cao của âm:
gắn liền với tần số âm Âm trầm có tần số nhỏ, âm cao có tần số lớn Do tần số cơ bản của nam là 125Hz nhỏ hơn của nữ là 210Hz, nên đây là nguyên nhân cho quan điểm giọng nữ cao hơn giọng nam
Trang 7Ví dụ cùng một bản nhạc nhưng khi nghe ta có thể xác định được bản nhạc đó được chơi bằng nhạc cụ nào (violon, piano, guitar…) vì âm của các loại nhạc cụ này rất khác nhau.
2.1.3 Biến đổi Fourier
Âm thanh là 1 chuỗi tín hiệu được kết hợp từ các sóng có tần số khác nhau Thông qua phép biến đổi Fourier, ta có thể đưa tín hiệu âm thanh miền thời gian(dạng sóng) thành tín hiệu miền tần số(dạng quang phổ)
Tín hiệu âm thanh từ tín hiệu dạng sóng sang miền tần sốMột số ví dụ minh họa trong biến đổi Fourier
Với ánh sáng, ta đã biết ánh sáng trắng truyền qua lăng kính sẽ
được phân tách thành các ánh sáng đơn sắc với tần số riêng biệt
ánh sáng trắng đi qua lăng kính sẽ phân tán thành các ánh sáng đơn sắc
Với âm thanh, ví dụ gần nhất là tai người
Trang 8Cấu tạo tai người
Âm thanh chúng ta nghe hang ngày là một pha trộn của nhiều sóng âm thanh với các tần số khác nhau (từ 20-20000Hz) Tuy nhiên, tai người hoạt động phi tuyến, tức không phải độ cảm nhận âm thanh 20000Hz sẽ gấp 1000 lần độ cảm nhận âm thanh 20Hz
Khi âm thanh truyền tới tai, sẽ va đập vào màng nhĩ Màng nhĩ rung và truyền rung động lên 3 xương nhỏ: malleus, incus, stapes tới ốc tai
các xương giúp truyền dao động vào ốc tai
Trang 9Cấu tạo bên trong ốc tai
Ôc tai chứa các dịch nhầy bên trong, giúp truyền âm thanh, dọc theo ốc tai Trên ốc tai chứa nhiều tế bào long nhỏ, khác nhau về độ dài, độ dày, độ cứng,
do đó phản ứng với các tần số khác nhau Do đó, các tế bào thần kinh khác nhautrong não sẽ được kích hoạt tùy theo sự biến đổi Fourier trong tai
2.1.4 Quang phổ
Quang phổ hay còn gòi la phan quang hòc Quang phò được hiểu đợn gian
la mòt dai mau giò#ng như sa%c ca&u vò&ng hư(ng được trển man anh khi cò( hiểntượng ta(n sa%c a(nh sa(ng
Vợ(i am thanh, quang phò la mòt đai diển trực quan của quang phổ của tần
số của một tín hiệu vì nó thay đổi theo thời gian Khi áp dụng cho một tín hiệu
âm thanh, quang phổ đôi khi được gọi là máy ghi âm, dấu giọng nói, hoặc
là giọng nói Khi dữ liệu được biểu diễn dưới dạng biểu đồ 3D, chúng có thể được gọi là thác nước.
Quang phổ được sử dụng rộng rãi trong các lĩnh vực Âm nhạc, ngôn ngữ học, sonar, ra đa, xử lý giọng nói,[1] địa chấn học, và những người khác Quang phổ âm thanh có thể được sử dụng để xác định các từ được nói phiên âm và để phân tích các cuộc gọi khác nhau của động vật
Định dạng phổ biến là biểu đồ có hai kích thước hình học: một trục biểu diễn thời gianvà trục còn lại đại diện cho tần số; chiều thứ ba chỉ ra biên độ của một tần số cụ thể tại một thời điểm cụ thể được biểu thị bằng cường độ hoặc màu của từng điểm trong ảnh
Trang 10Quang phổ của bản ghi âm từ đàn violon
2.2 Giới thiệu về model nhận dạng giọng nói
2.2.1 Mạng CNNa/ Định nghĩa mạng CNN
CNN là tên viết tắt của từ Convolutional Neural Network (hay còn gọi là CNNs_mang nơ ron tích chập) Đây là một trong những mô hình Deep Learning
vô cùng tiên tiến CNN sẽ cho phép bạn xây dựng các hệ thống thông minh với
độ chính xác vô cùng cao Hiện nay, CNN được ứng dụng rất nhiều trong nhữngbài toán nhận dạng object trong ảnh Và kiến thức cụ thể về CNN đã được lý giải như sau:
Convolutional
Đây là một loại cửa sổ dạng trượt nằm trên một ma trận Những convolutionallayer sẽ có các parameter được học để điều chỉnh và lấy ra những thông tin chính xác nhất mà không cần phải chọn feature Convolution hay tích chập chính là nhân các phần tử trong ma trận Sliding Window còn được gọi là
kernel, filter hoặc feature detect và là loại ma trận có kích thước nhỏ
Feature
Feature là đặc điểm, các CNN sẽ so sánh hình ảnh dựa theo từng mảnh và những mảnh này được gọi là Feature Thay vì phải khớp các bức ảnh lại với nhau thì CNN sẽ nhìn ra sự tương động khi tìm kiếm thô các Feature khớp với nhau bằng 2 hình ảnh tốt hơn Mỗi Feature được xem là một hình ảnh mini có nghĩa chúng là những mảng 2 chiều nhỏ Các Feature này đều tương ứng với các khía cạnh nào đó của hình ảnh và chúng có thể khớp lại với nhau
Trang 11
o +CNN sử dụng các filter để áp dụng vào vùng của hình ảnh Nhữngfilter map này được gọi là ma trận 3 chiều, mà bên trong nó là các con số và chúng là parameter
o +Stride có nghĩa là khi bạn dịch chuyển filter map theo pixel dựa vào giá trị trừ trái sang phải Và sự chuyển dịch này chính là Stride
o +Padding: Là các giá trị 0 được thêm vào với lớp input
o +Feature map: Nó thể hiện kết quả của mỗi lần filter map quét qua input Sau mỗi lần quét sẽ xảy ra quá trình tính toán
Relu Layer
Relu layer là hàm kích hoạt trong neural network và hàm này còn được gọi
là activation function Hàm kích hoạt có tác dụng mô phỏng các neuron có tỷ
lệ truyền xung qua axon Trong activation function thì nó còn có hàm nghĩa là: Relu, Leaky, Tanh, Sigmoid, Maxout, Hiện nay, hàm relu được dùng phổ biến và vô cùng thông dụng
Nó được sử dụng nhiều cho các nhu cầu huấn luyện mạng neuron thì relu mang lại rất nhiều ưu điểm nổi bật như: việc tính toán sẽ trở nên nhanh hơn, Quá trình sử dụng relu, chúng ta cần lưu ý đến vấn đề tùy chỉnh các learning rate và theo dõi dead unit Những lớp relu layer đã được sử dụng sau khi filter map được tính ra và áp dụng hàm relu lên những giá trị của filter map
Pooling Layer
Khi đầu vào quá lớn, những lớp pooling layer sẽ được xếp vào giữa giữa những lớp Convolutional layer để làm giảm parameter Hiện nay, pooling layer có 2 loại chủ yếu là: max pooling và average
Trang 12Cấu trúc của CNN
Fully connected layer
Lớp này có nhiệm vụ đưa ra kết quả sau khi lớp convolutional layer và pooling layer đã nhận được ảnh truyền Lúc này, ta thu được kết quả là model đã đọc được thông tin của ảnh và để liên kết chúng cũng như cho ra nhiều output hơn thì ta sử dụng fully connected layer
Ngoài ra, nếu như fully connected layer có được giữ liệu hình ảnh thì chúng sẽ chuyển nó thành mục chưa được phân chia chất lượng Cái này khágiống với phiếu bầu rồi chúng sẽ đánh giá để bầu chọn ra hình ảnh có chất lượng cao nhất
c/ Cấu trúc của mạng CNN
Mạng CNN là một trong những tập hợp của lớp Convolution bị chồng lên nhau cũng như sử dụng hàm nonlinear activation như ReLU và tanh để kích hoạt trọng số trong node Lớp này sau khi thông qua hàm thì sẽ được trọng số trong các node Những lớp này sau khi đã thông qua hàm kích hoạt thì có thể tạo ra những thông tin trừu tượng hơn cho những lớp tiếp theo
Trong mô hình CNN có tính bất biến và tích kết hợp Nếu như bạn có cùng một đối tượng mà lại chiếu theo nhiều góc độ khác nhau thì độ chính xác có thể sẽ bịảnh hưởng Với chuyển dịch, quay và co giãn thì pooling layer sẽ được sử dụng
để giúp làm bất biến những tính chất này Vì vậy, CNN sẽ đưa ra kết quả có độ chính xác tương ứng ở từng mô hình
Trong đó, pooling layer sẽ cho bạn tính bất biến đối với phép dịch chuyển, phép
co dãn và phép quay Còn tính kết hợp cục bộ sẽ cho bạn thấy những cấp độ biểu diễn, thông tin từ thấp đến mức độ cao với độ trừu tượng thông qua
convolution từ các filter Mô hình CNN có các layer liên kết được với nhau dựa vào cơ chế convolution
Những layer tiếp theo sẽ là kết quả từ những convolution từ layer trước đó, vì thế mà bạn sẽ có các kết nối cục bộ phù hợp nhất Vậy, mỗi neuron ở lớp sinh ratiếp theo từ kết quả filter sẽ áp đặt lên vùng ảnh cục bộ của một neuron có trước
đó Trong khi huấn luyện mạng, CNN sẽ tự động học hỏi các giá trị thông qua lớp filter dựa vào cách thức mà người dùng thực hiện
Trang 13Trong đó, cấu trúc cơ bản của CNN thường bao gồm 3 phần chính là:
Local receptive field (trường cục bộ): Lớp này có nhiệm vụ tách lọc dữ liệu,
thông tin ảnh và lựa chọn các vùng ảnh có giá trị sử dụng cao nhất
Shared weights and bias (trọng số chia sẻ): Lớp này giúp làm giảm tối đa
lượng tham số có tác dụng chính của yếu tố này trong mạng CNN Trong mỗi convolution sẽ có các feature map khác nhau và mỗi feature lại có khả năng giúp detect một vài feature trong ảnh
Pooling layer (lớp tổng hợp): Pooling layer là lớp cuối cùng và có tác dụng
làm đơn giản các thông tin đầu ra Có nghĩa là, sau khi đã hoàn tất tính toán và quét qua các lớp thì đến pooling layer để lược bớt các thông tin không cần thiết
Từ đó, cho ra kết quả theo như ý mà người dùng mong muốn
2.2.2 Tensor Flow và Keras
a/ Khái niệm về TensorFlow và Keras
machine learning và deep learning rõ ràng cũng phát triển theo cùng Và ở thời
nổi tiếng nhất thế giới, được phát triển bởi các nhà nghiên cứu từ Google Việc
hỗ trợ mạnh mẽ các phép toán học để tính toán trong machine learning và deep learning đã giúp việc tiếp cận các bài toán trở nên đơn giản, nhanh chóng và tiện lợi hơn nhiều
Để hiểu một cách đơn giản, thì Tensor Flow là một thư viện phần mềm mã nguồn mở được phát triển bởi Google, hỗ trợ mạnh mẽ các phép toán học để tính toán trong machine learing và deep learning
Trong Python, Tensorflow không tích hợp sẵn và phải cài bằng lệnh pip install tensprflow Sau khi cài đặt xong, ta import bằng lệnh import tensorflow Keras là một thư viện “high_level” với phần “low_level” (còn được gọi là backend) là TensorFlow
Keras có cú pháp đơn giản hơn TensorFlow rất nhiều
Có thể chạy trên cả CPU và GPU
Nhìn chung, Keras là một framework rất đơn giản để xây dựng model
b/ Các khái niệm trong Keras
Nhìn chung, muốn làm việc được với Keras thì ta cần biết một số khái niệm như sau: