Có nhi u cách phân lo i các mô hình Markov n,ătrongăđóăng iătaăth ng phân bi t các mô hình Markov n theo tính ch t c a hàm phát x quan sát. Có ba lo i mô hình Markov n là: mô hình Markov n r i r c, mô hình Markov n liên t c và mô hình Markov n bán liên t c.
Mô hình HMM r i r c:ă ă Trongă môă hìnhă nƠyă khôngă giană cácă đ c tính ph đ c chia thành m t s h u h n các vùng bằngăph ngăphápăl ng t hóa vector VQ. Tr ng tâm c a mỗiăvùngăđ c bi u di n bằng m t t mã mà thực ch t là m t ch s ch t i codebook. M t khung tín hi uăđ c bi n đ i thành m t t mã bằng cách tìm m t vector g n nó nh tă trongă codebook.ă Nh c đi m c a mô hình này là có sai s trongăquáătrìnhăl ng t hóa nh t là khi kíchăth c c a codebook là nh ,ăng c l i n uăkíchăth c c a codebook l n thì s l ng các phép tính s tĕngălên.
Mô hình HMM liên t c:ăNh căđi m c a mô hình HMM r i r c có th đ c kh c ph c bằng cách dùng mô hình HMM liên t c là CD ậ HMM. Trong ph ngăphápănƠyăkhôngăgianăcácăđ c tính ph đ c mô hình hóa bằng các hàm m tăđ xác su t,ăthôngăth ng là hàm tr n c aăcácăhƠmăGauss.ăNh c đi m c a mô hình này là mỗi tr ngătháiăđ có các tham s c a riêng chúng, doăđóămƠăs l ng các tham s r t l n, vì v y s x y ra v năđ khôngăđ d li uăđ hu n luy n cho các tr ng thái. Ngoài ra mô hình liên t c s có th i gian tính toán khá lâu.
Mô hình HMM bán liên t c: là mô hình h t h p gi a mô hình HMM r i r c và mô hình HMM liên t c. Gi ngănh ămôăhìnhăr i r c, trong mô hình bán liên t căcũngăcóăcácăcodebookămôăt cácăvùngăđ c dùng chung cho t t c các tr ng thái. Tuy nhiên, thay vì bi u di n các vùng bằng m t tr ng tâm thì các vector lân c n s đ c nhóm vào làm m t,ăcácăvùngăđ c bi u di n b i các hàm m tăđ xác su t liên t c Gauss trong vùng không gian lân c năđ tránh các lỗi c aăl ng t hóa.
Ch ng 5:
THI T K PH N C NG VÀ M CH ĐI U KHI N
ROBOT
5.1.T ng quan v ph n c ng c a h th ng
Môăhìnhăđi u khi n robot th hi n c măxúcăđ c thi t k nh ăhìnhă5.1:
H̀nh 5.1:Môăhốnhănhốnătr c.H̀nh 5.2:Môăhốnhănhốnănghiêngă. 1. L năl tălƠăcácăđ ngăc ăRCăservo th 1, th 2, th 3 ( t trái qua ph iă)ăđ
đi u khi n lông mày bên trái .
2. L năl tălƠăcácăđ ngăc ăRCăservoăth 4, th 5, th 6 (t trái sang ph i)đ đi u khi n lông mày bên ph i.
3. L năl t là m t bên trái và bên ph i ( t trái qua ph i ) 4. L năl t là lông mày bên trái và bên ph i.
5. L năl t là môi trên và môiăd i c a robot.
6. L năl t là các RC servo th 10, th 11, th 12 (t trái sang ph i)ăđ đi u khi nămôiăd i c a robot.
7. L năl t là các RC servo th 7, th 8, th 9 (t trái sang ph i)ăđ đi u khi n môi trên c a robot.
9. L năl t là các RC servo th 16, th 17 có tác d ng giúp m t robot có th li c qua l i.
10. L năl tălƠăcácăđ ngăc ăRCăservoăth 13, th 14 (tính t ngoài vào trong) có tác d ng khép hay m các mí m t trên c a m t bên trái và bên ph i.
H̀nh 5.3: Môăhốnhănhốnăt bên trái
5.2. Lựa ch n thi t b 5.2.1. Đ ng c
Gi i thi u
Đ ngăc ăservoăcóănhi u ki uădángăvƠăkíchăth c,ăđ c s d ng trong nhi u máy khácnhau, t máy ti năđi u khi n bằngămáyătínhăchoăđ n các mô hình máy bay vƠăxeăh i. ngd ng m i nh t c aăđ ngăc ăservoălƠătrongăcácărobot,ăcùngălo i v i các đ ngăc ădùngătrongmôăhìnhămáyăbayăvƠăxeăh i.
Đ tài s s d ngăđ ngăc ăRCăservoăđ đi u khi năvìăđ ngăc ăRCăservoăđi u khi n đ c m t góc quay chính xác nh vào kỹ thu t g iălƠăđi u ch biên đ r ng xung (PWM).
C u t o bên trong c aăđ ngăc ăRCăservoănh ăhìnhă5.5.
Hình 5.5:C u t o bên trong c a RC servo. 1. Môăt ăđ ngăc .
2. ElectronicsăBoardă(Boardăđi n t ).
3. Positive Power Wire (Red) (Dây ngu nămƠuăđ ).
4. Signal Wire (Yellow or White) (Dây tín hi uăth ng là màu vàng ho c màu tr ng).
5. Negative or Ground Wire (Black) (DơyăGNDămƠuăđen). 6. Potentiometer (Bi n tr ).
8. Servo Attachment Horn/Wheel/Arm (bánh xe). 9. Servo Case (V Servo).
10.Integrated Control Chip (Chipăđi u khi n).
Đ ngăc ăvƠăvônăk n i v i m chăđi u khi n t o thành m ch h i ti p vòng kín. C m chđi u khi năvƠăđ ngăc ăđ uăđ c c p ngu năDCă(th ng t 4.8 ậ 7.2 V).
Servo va điêu chê biên đô ̣ đô ̣ rô ̣ng xung
Trong h th ngănƠy,ăservoălƠăđápă ng c a m t dãy các xung s năđnh. C th h n,ăm chăđi u khi nălƠăđápă ng c a m t tín hi u s có các xung bi năđ i t 1 ms - 2ăms.ăCácăxungănƠyăđ c g iăđiă50ăl n/giây. Chú ý rằng không ph i s xung trong m tăgiơyăđi u khi n servo mà là chi u dài c aăcácăxung.Servoăđòiăh i kho ng 30 - 60 xung/giây.N u s này quá th p,ăđ chính xác và công su tăđ duy trì servo s gi m. V iăđ dƠiăxungă1ms,ăservoăđ căđi u khi n quay theo m t chi u (gi s là chi uăkimăđ ng h ). V iăđ dài xung 2ms, servo quay theo chi uăng c l i.
Đi u khi n v trí tr c ra c aăđ ngăc ăbằng cáchăđi u ch đ r ng xung (Hình 5.6).
Đ tƠiănayăs ̉ ădụngăđộngăc ăRcăservoăEMax ES08A.
H̀nh 5.7: Đ ngăc ăRCăServoăEMaxăES08A Thông s kỹ thu t
Tr ngăl ng : 8,5g
Kích th c: L23.6mm x W11.5mm x 27.75mm.
Dây dỡn:ăGNDă=ădơyănơu,ăVCCă=ădơyăđ , tín hi u = dây cam. Các tính năng
Model: Emax ES08A.
Stall Torque: 1.5 kg / cm (4.8V), 1.8 kg / cm (6.0V).
Operating Speed: 0.12 sec/60° C(4.8V), 0.1sec / 60° (6.0V). Operating voltage: 4.8 - 6V.
Temperature range: 0°C - 55°C.
Dimension: 32.0mm x 11.5mm x 24mm. Weight: 8.5g.
Wire length: 230mm.
Connector Type: JR / Futaba compatible.
5.2.2. Board Arduino Mega 2560
Gi i thiê ̣u board arduino:
Arduinoălaămô ̣tăboăma ̣chăviăx ̉ ălyăđ ̣cădungăđểălơ ̣pătrốnhăt ngătacăv iăcacăthiêtă b ăph năc ngănh ăc măbi n , đô ̣ngăc , đenăhoĕ ̣căcacăthiêtăbi ̣ăkhac . Đ căđi măn iăb tă c aăArduinoălƠămôiătr ngăphátătri nă ngăd ngăcựcăkìăd ă s ̉ ădụng, v iămô ̣tăngônăng ̃ă
lơ ̣pătrốnhăcoăthểăho ̣cămô ̣tăcachănhanhăchongăngayăcảăv iăng iăốtăamăhiểuăvêăđiê ̣năt ̉ ă vƠăl pătrình. Ng iădungăđãăcoăthểăs ̉ăh ̃uămộtăboăArduinoăcoă 20 ng̃ăI/Oăcoăthểă t ngătacăvaăđiêuăkhiểnăch ngăơyăthiêtăbi ̣.
Kh năng c a bo m ch Arduino
Boăma ̣chăArduinoăs ̉ ădụngădongăviăx ̉ ălyă 8-bitămegaAVRăcủaăAtmelăv iăhaiă chipăphổăbiênănhơtălaăAtmega328 vƠăAtmeaga2560. Cácădòngăviăx ălýănƠyăchoăphépă lơ ̣pătrốnhăcacă ngădụngăđiêuăkhiểnăph căta ̣pădoăđ ̣cătrangăbi ̣ăcơuăhốnhăma ̣nhăv iăcacă lo iăb ănh ăROM, RAMăvaăFlash, cácăng̃ăraădigitalăI /Oătrongăđoăcoănhiêuăngõăcoă kh ănĕngăxu tătínăhi uăPWM, cácăng̃ăđ cătínăhi uăanalogăvƠăcácăchu năgiaoăti păđaă d ngănh ăUART, SPI, TWI (I2C).
Kh năng x lý
Xung nh p: 16MHz.
EEPROM: 1KB (Atmega328) và 4KB (Atmega2560). SRAM: 2KB (Atmega328) và 8KB (Atmega2560). Flash: 32KB (Atmega328) và 256KB (Atmega2560). Đ c tín hi u c m bi n ngõ vào
Digital
Các bo m chă Arduinoăđ u có các c ng digital có th c u hình làm ngõ vào ho c ngõ ra bằng ph n m m.ă Doă đóă ng i dùng có th linh ho t quy tă đ nh s l ng ngõ vào và ngõ ra. T ng s l ng c ng digital trên các m ch dùng Atmega328 là 14, và trên Atmega2560 là 54.
Analog
Các bo m chăArduinoăđ u có trang b các ngõ vào analog v iăđ phân gi i 10- bit (1024 phân m c, ví d v iăđi n áp chu nălƠă5Văthìăđ phân gi i kho ng 0.5mV). S l ng c ngăvƠoăanalogălƠă6ăđ i v iăAtmega328,ăvƠă16ăđ i v i Atmega2560. V i tínhănĕngăđ căanalog,ăng i dùng có th đ c nhi u lo i c m bi nănh ănhi tăđ , áp su t,ăđ m, ánh sáng, ầ
Xu t tín hi u c m bi n ngõ ra
Digital output
T ngă tự nh ă cácă c ngă vƠoă digital,ă ng i dùng có th c u hình trên ph n m mđ quy t đnh dùng ngõ digital nào là ngõ ra. T ng s l ng c ng digital trên các m ch dùng Atmega328 là 14, và trên Atmega2560 là 54.
PWM output
Trong s các c ngădigital,ăng i dùng có th ch n m t s c ngădùngăđ xu t tín hi uăđi u ch xungăPWM.ăĐ phân gi i c a các tín hi u PWM này là 8bit. S l ng c ngă PWMă đ i v iă cácă boă dùngă Atmega328ă lƠă 6,ă vƠă đ i v i các bo dùng Atmega2560 là 14. PWM có nhi u ng d ng trong vi n thông, x lý âm thanh ho c đi u khi năđ ngăc ămƠăph bi n nh tălƠăđ ngăc ăservosătrongăcácămáyăbay mô hình.
Chu n giao ti p
Serial
Đơyă lƠă chu n giao ti p n i ti pă đ c dùng r t ph bi n trên các bo m ch Arduino. Mỗi bo có trang b m t s c ng Serial c ng (vi c giao ti p do ph n c ng trong chip thực hi n). Bên c nhăđó,ăt t c các c ng digital còn l i đ u có th thực hi n giao ti p n i ti p bằng ph n m mă(cóăth ăvi n chu n,ăng i dùng không c n ph i vi t code). M c tín hi u c a các c ngănƠyălƠăTTLă5V.ăL uăýăc ng n i ti p RS- 232 trên các thi t b ho c PC có m c tín hi uălƠăUARTă12V.ăĐ giao ti păđ c gi a hai m c tín hi u, c n ph i có b chuy n m c, ví d nh ăchipăMAX232.ăS l ng c ng Serial c ng c a Atmega328 là 1 và c a Atmega2560 là 4. V iătínhănĕngăgiaoă ti p n i ti p, các bo Arduino có th giao ti păđ c v i r t nhi u thi t b nh ăPC,ă touchscreen, cácăgameăconsoleầ
USB
Các bo Arduino tiêu chu năđ u có trang b m t c ngăUSBăđ thực hi n k t n i v i máy tính dùng cho vi c t iăch ngătrình.ăTuyănhiênăcácăchipăAVRăkhôngăcóă c ngă USB,ă doă đóă cácă boă Arduninoă ph i trang b thêm ph n chuy nă đ i t USB thành tín hi uăUART.ăDoăđóămáyătínhănh n di n c ng USB này là c ng COM ch không ph i là c ng USB tiêu chu n.
SPI
ĐơyălƠăm t chu n giao ti p n i ti păđ ng b có bus g m có 4 dây. V i tính nĕngănƠyăcácăboăArduinoăcóăth k t n i v i các thi t b nh ăLCD,ăb đi u khi n video game, b đi u khi n c m bi n các lo i,ăđ c thẻ nh SDăvƠăMMCầ
TWI (I2C)
ĐơyălƠăm t chu n giao ti păđ ng b khácănh ngăbusăch có hai dây. V i tính nĕngănƠy,ăcácăboăArduinoăcóăth giao ti p v i m t s lo i c m bi nănh ăthermostată c a CPU, t căđ qu t, m t s mƠnăhìnhăOLED/LCD,ăđ c real-time clock, ch nh âm l ng cho m t s lo iăloaầ
Môi tr ng l p trình m ch Arduino
Thi t k bo m ch nh g n, trang b nhi uătínhănĕngăthôngăd ng mang l i nhi u l i th cho Arduino, tuy nhiên s c m nh thực sự c a Arduino nằm ph n m m. Môiătr ng l pătrìnhăđ năgi n d s d ng, ngôn ng l p trình Wiring d hi u và dựa trên n n t ng C/C++ r t quen thu c v iăng i làm kỹ thu t. Và quan tr ng là s l ngăth ăvi năcodeăđ c vi t s n và chia sẻ b i c ngăđ ng ngu n m là cực kỳ l n.
Hình 5.8: giao di n IDE c a Arduino
Môi tr ng l p trình Arduino IDE có th ch y trên ba n n t ng ph bi n nh t hi n nay là Windows, Macintosh OSX và Linux. Do có tính ch t ngu n m nên môi tr ng l p trình này hoàn toàn mi n phí và có th m r ng thêm b iăng i dùng có kinh nghi m.
Ngôn ng l p trình có th đ c m r ngăthôngăquaăcácăth ăvi n C++. Và do ngôn ng l p trình này dựa trên n n t ng ngôn ng C c aăAVRănênăng i dùng hoàn toàn có th nhúng thêm code vi t bằngăAVRăCăvƠoăch ngătrình n u mu n.
Bo Arduino Mega 2560
Arduino Mega 2560 đ căđi u khi n b iăviăđi u khi n Atmega2560. Nó có 54 chân đ u vào/ăđ u ra s ,ă16ăđ uăvƠoăt ngătự, 4 UARTs (c ng n i ti p ph n c ng), m t tinhăthểădaoăđô ̣ngă 16 MHz, 1 cổng USB, m tăjackănguôn , ICSP và m t nút Reset. Nó ch a t t c m i th c n thi tăđ hỗ tr cácăviăđi u khi n, ch c n k t n i nó v i m t máy tính bằng cáp USB ho c s d ng nó v i m t b chuy năđ i AC thành DCăhayăpinăđ b tăđ u.
BoardăArduinoăMegaă2560ănh ăhìnhă5.9.
S đô chi tiêt Board Arduino Mega 2560 (Hình 5.10)
Hình 5.10: Board Arduino Mega 2560 S ăđôăchơnăchipăATMEGAă2560
Kh năng x lý
Xung nh p: 16MHz.
EEPROM: 4KB (Atmega2560).
SRAM: 8KB (Atmega2560).
Flash: 256KB (Atmega2560).
S chơnăđi u xung PWM c a board Arduino Mega lênăđ n 52 chân (t chân 2 ậ 53). Lý do mƠăđ tƠiăđƣăch n board Arduino MegaăăđiêuăkhiểnăRcăservoăvốănoăđiêuăkhiểnă servoăchốnh xácăgócătheoămongămu năvƠăcƠiăđ tăgóiăhỗătr ăArduinoăvƠoăMatlabăkháă dễădang.
H̀nh 5.12: S ăđôănguyênălyăcủaăArduinoăMegaă2560. Các b c cƠi đ t cƠi đ t gói h̃ tr Arduino vƠo Matlab
Hình 5.14: KhungăTargetăInstallerăxuơtăhiê ̣n, nhơnăNext.
Hình 5.16 : L ̣aăcho ̣năgoiăhỗătr ̣ăArduinoăvaătiêpătụcănhơnăNext.
Hình 5.18 : Matlabăđangăcaiăgoiăhỗătr ̣ăArduino.
Ch ng 6:
THI T K H TH NG NH N D NG VÀ PH N M M GIAO DI N NH N D NG
Ch ngă6ăs đ c păđ n v năđ thi t k ph n m m nh n d ng ti ng nói ti ng Vi t trên máy tính dựa trên các v năđ lý thuy tăvƠăýăt ngăđƣăđ căđ c p cácăch ngă tr c.
Hi n nay, m t s h th ng nh n d ng ti ng nói ti ng Vi tăđƣăđ c tri n khai trên máy tính cá nhân s d ng nh ng công c toán h c và các công c hỗ tr c a ph n m m Matlab. Vì kh nĕngăx lýăcácăphépătoánăđòiăh i t căđ vƠăđápă ngănhanhăđ i v i h th ng , chính vì v yăđ tài t p trung xây dựngăch ngătrìnhănh n d ng ti ng nói ti ng Vi t trên máy tính bằng ph n m m Matlab.
6.1. Thi t k h th ng nh n d ng ti ng nói trên máy tính
H th ng nh n d ng thực hi n tác v nh n d ng các t đ n.ăDoăđó,ăgi s chúng ta có R t c năđ c nh n d ng và mỗi t đóăs đ c mô hình hóa bằng m t mô hình HMM,ăsauăđóăquiătrìnhănh n d ng s đ c thực hi nănh ăHình 6.1. Vì v y, chúng ta ph i ti năhƠnhătheoăcácăb c sau: [4]
Trích ch năđ cătr ng:ămỗi m t khung ph tín hi u ti ng nói trong mi n th i gian s đ c phân tích m tăvectorăđ c tr ng,ănóăs đ c s d ngăđ hu n luy n mô hình HMM.
L ng t hóa vector: k t qu c a vi c trích ch năđ cătr ngăti ng nói là m t dƣyăcácăvectorăđ 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 vector này thành m t t p các vector r i r c nhằm m căđíchălƠmăgi m s l ng tính toán cho vi c hu n luy n hay nh n d ng trên mô hình.
Hu n luy n HMM: v i mỗi m t t trong b t vựng chúng ta ph i xây dựng m t mô hình HMM. Chúng ta ph iă cătínhăđ c các thông s c a mô hình đ xác l p kh nĕngăl n nh t c a t p vector hu n luy n c a mỗi t .
Nh n d ng bằng mô hình HMM: mỗi t trong b t vựngăđ c nói s đ c nh n d ngătheoăquiătrìnhănh ătrongăHình 6.1, chuỗiăquanăsátăthuăđ c thông quaăphơnătíchăđ cătr ngăvƠăb vectorăđƣăđ căl ng t hóa. Ti p theo tính toán kh nĕngăchoăt t c cácămôăhìnhăvƠăsauăđóălƠăl ng ch n t mà nó có kh nĕngăcaoănh t.
Ti năx ălý Tríchăch năđ cătr ngăMFCC VQ
Ti ngănóiă đ uăvƠo HMM Nh năd ng Hu năluy n O O
Hình 6. 1:S ăđ kh i mô hình hu n luy n và nh n d ng t đ n
6.1.1. Trích đ c tr ng
Đ u tiên, m u ti ngănóiăđ c tách kh i kho ng l ng bằng thu t toán c tính công su t trong kho ng th i gian ng n và t l quaăđi m zero. [5]
Tính Wxchoăt ngă khung Tính Wxchoăt ngă khung Start Start Wx >= tW Wx >= tW vad = 1vad = 1 Nh năm u Nh năm u vad = 0 vad = 0 End End Đ S Chiaătínăhi uăthƠnhă khung, mỗiăkhungă có N = 160 m u Chiaătínăhi uăthƠnhă khung, mỗiăkhungă có N = 160 m u S ăkhungă= s ăkhungăậ 1 S ăkhungă= s ăkhungăậ 1 S ăkhungă≠ă0 S ăkhungă≠ă0 S Đ
Hình 6. 2:L uăđ gi i thu t thực hi n tách ti ng nói kh i kho ng l ng Trong Hình 6.2, v i Wx và tWnh ăđƣăđ cătrìnhăbƠyătrongăCh ngă3.
Sauăđó,ăti ngănóiăđ c chia thành t ng khung, mỗi khung có N m u, và N = 160 t ngă ng v i th i gian l y m u là 20 ms t i t n s l y m u là 8 kHz. Khung k ti p
cáchăkhungătr c kho ng ΔN m u, ΔN đ c g i kho ng ch ng l p, và ΔN =ă50ăt ngă ng v i th i gian là 5 ms. Sau khi chia khung, thực hi n phân tích các khung tín hi u nƠyăthƠnhăcácăđ cătr ngătheoăph ngăphápăMFCC.
Start Start Frame blocking Frame blocking x1(n) Windowing Windowing x1(k;m) 256-point FFT 256-point FFT x2(k;m) |X2(n;m)| |X2(n;m)| X2(n;m) Mel scaled filterbank Mel scaled filterbank |X2(n;m)| Log(mk) Log(mk) mk IDCT IDCT log(mk) Lifter Lifter End End Log(Em) Log(Em) Em Delta calculation
Delta calculation Acceleration
calculation
Acceleration calculation
ch(n;m) δ(1)(n;m) δ(2)(n;m) cs(n;m)
Hình 6.3. L uăđ gi i thu t thực hi n phân tích h s đ cătr ng