Bài báo trình bày phương pháp nhận dạng tiếng nói tiếng Việt cho việc điều khiển thiết bị trong ngôi nhà thông
minh. Thực hiện trên máy tính nhỏ nhằm tăng khả năng triển khai của hệ thống. Việc nhận dạng sử dụng CMU Sphinx, quá trình
huấn luyện các từ điều khiển “Robot”, “Đèn”, “Quạt”,… Hệ thống sử dụng Raspberry Pi và dùng chip Atmega 328 làm bộ xử lý
trung tâm (MCU-Micro Control Unit) để truyền, nhận tín hiệu và điều khiển thiết bị. Mặc dù phương pháp điều khiển thiết bị đã có
rất nhiều như: smart phone, máy tính để bàn, laptop kết hợp với công nghệ khác, nhưng dùng tiếng nói để điều khiển thiết bị còn
nhiều khía cạnh cần giải quyết. Phương pháp mà bài báo đưa ra tối ưu và triển khai dễ dàng hơn. Chi phí cho hệ thống được giảm
đáng kể. Tuy nhiên vẫn còn một số hạn chế gặp phải chưa giải quyết được: xử lý nhiễu (noise), quá trình huấn luyện.
6 trang |
Chia sẻ: candy98 | Lượt xem: 961 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Phương pháp điều khiển thiết bị bằng tiếng nói, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Kỷ yếu Hội nghị Quốc gia lần thứ VIII về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR); Hà Nội, ngày 9-10/7/2015
DOI: 10.15625/vap.2015.000196
PHƯƠNG PHÁP ĐIỀU KHIỂN THIẾT BỊ BẰNG TIẾNG NÓI
Đỗ Văn Minh, Nguyễn Minh Sơn, Phan Thiện Phước
Khoa Công nghệ thông tin, Trường Đại học Lạc Hồng
minhit99@gmail.com, phanphuoc93pp@gmail.com, nmson@lhu.edu.vn
TÓM TẮT - Bài báo trình bày phương pháp nhận dạng tiếng nói tiếng Việt cho việc điều khiển thiết bị trong ngôi nhà thông
minh. Thực hiện trên máy tính nhỏ nhằm tăng khả năng triển khai của hệ thống. Việc nhận dạng sử dụng CMU Sphinx, quá trình
huấn luyện các từ điều khiển “Robot”, “Đèn”, “Quạt”, Hệ thống sử dụng Raspberry Pi và dùng chip Atmega 328 làm bộ xử lý
trung tâm (MCU-Micro Control Unit) để truyền, nhận tín hiệu và điều khiển thiết bị. Mặc dù phương pháp điều khiển thiết bị đã có
rất nhiều như: smart phone, máy tính để bàn, laptop kết hợp với công nghệ khác, nhưng dùng tiếng nói để điều khiển thiết bị còn
nhiều khía cạnh cần giải quyết. Phương pháp mà bài báo đưa ra tối ưu và triển khai dễ dàng hơn. Chi phí cho hệ thống được giảm
đáng kể. Tuy nhiên vẫn còn một số hạn chế gặp phải chưa giải quyết được: xử lý nhiễu (noise), quá trình huấn luyện.
Từ khóa - CMU Sphinx, Raspberry Pi, GPIO, Arduino.
I. PHẦN MỞ ĐẦU
Công nghệ ngày càng phát triển, trong thời đại công nghệ thông tin, các chương trình giao tiếp người dùng ngày
càng đòi hỏi sự thân thiện và hiệu năng mạnh mẽ. Có nhiều cách để con người giao tiếp với máy tính trong đó có giao
tiếp bằng tiếng nói. Nhu cầu giao tiếp với thiết bị máy bằng tiếng nói trở nên cần thiết, đó là phương thức giao tiếp
thông minh và tự nhiên nhất. Trong những năm gần đây, công nghệ này đã có mặt trên rất nhiều thiết bị và chủng loại,
từ máy tính đến điện thoại di động, đồ chơi công nghệ và các thiết bị nhúng khác, các thiết bị ngày càng trở nên nhỏ
hơn về kích thước [1]. Tuy nhiên các thiết bị càng nhỏ cũng làm giới hạn về chức năng. Tiếng nói có khả năng điều
khiển và tương tác phức tạp với hệ thống nhúng [2].
Nhận diện tiếng nói được phân loại như nhận diện các từ đã được nối với với nhau và nhận biết từng từ một
cách độc lập. Đối với hệ thống nhúng thì sử dụng nhận diện từng từ độc lập với nhau có hiệu quả hơn cả. Thông
thường, nhận dạng tiếng nói là một loại mẫu nhận dạng dựa trên huấn luyện và nhận dạng [1]. Phương pháp sử dụng là
HMM (Hidden Markov Model) và thư viện sử dụng là bộ nhận dạng HTK. Tín hiệu tiếng nói người dùng được lấy bởi
micro USB đã được kết nối với hệ thống. Để xử lý tín hiệu nhận dạng bài báo sử dụng bộ thư viện nhận dạng tiếng nói
CMU Sphinx nhận dạng các câu lệnh điều khiển thiết bị bằng tiếng Việt. Chương trình điều khiển được viết bằng ngôn
ngữ Python và được biên dịch trên máy tính nhúng Raspberry Pi để điều khiển các thiết bị đèn, quạt, tivi trực tiếp qua
hàng chân GPIO (General Purpose Input/ Output) trên Raspberry Pi. Sau khi chuỗi tín hiệu các từ được nhận diện. Các
từ đã được nhận dạng chuyển thành dạng văn bản sẽ truyền đến Ardunio sử dụng bộ phát/thu sóng vô tuyến RF
SI4463. Tại Arduino sẽ thực thi lệnh để điều khiển các thiết bị điện.
Bài báo này giải quyết từng bước cơ bản trong mô hình Markov ẩn, mà một số đề tài trước còn bị giới hạn [1].
Bài báo có sử dụng công cụ Sphinx. Sphinx là một nền tảng mã nguồn mở, đang được rất nhiều chuyên gia sử dụng
làm công cụ nhận dạng tiếng nói. Sphinx là một công cụ nhận dạng tiếng nói rất mạnh mẽ, có tính môđun hóa cao. Mỗi
thành phần biểu diễn một môđun có thể dễ dàng được thay thế, cho phép các nhà nghiên cứu thực nghiệm một môđun
khác mà không cần phải thay đổi các thành phần còn lại của hệ thống. Sphinx đã được sử dụng trong nhiều hệ thống
nhận dạng như: cairo, jvoicexml, các chương trình điều khiển như SpeechLion, VoiceKey
Sự kết hợp giữa phần cứng và các thành phần đã tạo ra một hệ thống nhỏ gọn có thể điều khiển bật/tắt một số
thiết bị điện gia dụng như: đèn, quạt và tivi. Đặc biệt là truyền tín hiệu điều khiển thiết bị không dây nhằm tạo sự linh
động, dễ dàng lắp đặt.
II. CÁCH THỨC NHẬN DẠNG TIẾNG NÓI
A. Nhận dạng tiếng nói
Nhận dạng tiếng nói là một quá trình phức tạp bao gồm nhiều khâu biến đổi. Tín hiệu tiếng nói phát ra là tương tự. Từ
quá trình lấy mẫu, lượng tử hóa và mã hóa để thu được tín hiệu số. Các mẫu tín hiệu này được trích chọn đặc trưng.
Những đặc trưng này sẽ là đầu vào của quá trình nhận dạng. Hệ thống nhận dạng sẽ đưa ra kết quả nhận dạng. Tín hiệu
tiếng nói đầu tiên được tiền xử lý và rút trích đặc trưng. Kết quả thu được sau quá trình này là tập các đặc trưng âm học
(acoustic features). Để có thể thực hiện việc so sánh với các tham số đầu vào của hệ thống nhận dạng, trước hết hệ
thống phải được huấn luyện và xây dựng các đặc trưng.
Trong quá trình huấn luyện, hệ thống dùng các vector đặc trưng được đưa vào để ước lượng, tính toán các tham số cho
các mẫu tham khảo. Một mẫu tham khảo chính là bản mẫu dùng để so sánh và nhận dạng, các mẫu tham khảo này mô
phỏng cho một từ, một âm tiết, hoặc một âm vị. Trong quá trình nhận dạng, dãy các vector đặc trưng được so sánh với
các mẫu tham khảo. Sau đó, hệ thống tính toán độ tương đồng của dãy vector đặc trưng và mẫu tham khảo. Việc tính
toán độ tương đồng được được thực hiện bằng cách áp dụng các thuật toán đã được chứng minh hiệu quả như thuật
toán Vitertbi (trong Markov ẩn). Mẫu có độ tương đồng cao nhất là kết quả của quá trình nhận dạng. Có các loại hệ
5
th
M
p
B
S
s
K
q
n
n
n
tr
g
c
v
p
d
đ
n
đ
h
b
G
v
c
76
ống nhận dạn
ột số phươn
háp trí tuệ nh
. Nhận dạng
phinx [3] là m
ống. Đó là nh
- Hỗ trợ nh
- Là một h
ứng nhu cầ
- Hỗ trợ nh
API Gramm
- Xây dựng
cầu nhận d
iến trúc bộ th
Bộ ngo
uả là một tập
Bộ ngô
gôn ngữ rồi m
gôn ngữ mà c
gôn ngữ ở cấ
úc ngôn ngữ
raph-driven
huyển sang m
iệc quan sát N
Simple
háp có lặp ha
ùng để hỗ trợ
JSGFG
ộc lập nền tản
LMGra
út ngữ pháp m
ổi trạng thái
ỗ trợ cho các
ộ nhớ, do đó
ram đúng đư
iệc lưu trữ bộ
ách phát âm c
g là nhận dạn
g pháp nhận
ân tạo.
tiếng nói bằ
ột bộ thư việ
ờ các đặc điểm
ận dạng tiếng
ệ thống nhận
u nhận dạng n
iều mô hình n
ar Format (J
sẵn các thuậ
ạng.
ư viện nhận d
ại vi (FrontE
các vector đặ
n ngữ (Ling
ô hình hóa c
húng ta cần n
p độ là các từ
sẽ được mô
grammar: B
ột từ; Mô hì
-1 từ đứng tr
WordListGr
y không. Nếu
liên kết nhận
rammar: Hỗ
g, Unicode c
mmar: Định
ỗi từ và làm
giới hạn (fini
mô hình ASC
nó làm việc
ợc phát sinh
nhớ, cho ph
ho các từ ta đ
g từ liên tục
dạng như: ph
ng thư viện C
n nhận dạng
:
nói ở chế độ
dạng đồ sộ nh
hư xây dựng
gôn ngữ dạng
SGF) và ARP
t toán tìm kiế
ạng gồm các
nd): Xử lý tí
c trưng.
uist): bằng cá
húng vào đồ
hận dạng, nó
. Thành phần
hình hóa ở đâ
iễu diễn một đ
nh stochastic
ước.
ammar: Định
không lặp, n
dạng từ tầm t
trợ JavaTM
ủa các ngữ ph
nghĩa một ng
việc tốt với
te-state trandu
II N-Gram tr
tốt với các m
bởi CMU-Ca
ép nó làm việ
ã xây dựng tr
, nhận dạng từ
ương pháp âm
MU Sphinx
tiếng nói mạn
trực tiếp hoặc
ưng có khả n
các bộ lọc, cá
ASCII và cá
Aformat FST
m tối ưu (brea
thành phần sa
Hình 1. Kiến
n hiệu từ bên
c công cụ và
thị. Ở bộ này
gồm các thà
này có vai t
y theo hai m
ồ thị từ có hư
N-Gram: M
nghĩa một t
gữ pháp sẽ đ
hường.
Speech API
áp.
ữ pháp dựa t
các unigram v
cer) trong đị
ong định dạng
ô hình ngôn n
mbridge Stat
c với các tập
ong mô hình
P
tách biệt, nh
học - ngữ â
h mẽ và đượ
chia lô, có kh
ăng tháo lắp
c hàm cửa sổ
c phiên bản n
grammars.
th first, word
u:
trúc tổng quát
ngoài, thực h
phương phá
cấu tạo khá
nh phần nhỏ
rò quan trọng
ô hình: graph
ớng. Mỗi nút
ô hình này cu
ừ dựa trên da
ược dùng cho
Grammar For
rên một mô hì
à bigram, xấp
nh dạng ngữ
ARPA. Simp
gữ nhỏ. Larg
ictical Langu
tin rất lớn, tr
ngôn ngữ. M
HƯƠNG PHÁP
ận dạng phụ t
m học, phươ
c sử dụng rất
ả năng nhận
rất linh động.
, các phép biế
hị phân của u
pruning), dễ
của Sphinx
iện qua một
p ngôn ngữ, đ
phức tạp vì n
sau: Mô hình
xác định nhữ
-driven gramm
biểu diễn mộ
ng cấp các x
nh sách các t
một nhận dạ
mat (JSGF),
nh ngôn ngữ
xỉ 1000 từ.
pháp ARPA F
leNGramMo
eTrigramMod
age Modeling
ên 100MB. B
ô hình âm học
ĐIỀU KHIỂN T
huộc người n
ng pháp nhận
nhiều trong c
dạng tiếng nó
Hỗ trợ sẵn đ
n đổi,
nigram, bigra
dàng tinh chỉ
số bộ lọc và
ọc vào các t
ó quy định h
ngôn ngữ: Đ
ng thứ hệ thố
ar và Stocha
t từ đơn và m
ác suất cho c
ừ. Một tham
ng từ tách bi
định nghĩa m
thống kê. LM
FSTGrammar
ST. SimpleN
del không cố
el: Cung cấp
Toolkit. Lar
ộ từ điển: Th
: Cung cấp m
HIẾT BỊ BẰNG
ói và độc lập
dạng mẫu,
ác ứng dụng
i rời rạc và liê
ầy đủ các tính
m, trigram, Ja
nh cho phù h
xử lý dữ liệu
ập tin cấu trú
ầu như toàn b
ọc vào tập t
ng cần nhận
stic N-Gram
ỗi cung là xá
ác từ được ch
số tùy chọn
ệt. Nếu lặp, n
ột biểu diễn
Grammar phá
: Hỗ trợ một
GramModel:
làm tối ưu vi
hỗ trợ các m
geTrigramMo
ành phần này
ột ánh xạ giữ
TIẾNG NÓI
người nói.
và phương
trong cuộc
n tục.
năng đáp
va Speech
ợp với nhu
cho ra kết
c của một
ộ phạm vi
in cấu trúc
dạng. Cấu
; Mô hình
c suất dịch
o dựa vào
chỉ ra ngữ
ó sẽ được
theo BNF,
t sinh một
bộ chuyển
Cung cấp
ệc sử dụng
ô hình N-
del tối ưu
cung cấp
a một đơn
Đv
th
từ
tr
(
đ
â
(
c
đ
t
q
đ
c
p
c
tr
p
p
g
l
th
A
p
n
B
l
ỗ Văn Minh, Ng
ị tiếng nói và
ể đưa thông
cấu trúc ngữ
Đồ thị
ong bộ giải m
SearchState),
ường cung bi
m học: biểu d
Features) từ b
ác thuật toán
ặc trưng để tì
ìm kiếm khi x
uả. Và thêm
ổi trong quá t
òn bổ sung th
hần cắt tỉa (P
ung cấp các g
ạng thái, nó
hép toán để tí
Có thể
hần mềm trên
iặt, điều hòa,
à embedded c
ống nhúng đ
. Máy tính n
Raspbe
hi lợi nhuận
hững công v
CM2835 (là
í âm thanh/vid
CPU
GPU
RAM
USB
Ngõ ra
Ngoại
Nguồn
Kích th
Hệ điề
uyễn Minh Sơn,
một HMM c
tin vị trí của t
pháp của mô
tìm kiếm (Se
ã. Đồ thị tìm
biểu diễn mộ
ểu diễn các tr
iễn khả năng
ộ ngoại vi kế
suy ra kết qu
m ra ánh xạ t
ử lý kết quả,
đặc điểm nữa
ình tìm kiếm
êm các công
runer). Nói v
iá trị mật độ
sẽ gọi đến thà
nh điểm số.
chúng ta đã q
PC chỉ chiếm
tủ lạnh, tóm
omputing, ha
ược sử dụng p
húng Raspbe
rry Pi [4] là m
Raspberry Pi
iệc tùy biến
chip xử lí mo
eo, và các tín
Audio
vi cấp thấp
nuôi
ước
u hành
Phan Thiện Phướ
ó thể được đá
ừ và ngữ cản
hình ngôn ng
arch Graph)
kiếm này là
t trong hai trạ
ạng thái biến
chuyển từ trạ
t hợp với đồ
ả nhận dạng.
ương ứng củ
Sphinx cung
khác các hệ
để tăng hiệu
cụ hỗ trợ cho
ề thành phần
trạng thái xu
nh phần Scor
uen lập trình
một phần n
lại là tất cả
y physical co
hổ biến hiện
rry Pi
Hì
ột máy tính
Foundation
khác nhau. Đ
bile có kích th
h năng khác
ARM1
Broadc
(1080)
512M
2 cổng
Giắc 3
Ethern
8 GPIO
5V/700
85.60 m
Debian
c
nh giá dựa v
h từ thành ph
ữ.
: Là kết quả
một đồ thị c
ng thái: phát
đổi có thể, trê
ng thái này đ
thị tìm kiếm
Nhiệm vụ củ
a nó trong đồ
cấp các tiện
thống khác là
suất tìm kiếm
việc đánh giá
Scorer thì nó
ất hiện. Khi t
er, nó sẽ phâ
III. HỆ T
trên PC, với n
hỏ sản lượng
các thiết bị đ
mputing, tức
nay là Arduin
nh 2. Máy tính
nhúng kích c
với tiêu chí x
ặc tính của
ước nhỏ hay
Tất cả được
Bảng 1. Bản
176JZF-S 700M
om Video Cor
H.264/MPEG-
B SDRAM
.5mm, HDMI
et RJ45, USB h
, UART, I2C,
mA (3.5W), cấ
m x 53.98 mm
GNU/Linux, R
ào các đặc trư
ần mô hình n
mà bộ ngôn n
ó hướng, tron
hoặc không p
n các cung nà
ến trạng thái
được phát sin
a thành phần
thị tìm kiếm.
ích có khả năn
không gian t
. Ngoài ra để
kết quả nhận
là một modu
hành phần qu
n tích các thô
HỐNG NHÚ
hững ngôn n
phần mềm tr
iện tử xung q
là lập trình tư
o và Raspber
nhúng Raspbe
ỡ nhỏ và chạy
ây dựng hệ t
Raspberry Pi
được dùng tro
tích hợp bên
g cấu hình Ras
Hz
e IV, hỗ trợ O
4
- Lưu trữ: khe
ub...
SPI, +3.3V, +5
p nguồn qua U
aspbian OS, A
ng được cun
gôn ngữ. Định
gữ phát sinh
g đó mỗi nút
hát (emitting
y có các giá t
kia. Bộ giải m
h từ bộ ngôn
quản lý tìm k
Để đáp ứng
g phát sinh l
ìm kiếm tron
nâng cao hiệu
được, đó là t
le dùng để ư
ản lý tìm kiếm
ng tin đặc trư
NG
gữ như C, C+
ên thị trường
uanh chúng ta
ơng tác với c
ry Pi.
rry Pi thế hệ B
hệ điều hành
hống mà nhi
xây dựng x
ng điện thoại
trong con chi
pberry Pi
penGL,MPEG
cắm thẻ SD/M
V, GND
SB hoặc chân G
rch Linux ARM
g cấp bởi bộ
nghĩa ngữ c
được cuối cù
được gọi là
state hay non
rị xác suất đư
ã (Decoder)
ngữ để tiến h
iếm là nhận
tìm ra kết qu
ưới và các đá
g Sphinx có t
suất của kết
hành phần đá
ớc lượng xác
yêu cầu đá
ng của trạng
+, C#, Java, P
. Còn lại là co
. Lập trình th
ác thiết bị thự
Linux. Đượ
ều người có t
oay quanh b
di động) bao
p này.
-2, VC-1; phá
MC, SDIO -
PIO
, RISC OS, F
ngoại vi. Các
ảnh này được
ng để đưa và
một trạng thá
-emitting stat
ợc tính toán t
: Sử dụng các
ành giải mã v
dạng các tập
ả chính xác tr
nh giá độ tin
hể được tinh
quả nhận dạn
nh giá (Score
suất của trạn
nh giá điểm s
thái đó rồi áp
ython, Ruby
de điều khiển
eo hướng này
c. Và 2 trong
c phát triển b
hể sử dụng đ
ộ xử lí SoC
gồm CPU, G
t video Full H
Kết nối: 10/1
reeBSD, Plan 9
577
ánh xạ có
xây dựng
o sử dụng
i tìm kiếm
e). Và các
ừ mô hình
đặc trưng
à áp dụng
các vector
ong đồ thị
cậy từ kết
chỉnh thay
g, Sphinx
r) và thành
g thái khi
ố cho một
dụng các
, Nhưng
tivi, máy
được gọi
số các hệ
ởi tổ chức
ược trong
Broadcom
PU, bộ xử
D
00
5
tr
k
th
c
tr
R
n
ứ
q
1
th
G
B
c
c
k
G
t
th
th
th
b
tư
b
78
Raspbe
ợ mã x86/x64
hác. Raspberr
ích của ngườ
huyên dụng c
ình cho việc
aspberry Pi. N
goại vi qua h
ng dụng như:
Trong s
ua phải khi đ
7: chân nguồ
eo chuẩn UA
PIO giao tiếp
. Board mạc
Arduino
ơ, Bo mạch
huẩn hóa, nên
ết nối Interne
SM shield,
ải về trình biê
Để điều
ông qua són
u/phát sóng v
Module
iết bị ngoại v
ps. Và luôn l
ơng ứng (gử
Hệ thốn
ằng sóng vô t
rry Pi không t
, nhưng vẫn
y Pi hỗ trợ lậ
i dùng. Khả
hỉ xử lý 1 hay
nhận dạng tiế
hằm mục đí
àng chân GPI
điều khiển ro
ơ đồ chân GP
ặt Raspberry P
n 3.3v, 2, 4:
RT, 7, 11, 1
chuẩn I2C, 1
h xử lý Ardu
là một bo m
này sử dụng
đã có rất nh
t thì có Ethern
Bài báo sử d
n dịch Arduin
I
khiển thiết b
g vô tuyến. M
ô tuyến RF S
này dùng để
i. Module này
uôn lắng ngh
i tín hiệu HIG
V. MÔ
g điều khiển
uyến.
hể chạy hệ đi
có thể chạy b
p trình C/C++
năng lập trình
vài công việ
ng nói thử ng
ch tối ưu tron
O. Với tính nă
bot, điều khiể
IO [5] có cá
i, hàng chân
chân nguồn 5
2, 13, 15, 16
2: GPIO điều
ino
ạch xử lý đư
ngôn ngữ lậ
iều các bo mạ
et shield, mu
ụng trình biê
o 1.0.6 và sử
V. XÂY DỰN
ị điện 220V A
odule được x
I4463, modu
Hình 4
nhận lệnh điề
chạy cùng tầ
e lệnh từ bộ
H/LOW qua
HÌNH ĐIỀU
trung tâm sẽ
ều hành Wind
ằng Linux vớ
, Java, Pytho
ngay trên R
c thì việc lập
hiệm với độ
g quá trình xử
ng này Raspb
n thiết bị điện
Hình 3
c chân được đ
GPIO sẽ nằm
v, 6, 9, 14, 20
, 18 và 22: ch
khiển PWM
ợc dùng để
p trình là ngô
ch mở rộng (
ốn điều khiển
n dịch mà Ard
dụng phiên b
G MODUL
C, bài báo sử
ây dựng từ c
le bật/tắt điện
. Mô hình kết n
u khiển từ hệ
n số 433 kHz
trung tâm. Vớ
chân số 9 trên
KHIỂN TH
nhận tín hiệu
Hình 5. Sơ đ
P
ows vì bộ xử
i các tiện ích n
n, việc hỗ
aspberry Pi v
trình trở nên
ổn định cao. B
lý tiếng nói.
erry Pi có thể
trong nhà,
. Sơ đồ chân G
ánh thứ tự hà
cạnh bên cổn
, 25: chân nố
ân GPIO, 19
, tăng giảm cư
lập trình tươn
n ngữ gần gi
gọi là shield)
động cơ thì
uino cung cấ
ản dành cho h
E ĐIỀU KHI
dụng một m
ác thiết bị: bo
220V AC. Cá
ối module điều
thống trung t
với bộ điều k
i mỗi lệnh đ
Arduino Pro
IẾT BỊ BẰN
tiếng nói và p
ồ hoạt động củ
HƯƠNG PHÁP
lí BCM2835
hư lướt web,
trợ nhiều ngô
ẫn có thể đượ
khó khăn. Do
ước tiếp the
Máy tính nhú
được áp dụn
PIO
ng trên là số
g tín hiệu vid
i đất Ground
, 21, 23, 24,
ờng độ.
g tác các thi
ống với C/C+
để cắm chồn
có Motor shie
p để lập trình
ệ điều hành W
ỂN THIẾT B
odule điều kh
mạch xử lý
c thiết bị đượ
khiển thiết bị
âm và đưa ra
hiển trung tâ
ược gửi đến t
Mini).
G TIẾNG NÓ
hản hồi điều
a hệ thống
ĐIỀU KHIỂN T
dựa trên cấu t
môi trường d
n ngữ lập trìn
c, tuy nhiên
đó bài báo đ
o đưa đoạn co
ng này còn h
g vào nhiều c
chẵn hàng dư
eo trên bo Ra
0v, 8, 10: GP
26: GPIO gia
ết bị phần cứ
+. Arduino l
g lên bo mạch
ld, muốn kết
tại trang chủ
indows.
Ị TỪ XA
iển giao tiếp
Arduino Pro M
c kết nối với
từ xa
quyết định bậ
m và tốc độ tr
hì module nà
I TIẾNG V
khiển các thi
HIẾT BỊ BẰNG
rúc ARM nên
esktop và các
h nhằm tùy bi
với một chiế
ã dùng máy
de vào hệ th
ỗ trợ điều kh
ông trình ngh
ới là số lẻ. T
spberry Pi. Tr
IO truyền nh
o tiếp chuẩn
ng như cảm
à một nền tản
Arduino. Ví
nối nhận tin n
với bo điều k
ini (ATmeg
nhau như sau
t hay tắt nguồ
uyền (baudra
y sẽ điều khi
IỆT
ết bị ngoại vi
TIẾNG NÓI
không hỗ
nhiệm vụ
ến theo sở
c máy tính
tính để lập
ống nhúng
iển thiết bị
iên cứu và
ính từ trái
ong đó: 1,
ận tín hiệu
SPI, 3, 5:
biến, động
g đã được
dụ, muốn
hắn thì có
rduino.cc/,
hiển chính
a 328), bộ
:
n điện cho
te) là 9600
ển thiết bị
bên ngoài
Đỗ Văn Minh, Nguyễn Minh Sơn, Phan Thiện Phước 579
Tín hiệu tiếng nói được thu từ micro gửi đến chương trình xử lý trong máy tính nhúng Raspberry Pi. Sau đó
được khử nhiễu. Tại đây chương trình sẽ nhận dạng những câu lệnh mà đã được học và gửi tín hiệu điều khiển qua bộ
phát RF đến module điều khiển 220V AC để bật/tắt thiết bị tương ứng với module đó. Để có thể xây dựng được hệ
thống điều khiển trung tâm, bài báo sử dụng các phần mềm và thư viện hỗ trợ sau: Thư viện nhận dạng Pocketsphinx,
CMUCLMTK, OpenFST, MIT Language Modeling Toolkit, m2m-aligner, Phonetisaurus, Python, subversion,
autoconf, libtool, automake, gfortran, g++, jasper và RPi GPIO. Đây là các phần mềm và thư viện hỗ trợ điều khiển
chân GPIO, các trình biên dịch để xây dựng chương trình và thư viện nhận dạng tiếng nói, Ở đây bài báo sử dụng tên
cho hệ thống là “ROBOT” - là từ ít xuất hiện khi người Việt nói chuyện với nhau nên sẽ không làm cho thiết bị hiểu
nhầm là lệnh. Đầu tiên, cần xây dựng bộ từ điển được sử dụng. Các từ này được chứa trong một tập tin định dạng *.txt
với nội dung là :”ROBOT” Sau khi xây dựng tập tin cho từ ROBOT.
ROBOT R OW B AA T
ROBOT(2) R OW B AH T
Và một tập tin mô hình ngôn ngữ của từ điển này cũng được cho ra với nội dung như sau:
\data\
ngram 1=3
ngram 2=2
ngram 3=1
\1-grams:
-0.7782 -0.3010
-0.7782 -0.2218
-0.7782 ROBOT -0.2218
\2-grams:
-0.3010 ROBOT 0.0000
-0.3010 ROBOT -0.3010
\3-grams:
-0.3010 ROBOT
\end\
Một số module không cần thiết đã được xóa đi là: Birthday.py, HN.py, Joke.py, Life.py, News.py, Time.py,
Weather.py. Và để điều khiển được thiết bị qua sóng vô tuyến bài báo sử dụng 2 loại module với nội dung sau:
Module gửi tín hiệu là một chuỗi các ký tự điều khiển từ xa qua sóng vô tuyến truyền với tốc độ là 9600 bps và
mỗi lần truyền tín hiệu mất 0,05 giây.
import serial
#...
def main(argv):
try:
opts, args = getopt.getopt(argv,"b:p:h:s:r ",['input=', 'params=', 'help'])
except getopt.GetoptError:
sys.exit(2)
for opt, arg in opts:
if opt in ("-r", "--radio"):
port = serial.Serial("/dev/ttyAMA