OpenVINO แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜: แƒฎแƒ›แƒ˜แƒก แƒ“แƒ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ Raspberry Pi-แƒ–แƒ”

30 แƒœแƒแƒ”แƒ›แƒ‘แƒ”แƒ แƒ˜ - 1 แƒ“แƒ”แƒ™แƒ”แƒ›แƒ‘แƒ”แƒ แƒ˜ แƒœแƒ˜แƒŸแƒœแƒ˜ แƒœแƒแƒ•แƒ’แƒแƒ แƒแƒ“แƒจแƒ˜ แƒ’แƒแƒ˜แƒ›แƒแƒ แƒ—แƒ OpenVINO แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜. แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ”แƒ‘แƒก แƒกแƒ—แƒฎแƒแƒ•แƒ”แƒก แƒจแƒ”แƒ”แƒฅแƒ›แƒœแƒแƒ— แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ˜ Intel OpenVINO แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒฃแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒขแƒแƒ แƒ”แƒ‘แƒ›แƒ แƒจแƒ”แƒกแƒ—แƒแƒ•แƒแƒ–แƒ”แƒก แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒ แƒ—แƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒ—แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒแƒ“แƒ แƒ˜แƒฎแƒ”แƒšแƒ›แƒซแƒฆแƒ•แƒแƒœแƒ”แƒšแƒแƒ— แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒกแƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ แƒ’แƒฃแƒœแƒ“แƒ”แƒ‘แƒก แƒ“แƒแƒ แƒฉแƒแƒ—. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒฌแƒแƒฎแƒแƒšแƒ˜แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒจแƒ”แƒ“แƒ˜แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒจแƒ˜.

OpenVINO แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜: แƒฎแƒ›แƒ˜แƒก แƒ“แƒ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ Raspberry Pi-แƒ–แƒ”

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒแƒ’แƒ˜แƒงแƒ•แƒ”แƒ‘แƒ˜แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒ“แƒแƒ•แƒ˜แƒ™แƒแƒ•แƒ”แƒ—.

แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒจแƒ˜ 10-แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒ’แƒฃแƒœแƒ“แƒ˜ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒแƒ‘แƒ“แƒ. แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒแƒ, แƒ แƒแƒ› แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜ แƒกแƒฎแƒ•แƒ แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒฉแƒแƒ›แƒแƒ•แƒ˜แƒ“แƒ. แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜แƒก แƒฉแƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒกแƒ˜ โ€žแƒ™แƒ แƒ”แƒ›แƒšแƒ˜แƒœแƒกแƒ™แƒ˜ แƒžแƒแƒฉแƒแƒ˜แƒœแƒ–แƒ”โ€œ, แƒกแƒแƒ“แƒแƒช แƒœแƒ˜แƒŸแƒœแƒ˜ แƒœแƒแƒ•แƒ’แƒแƒ แƒแƒ“แƒ˜แƒก แƒฃแƒซแƒ•แƒ”แƒšแƒ”แƒกแƒ˜ แƒคแƒแƒขแƒแƒ”แƒ‘แƒ˜ แƒ”แƒ™แƒ˜แƒ“แƒ แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒ’แƒแƒ แƒ”แƒ›แƒแƒชแƒ•แƒแƒจแƒ˜! (แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒแƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก Intel-แƒ˜แƒก แƒชแƒ”แƒœแƒขแƒ แƒแƒšแƒฃแƒ แƒ˜ แƒแƒคแƒ˜แƒกแƒ˜ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒœแƒ˜แƒŸแƒœแƒ˜ แƒœแƒแƒ•แƒ’แƒแƒ แƒแƒ“แƒจแƒ˜). แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ”แƒ‘แƒก แƒ›แƒ˜แƒ”แƒชแƒแƒ— 26 แƒกแƒแƒแƒ—แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“ แƒ“แƒ แƒ‘แƒแƒšแƒแƒก แƒ›แƒแƒ— แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ“แƒ’แƒ˜แƒœแƒแƒ— แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜. แƒชแƒแƒšแƒ™แƒ” แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ แƒ˜แƒงแƒ แƒ“แƒ”แƒ›แƒ แƒกแƒ”แƒกแƒ˜แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ, แƒ แƒแƒ—แƒ แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒแƒ  แƒ“แƒแƒ แƒฉแƒ”แƒœแƒ˜แƒšแƒ แƒ˜แƒ“แƒ”แƒ”แƒ‘แƒแƒ“ แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜. แƒกแƒแƒฅแƒแƒœแƒ”แƒšแƒ˜, แƒกแƒแƒญแƒ›แƒ”แƒšแƒ”แƒ‘แƒ˜, แƒกแƒแƒญแƒ›แƒ”แƒšแƒ˜, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜แƒช แƒ˜แƒฅ แƒ˜แƒงแƒ!

แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, Intel-แƒ›แƒ แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ  แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒ แƒ™แƒแƒ›แƒ”แƒ แƒ”แƒ‘แƒ˜, Raspberry PI, Neural Compute Stick 2.

แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒ

แƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒแƒšแƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒก แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ แƒ—แƒฃแƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒ•แƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒแƒ. แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒจแƒ”แƒ’แƒ•แƒ”แƒฅแƒ›แƒœแƒ แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ แƒแƒ›, แƒ แƒแƒช แƒฏแƒ”แƒ  แƒแƒ  แƒ˜แƒงแƒ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒจแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒแƒจแƒ˜ แƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ˜แƒ, แƒ แƒแƒ› แƒ”แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒ˜แƒกแƒแƒกแƒแƒšแƒ›แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ.

แƒ’แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ“แƒ˜แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒจแƒ˜ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒแƒจแƒ˜, แƒ›แƒ˜แƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒ“แƒแƒกแƒ™แƒ•แƒœแƒแƒ›แƒ“แƒ”, แƒ แƒแƒ› แƒ›แƒแƒ—แƒ˜ แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒก แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒฎแƒ”แƒ“แƒ•แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒซแƒแƒšแƒ˜แƒแƒœ แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒฎแƒ”แƒ“แƒ•แƒ˜แƒก แƒกแƒคแƒ”แƒ แƒแƒจแƒ˜ แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒแƒช OpenVINO-แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ“แƒ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒ’แƒแƒœแƒ”แƒ‘แƒ, แƒซแƒœแƒ”แƒšแƒ˜แƒ แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ•แƒœแƒ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ“แƒแƒ›แƒ”แƒœแƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒกแƒฎแƒ•แƒ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ•แƒ˜แƒซแƒ˜แƒ แƒแƒ— - แƒ›แƒ”แƒขแƒงแƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒแƒœแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ˜แƒกแƒ™แƒ”แƒœ. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒแƒ›แƒแƒชแƒแƒœแƒ แƒ›แƒ”แƒขแƒงแƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒฃแƒœแƒ“แƒ แƒ˜แƒ—แƒฅแƒ•แƒแƒก, แƒ แƒแƒ› OpenVINO-แƒก แƒฃแƒ™แƒ•แƒ” แƒแƒฅแƒ•แƒก แƒ›แƒแƒ“แƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜แƒก แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒก แƒ›แƒ˜แƒกแƒ˜ แƒกแƒแƒฎแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ›:

  • แƒ—แƒ”แƒแƒ แƒ˜แƒฃแƒšแƒแƒ“ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒจแƒ”แƒ˜แƒฅแƒ›แƒœแƒแƒก แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ›แƒแƒ–แƒ”, แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒแƒ–แƒ”, แƒ แƒแƒช แƒกแƒ˜แƒ–แƒฃแƒกแƒขแƒ˜แƒก แƒ›แƒแƒขแƒ”แƒ‘แƒแƒก แƒฃแƒœแƒ“แƒ แƒ˜แƒซแƒšแƒ”แƒแƒ“แƒ”แƒก.
  • แƒ™แƒแƒ›แƒ”แƒ แƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒแƒฅแƒ•แƒ— แƒ•แƒ˜แƒฌแƒ แƒ แƒฎแƒ”แƒ“แƒ•แƒ˜แƒก แƒ™แƒฃแƒ—แƒฎแƒ”; แƒ“แƒ˜แƒ“แƒ˜ แƒคแƒแƒ แƒ—แƒแƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒคแƒแƒ แƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ”แƒ แƒ—แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒ™แƒแƒ›แƒ”แƒ แƒ; แƒฎแƒ›แƒแƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ.

แƒ’แƒแƒœแƒ•แƒแƒ•แƒ˜แƒ—แƒแƒ แƒแƒ— แƒ˜แƒ“แƒ”แƒ: แƒกแƒแƒคแƒฃแƒซแƒ•แƒšแƒแƒ“ แƒแƒ•แƒ˜แƒฆแƒแƒ— แƒกแƒแƒชแƒแƒšแƒ แƒกแƒ”แƒ’แƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒ˜แƒ“แƒ”แƒ. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ–แƒแƒ›แƒแƒ— แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ—แƒ แƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒ˜แƒก แƒกแƒแƒšแƒแƒ แƒแƒ”แƒ‘แƒจแƒ˜. แƒ—แƒฃ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฃแƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒแƒ แƒ›แƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒขแƒแƒœแƒ˜แƒก แƒแƒ›แƒแƒฆแƒšแƒ”แƒ‘แƒแƒก, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ“แƒแƒฃแƒ แƒ”แƒ™แƒแƒ— แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜แƒก แƒฎแƒ›แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ, แƒ”แƒก แƒ›แƒแƒ’แƒ•แƒชแƒ”แƒ›แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒœแƒ•แƒแƒกแƒฎแƒ•แƒแƒ•แƒแƒ— แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒ˜แƒก แƒ—แƒแƒœแƒแƒ›แƒจแƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒ แƒ›แƒ˜แƒ•แƒแƒฌแƒแƒ“แƒแƒ— แƒแƒœแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ˜แƒœแƒ“แƒ˜แƒ•แƒ˜แƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ—แƒแƒ•แƒแƒ“ แƒ›แƒแƒฆแƒแƒ–แƒ˜แƒ˜แƒก แƒ—แƒแƒœแƒแƒ›แƒจแƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒก แƒฅแƒชแƒ”แƒ•แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜, แƒ’แƒฃแƒœแƒ“แƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒขแƒ›แƒแƒกแƒคแƒ”แƒ แƒแƒก แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ, แƒ™แƒแƒ แƒ’แƒแƒ“ แƒŸแƒฆแƒ”แƒ แƒก!

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒงแƒแƒšแƒ˜แƒ‘แƒ”แƒ‘แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

  • แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ›แƒชแƒ˜แƒ แƒ” แƒ–แƒแƒ›แƒ
  • แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ“แƒ แƒแƒจแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ
  • แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒคแƒแƒกแƒ˜
  • แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒ แƒ”แƒ‘แƒ

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— Raspberry Pi 3 c แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒ“ Intel NCS 2.

แƒแƒฅ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ NCS-แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ˜แƒก แƒแƒฆแƒœแƒ˜แƒจแƒ•แƒœแƒ - แƒ˜แƒก แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ CNN แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ›แƒแƒกแƒ–แƒ” แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒจแƒ˜แƒœ แƒ•แƒ”แƒšแƒ˜แƒ— แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ“แƒแƒœแƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก.

แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ”แƒ แƒ—แƒ˜ แƒ›แƒชแƒ˜แƒ แƒ” แƒ แƒแƒ› แƒแƒ แƒ˜แƒก แƒ’แƒแƒกแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜: แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒแƒ˜แƒฆแƒแƒ— แƒ›แƒ˜แƒ™แƒ แƒแƒคแƒแƒœแƒ˜. แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ USB แƒ›แƒ˜แƒ™แƒ แƒแƒคแƒแƒœแƒ˜ แƒ’แƒแƒ›แƒแƒ“แƒ’แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› RPI-แƒกแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฅแƒแƒช แƒ™แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜ แƒกแƒ˜แƒขแƒงแƒ•แƒแƒกแƒ˜แƒขแƒงแƒ•แƒ˜แƒ— "แƒ›แƒแƒฎแƒšแƒแƒ‘แƒšแƒแƒ“ แƒ“แƒ”แƒ•แƒก". แƒฎแƒ›แƒ˜แƒก แƒฉแƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— Voice Bonnet แƒ“แƒแƒคแƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ Google AIY แƒฎแƒ›แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒแƒ แƒ˜แƒก แƒกแƒแƒ“แƒ”แƒœแƒ˜แƒแƒœแƒ˜ แƒกแƒขแƒ”แƒ แƒ”แƒ แƒ›แƒ˜แƒ™แƒ แƒแƒคแƒแƒœแƒ˜.

แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— Raspbian-แƒ“แƒแƒœ AIY แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜ แƒ“แƒ แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— แƒ˜แƒ’แƒ˜ แƒคแƒšแƒ”แƒจ แƒ“แƒ แƒแƒ˜แƒ•แƒ–แƒ”, แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ—, แƒ แƒแƒ› แƒ›แƒ˜แƒ™แƒ แƒแƒคแƒแƒœแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (แƒ˜แƒก แƒฉแƒแƒ˜แƒฌแƒ”แƒ แƒก แƒแƒฃแƒ“แƒ˜แƒแƒก 5 แƒฌแƒแƒ›แƒ˜แƒก แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒแƒ‘แƒ˜แƒ— แƒ“แƒ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒ›แƒแƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜):

arecord -d 5 -r 16000 test.wav

แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒฃแƒœแƒ“แƒ แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒ, แƒ แƒแƒ› แƒ›แƒ˜แƒ™แƒ แƒแƒคแƒแƒœแƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒ’แƒ แƒซแƒœแƒแƒ‘แƒ˜แƒแƒ แƒ”แƒ แƒ“แƒ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒแƒฆแƒ˜แƒฅแƒ•แƒแƒ›แƒก แƒฎแƒ›แƒแƒฃแƒ แƒก. แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— alsamixer-แƒ–แƒ”, แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— Capture devices แƒ“แƒ แƒจแƒ”แƒ•แƒแƒ›แƒชแƒ˜แƒ แƒแƒ— แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒกแƒ˜แƒ’แƒœแƒแƒšแƒ˜แƒก แƒ“แƒแƒœแƒ” 50-60%-แƒ›แƒ“แƒ”.

OpenVINO แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜: แƒฎแƒ›แƒ˜แƒก แƒ“แƒ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ Raspberry Pi-แƒ–แƒ”
แƒ™แƒแƒ แƒžแƒฃแƒกแƒก แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒ— แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฏแƒ“แƒ”แƒ‘แƒ, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒแƒฎแƒฃแƒ แƒแƒ•แƒ˜แƒ—แƒแƒช แƒ™แƒ˜ แƒ“แƒแƒฎแƒฃแƒ แƒแƒ—

แƒ˜แƒœแƒ“แƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ

AIY Voice Kit-แƒ˜แƒก แƒ“แƒแƒจแƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒก, แƒ แƒแƒ› แƒแƒ แƒ˜แƒก RGB แƒฆแƒ˜แƒšแƒแƒ™แƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒฃแƒ™แƒแƒœแƒ แƒ’แƒแƒœแƒแƒ—แƒ”แƒ‘แƒ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ“แƒ”แƒ‘แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒฃแƒšแƒ˜ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— โ€žGoogle AIY Ledโ€œ-แƒก แƒ“แƒ แƒ•แƒžแƒแƒฃแƒšแƒแƒ‘แƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒก: https://aiyprojects.readthedocs.io/en/latest/aiy.leds.html
แƒ แƒแƒขแƒแƒ› แƒแƒ  แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ”แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ แƒแƒฆแƒ˜แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ”แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ 7 แƒ™แƒšแƒแƒกแƒ˜ แƒ“แƒ แƒฆแƒ˜แƒšแƒแƒ™แƒก แƒแƒฅแƒ•แƒก 8 แƒคแƒ”แƒ แƒ˜, แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ!

แƒฉแƒ•แƒ”แƒœ แƒฆแƒ˜แƒšแƒแƒ™แƒก แƒ•แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ— GPIO-แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— Voice Bonnet-แƒก, แƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ— แƒกแƒแƒญแƒ˜แƒ แƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒก (แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒจแƒ˜ AIY แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ)

from aiy.leds import Leds, Color
from aiy.leds import RgbLeds

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒ“แƒ˜แƒฅแƒขแƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ”แƒ›แƒแƒชแƒ˜แƒแƒก แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒคแƒ”แƒ แƒ˜ RGB Tuple-แƒ˜แƒก แƒ“แƒ aiy.leds.Leds แƒ™แƒšแƒแƒกแƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒแƒแƒฎแƒšแƒ”แƒ‘แƒ— แƒคแƒ”แƒ แƒก:

led_dict = {'neutral': (255, 255, 255), 'happy': (0, 255, 0), 'sad': (0, 255, 255), 'angry': (255, 0, 0), 'fearful': (0, 0, 0), 'disgusted':  (255, 0, 255), 'surprised':  (255, 255, 0)} 
leds = Leds()

แƒ“แƒ แƒ‘แƒแƒšแƒแƒก, แƒ”แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒžแƒ แƒแƒ’แƒœแƒแƒ–แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒแƒแƒฎแƒšแƒ”แƒ‘แƒ— แƒฆแƒ˜แƒšแƒแƒ™แƒ˜แƒก แƒคแƒ”แƒ แƒก แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“ (แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒ—).

leds.update(Leds.rgb_on(led_dict.get(classes[prediction])))

OpenVINO แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜: แƒฎแƒ›แƒ˜แƒก แƒ“แƒ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ Raspberry Pi-แƒ–แƒ”
แƒฆแƒ˜แƒšแƒแƒ™แƒ˜, แƒ“แƒแƒฌแƒ•แƒ!

แƒฎแƒ›แƒ˜แƒ— แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ

แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— pyaudio-แƒก แƒ›แƒ˜แƒ™แƒ แƒแƒคแƒแƒœแƒ˜แƒ“แƒแƒœ แƒกแƒขแƒ แƒ˜แƒ›แƒ˜แƒœแƒ’แƒ˜แƒก แƒ“แƒ webrtcvad-แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“ แƒฎแƒ›แƒแƒฃแƒ แƒ˜แƒก แƒ’แƒแƒกแƒแƒคแƒ˜แƒšแƒขแƒ แƒแƒ“ แƒ“แƒ แƒฎแƒ›แƒ˜แƒก แƒแƒ›แƒแƒกแƒแƒชแƒœแƒแƒ‘แƒแƒ“. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ แƒ˜แƒ’แƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒแƒ“ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒ“แƒ แƒฌแƒแƒ•แƒจแƒšแƒ˜แƒ— แƒฎแƒ›แƒแƒ•แƒแƒœ แƒแƒ›แƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒก.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ webrtcvad-แƒก แƒแƒฅแƒ•แƒก แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒ–แƒแƒ›แƒแƒ–แƒ” แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ - แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒขแƒแƒšแƒ˜ 10/20/30ms, แƒฎแƒแƒšแƒ แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ‘แƒ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ•แƒ˜แƒ’แƒ”แƒ‘แƒ—) แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ 48kHz แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒ–แƒ”, 48000ร—20ms/1000ร—1(แƒ›แƒแƒœแƒ)=960 แƒ‘แƒแƒ˜แƒขแƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒœแƒแƒญแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฆแƒ”แƒ‘แƒ. Webrtcvad แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก True/False แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒแƒ› แƒœแƒแƒฌแƒ˜แƒšแƒก, แƒ แƒแƒช แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒ‘แƒšแƒแƒ™แƒจแƒ˜ แƒฎแƒ›แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒแƒก แƒแƒœ แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒแƒก.

แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒ:

  • แƒกแƒ˜แƒแƒก แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒ˜แƒ› แƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒก, แƒกแƒแƒ“แƒแƒช แƒแƒ แƒ˜แƒก แƒฎแƒ›แƒ, แƒ—แƒฃ แƒฎแƒ›แƒ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒก.
  • แƒ—แƒฃ แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒ˜ แƒแƒ แƒ˜แƒก >=30 (600 ms), แƒ›แƒแƒจแƒ˜แƒœ แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘แƒ— แƒ“แƒแƒ’แƒ แƒแƒ•แƒ˜แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒ–แƒแƒ›แƒแƒก; แƒ—แƒฃ แƒ”แƒก แƒแƒ แƒ˜แƒก >250, แƒ›แƒแƒจแƒ˜แƒœ แƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒ แƒ˜แƒ’แƒจแƒ˜, แƒ—แƒฃ แƒแƒ แƒ, แƒ›แƒ˜แƒ’แƒ•แƒแƒฉแƒœแƒ˜แƒ, แƒ แƒแƒ› แƒกแƒ˜แƒ’แƒ แƒซแƒ” แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒ“แƒ”แƒšแƒก แƒ›แƒ˜แƒแƒฌแƒแƒ“แƒแƒก แƒกแƒžแƒ˜แƒ™แƒ”แƒ แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒชแƒ˜แƒ แƒ”แƒ‘แƒ.
  • แƒ—แƒฃ แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒ˜ แƒ™แƒ•แƒšแƒแƒ• < 30-แƒ˜แƒ, แƒฎแƒแƒšแƒ แƒ“แƒแƒ’แƒ แƒแƒ•แƒ˜แƒšแƒ˜ แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒแƒญแƒแƒ แƒ‘แƒ”แƒ‘แƒก 300-แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒก แƒ แƒ˜แƒ’แƒจแƒ˜ แƒฃแƒคแƒ แƒ แƒ–แƒฃแƒกแƒขแƒ˜ แƒžแƒ แƒแƒ’แƒœแƒแƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. (แƒ แƒแƒ“แƒ’แƒแƒœ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ)

 def to_queue(frames):
    d = np.frombuffer(b''.join(frames), dtype=np.int16)
    return d

framesQueue = queue.Queue()
def framesThreadBody():
    CHUNK = 960
    FORMAT = pyaudio.paInt16
    CHANNELS = 1
    RATE = 48000

    p = pyaudio.PyAudio()
    vad = webrtcvad.Vad()
    vad.set_mode(2)
    stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)
    false_counter = 0
    audio_frame = []
    while process:
        data = stream.read(CHUNK)
        if not vad.is_speech(data, RATE):
            false_counter += 1
            if false_counter >= 30:
                if len(audio_frame) > 250:              
                    framesQueue.put(to_queue(audio_frame,timestamp_start))
                    audio_frame = []
                    false_counter = 0

        if vad.is_speech(data, RATE):
            false_counter = 0
            audio_frame.append(data)
            if len(audio_frame) > 300:                
                    framesQueue.put(to_queue(audio_frame,timestamp_start))
                    audio_frame = []

แƒ“แƒ แƒแƒ แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒแƒ— แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜ แƒกแƒแƒฏแƒแƒ แƒ แƒ“แƒแƒ›แƒ”แƒœแƒจแƒ˜, แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— github-แƒ–แƒ”, Google-แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒฎแƒกแƒแƒ•แƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ–แƒ”. แƒ”แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ แƒ—แƒฃแƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ’แƒแƒ“แƒแƒ˜แƒงแƒ•แƒแƒœแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ OpenVINO-แƒก แƒจแƒ˜แƒ“แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ - IR (แƒจแƒฃแƒแƒšแƒ”แƒ“แƒฃแƒ แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ›แƒแƒ“แƒ’แƒ”แƒœแƒšแƒแƒ‘แƒ). แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒแƒ“แƒ”แƒ— แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 5-7 แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ github-แƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒ แƒ—แƒฃ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒšแƒ˜ แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ“แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒฎแƒ›แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒฎแƒแƒœแƒก แƒ›แƒแƒ’แƒ•แƒ˜แƒฌแƒ˜แƒ แƒšแƒแƒ“แƒ˜แƒœแƒ˜ - แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒš แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ”แƒ‘แƒก.

แƒฉแƒ•แƒ”แƒœ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒแƒก แƒ•แƒแƒ›แƒแƒฎแƒ•แƒ˜แƒšแƒ”แƒ‘แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ–แƒ”:

  • แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฎแƒ›แƒ˜แƒ“แƒแƒœ - https://github.com/alexmuhr/Voice_Emotion
    แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ˜แƒ—: แƒแƒฃแƒ“แƒ˜แƒ แƒ˜แƒญแƒ แƒ”แƒ‘แƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ–แƒแƒ›แƒ˜แƒก แƒžแƒแƒกแƒแƒŸแƒ”แƒ‘แƒแƒ“, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒแƒ› แƒžแƒแƒกแƒแƒŸแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— MFCC แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฌแƒแƒ แƒฃแƒ“แƒ’แƒ˜แƒœแƒ”แƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ CNN-แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—
  • แฒฎแƒ›แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ - https://github.com/linhdvu14/vggvox-speaker-identification
    แƒแƒฅ MFCC-แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ— แƒกแƒžแƒ”แƒฅแƒขแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ—, FFT-แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒ˜แƒ’แƒœแƒแƒšแƒก แƒ•แƒแƒฌแƒ•แƒ“แƒ˜แƒ— CNN-แƒก, แƒกแƒแƒ“แƒแƒช แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ–แƒ” แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒฎแƒ›แƒ˜แƒก แƒ•แƒ”แƒฅแƒขแƒแƒ แƒฃแƒš แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒแƒก.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ— แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒ•แƒ”แƒ แƒขแƒแƒชแƒ˜แƒแƒ–แƒ”, แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ—แƒ”แƒแƒ แƒ˜แƒ˜แƒ—. OpenVINO แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒ“แƒฃแƒšแƒก:

  • แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒ–แƒแƒแƒžแƒแƒ แƒ™แƒ˜, แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœแƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ“แƒ แƒจแƒ”แƒ•แƒ˜แƒ“แƒ”แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒจแƒ˜
  • Model Optimzer, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ—แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒ“แƒ”แƒšแƒ˜ แƒ’แƒแƒ“แƒแƒ˜แƒงแƒ•แƒแƒœแƒแƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒฉแƒแƒ แƒฉแƒ แƒคแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ (Tensorflow, ONNX แƒ“แƒ แƒ.แƒจ.) แƒจแƒฃแƒแƒšแƒ”แƒ“แƒฃแƒ แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒจแƒ˜ แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ—.
  • Inference Engine แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜ IR แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ Intel แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ”แƒ‘แƒ–แƒ”, Myriad แƒฉแƒ˜แƒžแƒ”แƒ‘แƒกแƒ แƒ“แƒ Neural Compute Stick แƒแƒ›แƒแƒฉแƒฅแƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ–แƒ”
  • OpenCV-แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ (Inference Engine-แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒ—)
    แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒ”แƒšแƒ˜ IR แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒ—: .xml แƒ“แƒ .bin.
    แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ แƒ“แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ IR แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ Model Optimizer-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒœแƒแƒ˜แƒ แƒแƒ“:

    python /opt/intel/openvino/deployment_tools/model_optimizer/mo_tf.py --input_model speaker.hdf5.pb --data_type=FP16 --input_shape [1,512,1000,1]

    --data_type แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒ›แƒแƒ“แƒ”แƒšแƒ˜ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก. FP32, FP16, INT8 แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜แƒ. แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒžแƒขแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒแƒ› แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ–แƒแƒ แƒ“แƒแƒก แƒ™แƒแƒ แƒ’แƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ.
    --input_shape แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒแƒ–แƒ”. แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒแƒ แƒ˜แƒก C++ API-แƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ” แƒจแƒแƒ แƒก แƒแƒ  แƒ’แƒแƒ•แƒ—แƒฎแƒแƒ แƒ”แƒ— แƒ“แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒแƒ•แƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒ”แƒ— แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ— แƒ›แƒแƒ“แƒ”แƒšแƒ–แƒ”.
    แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ“แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒ“แƒ”แƒšแƒ˜ IR แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ DNN แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— OpenCV-แƒจแƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ›แƒแƒก.

    import cv2 as cv
    emotionsNet = cv.dnn.readNet('emotions_model.bin',
                              'emotions_model.xml')
    emotionsNet.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD)

    แƒ‘แƒแƒšแƒ แƒฎแƒแƒ–แƒ˜ แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒแƒ— แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ”แƒ‘แƒ˜ Neural Compute Stick-แƒ–แƒ”, แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ”แƒ‘แƒ˜ แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› Raspberry Pi-แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ”แƒก แƒแƒ  แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก, แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒฏแƒแƒฎแƒ˜.

    แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒšแƒแƒ’แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ—แƒ˜แƒ: แƒฉแƒ•แƒ”แƒœ แƒ•แƒงแƒแƒคแƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒแƒฃแƒ“แƒ˜แƒแƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ–แƒแƒ›แƒ˜แƒก แƒคแƒแƒœแƒฏแƒ แƒ”แƒ‘แƒก (แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒแƒ แƒ˜แƒก 0.4 แƒฌแƒ›), แƒ•แƒแƒฅแƒชแƒ”แƒ•แƒ— แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒแƒ› แƒคแƒแƒœแƒฏแƒแƒ แƒแƒก MFCC-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒแƒฌแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒฅแƒกแƒ”แƒšแƒจแƒ˜:

    emotionsNet.setInput(MFCC_from_window)
    result = emotionsNet.forward()

    แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒแƒ•แƒ˜แƒฆแƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒšแƒแƒกแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒคแƒแƒœแƒฏแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒซแƒแƒšแƒ˜แƒแƒœ แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒขแƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒ—แƒฅแƒ›แƒ, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒ“แƒ แƒ แƒ’แƒแƒฅแƒ•แƒ—. แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— โ€“ แƒฎแƒ›แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒแƒก แƒจแƒ”แƒ•แƒ”แƒฎแƒ”แƒ‘แƒ˜แƒ—. แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒฎแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒžแƒ”แƒฅแƒขแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒชแƒแƒขแƒ แƒ“แƒ แƒ แƒ แƒฉแƒ”แƒ‘แƒ, แƒแƒ› แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒก แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ›แƒแƒ•แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒ—.

    แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก แƒฎแƒ›แƒ˜แƒก แƒแƒ›แƒแƒœแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒฉแƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“ (แƒ˜แƒ’แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ˜แƒกแƒ”แƒ•แƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒ–แƒ”แƒ›แƒแƒ— แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ™แƒšแƒแƒ•แƒ˜แƒแƒขแƒฃแƒ แƒ˜แƒ“แƒแƒœ แƒจแƒ”แƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒฎแƒ›แƒแƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜).

    แฒ›แƒแƒ“แƒ˜ แƒ•แƒชแƒแƒ“แƒแƒ—:

    python3 voice_db/record_voice.py test.wav

    แƒฉแƒ•แƒ”แƒœ แƒฉแƒแƒ•แƒฌแƒ”แƒ แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜แƒก แƒฎแƒ›แƒแƒก (แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ’แƒฃแƒœแƒ“แƒ˜แƒก แƒกแƒแƒ›แƒ˜ แƒฌแƒ”แƒ•แƒ แƒ˜แƒก)
    แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒฎแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ•แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ— แƒกแƒฌแƒ แƒแƒค แƒคแƒฃแƒ แƒ˜แƒ”แƒก แƒขแƒ แƒแƒœแƒกแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก, แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒกแƒžแƒ”แƒฅแƒขแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒก แƒ“แƒ แƒ•แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ— แƒ›แƒแƒก แƒœแƒฃแƒ›แƒžแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— (.npy):

    for file in glob.glob("voice_db/*.wav"):
            spec = get_fft_spectrum(file)
            np.save(file[:-4] + '.npy', spec)

    แƒ“แƒแƒฌแƒ•แƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒคแƒแƒ˜แƒšแƒจแƒ˜ create_base.py
    แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒ—แƒแƒ•แƒแƒ  แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก แƒ•แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ—, แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœแƒ•แƒ” แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ”แƒ‘แƒก แƒแƒ› แƒกแƒžแƒ”แƒฅแƒขแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ:

    for file in glob.glob("voice_db/*.npy"):
        spec = np.load(file)
        spec = spec.astype('float32')
        spec_reshaped = spec.reshape(1, 1, spec.shape[0], spec.shape[1])
        srNet.setInput(spec_reshaped)
        pred = srNet.forward()
        emb = np.squeeze(pred)

    แƒ’แƒแƒŸแƒฆแƒ”แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ”แƒ’แƒ›แƒ”แƒœแƒขแƒ˜แƒ“แƒแƒœ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒซแƒšแƒ”แƒ‘แƒ— แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒ•แƒ˜แƒก แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒก แƒ˜แƒก แƒ™แƒแƒกแƒ˜แƒœแƒฃแƒกแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒซแƒ˜แƒšแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ˜แƒ— แƒžแƒแƒกแƒแƒŸแƒ˜แƒ“แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒฎแƒ›แƒแƒ›แƒ“แƒ” (แƒ แƒแƒช แƒฃแƒคแƒ แƒ แƒ›แƒชแƒ˜แƒ แƒ”แƒ, แƒ›แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ) - แƒ“แƒ”แƒ›แƒแƒกแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ‘แƒแƒ แƒ˜แƒ”แƒ แƒก 0.3-แƒ›แƒ“แƒ”):

            dist_list = cdist(emb, enroll_embs, metric="cosine")
            distances = pd.DataFrame(dist_list, columns = df.speaker)

    แƒ“แƒแƒกแƒแƒกแƒ แƒฃแƒš, แƒ›แƒ˜แƒœแƒ“แƒ แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒ, แƒ แƒแƒ› แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ˜แƒก แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ” แƒ˜แƒงแƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ“แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ’แƒแƒฎแƒแƒ“แƒ แƒ™แƒ˜แƒ“แƒ”แƒ• 1-2 แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ (แƒœแƒ˜แƒ›แƒฃแƒจแƒ–แƒ” 7 แƒฌแƒแƒ›แƒ˜แƒก แƒฎแƒแƒœแƒ’แƒ แƒซแƒšแƒ˜แƒ•แƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ 2.5 แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ). แƒฉแƒ•แƒ”แƒœ แƒแƒฆแƒแƒ  แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ แƒ“แƒ แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒ แƒแƒ แƒ˜แƒ”แƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒงแƒแƒ•แƒ˜แƒ— แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒ–แƒ”.

    แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ

    แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒžแƒฃแƒœแƒฅแƒขแƒ˜: แƒฉแƒ•แƒ”แƒœแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ แƒแƒฃแƒขแƒ”แƒ แƒก แƒกแƒแƒฎแƒšแƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒšแƒแƒ™แƒแƒšแƒฃแƒ  แƒฅแƒกแƒ”แƒšแƒก, แƒ˜แƒก แƒ’แƒ•แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒšแƒ”แƒžแƒขแƒแƒžแƒ”แƒ‘แƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒจแƒ˜ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒแƒจแƒ˜.

    Backend แƒแƒ แƒ˜แƒก แƒ‘แƒแƒšแƒแƒ“แƒแƒœ แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ” แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒฎแƒ˜ แƒฌแƒ˜แƒœแƒ แƒ“แƒ Raspberry Pi-แƒก แƒจแƒแƒ แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ websocket แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒแƒ–แƒ” (http over tcp แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜).

    แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ”แƒขแƒแƒžแƒ˜ แƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒŸแƒแƒšแƒแƒ“แƒแƒœ, แƒแƒœแƒฃ json-แƒจแƒ˜ แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ’แƒœแƒแƒ–แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒ›แƒแƒ—แƒ˜ แƒ›แƒแƒ’แƒ–แƒแƒฃแƒ แƒแƒ‘แƒ˜แƒก แƒœแƒแƒฎแƒ”แƒ•แƒแƒ แƒจแƒ˜, แƒ แƒแƒ—แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒกแƒขแƒ˜แƒ™แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ”แƒ›แƒแƒชแƒ˜แƒฃแƒ แƒ˜ แƒคแƒแƒœแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒ› แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ”แƒก แƒžแƒแƒ™แƒ”แƒขแƒ˜ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ‘แƒ แƒคแƒ แƒแƒœแƒขแƒ”แƒœแƒ“แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ’แƒแƒ›แƒแƒฌแƒ”แƒ แƒแƒก แƒ“แƒ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒก แƒ•แƒ”แƒ‘แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ‘แƒแƒšแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜แƒ“แƒแƒœ. แƒ›แƒ—แƒ”แƒšแƒ˜ backend แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜ แƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒšแƒแƒœแƒ’แƒ˜แƒก แƒ”แƒœแƒแƒ–แƒ”; แƒ˜แƒก แƒแƒ แƒฉแƒ”แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒ˜แƒขแƒแƒ›, แƒ แƒแƒ› แƒ™แƒแƒ แƒ’แƒแƒ“ แƒจแƒ”แƒ”แƒคแƒ”แƒ แƒ”แƒ‘แƒ แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒš แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒ’แƒแƒ แƒฃแƒขแƒ˜แƒœแƒ”แƒ‘แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒฃแƒ›แƒ™แƒšแƒแƒ•แƒ“แƒ”แƒ‘แƒ˜แƒแƒœ.
    แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒกแƒแƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒจแƒ”แƒ“แƒ˜แƒก แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒจแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ. แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜แƒช แƒ“แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒช แƒจแƒ”แƒ“แƒ˜แƒก แƒกแƒแƒ”แƒ แƒ—แƒ แƒฐแƒแƒ‘แƒจแƒ˜, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฃแƒ™แƒ•แƒ” แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ› (แƒ’แƒแƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒš แƒคแƒ แƒแƒœแƒขแƒ–แƒ”), แƒฎแƒแƒšแƒ แƒ—แƒฃ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒแƒฎแƒฃแƒ แƒแƒ•แƒก แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒก (แƒŸแƒแƒšแƒ แƒแƒœ แƒฌแƒ˜แƒœแƒ), แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒฌแƒ”แƒ แƒ แƒฃแƒฅแƒ›แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ. แƒ™แƒ”แƒ แƒ.

    OpenVINO แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜: แƒฎแƒ›แƒ˜แƒก แƒ“แƒ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ Raspberry Pi-แƒ–แƒ”
    แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒก แƒฃแƒ™แƒœแƒ˜แƒ“แƒแƒœ

    Front-end แƒแƒ แƒ˜แƒก JavaScript-แƒจแƒ˜ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ React แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ—แƒ แƒ“แƒแƒแƒฉแƒฅแƒแƒ แƒแƒก แƒ“แƒ แƒ’แƒแƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜. แƒแƒ› แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ–แƒแƒœแƒ˜แƒ แƒ›แƒแƒžแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ•แƒ˜แƒ–แƒฃแƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒฃแƒ™แƒแƒœแƒ แƒ›แƒฎแƒแƒ แƒ”แƒก แƒ“แƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  Raspberry Pi-แƒ–แƒ” แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ’แƒ•แƒ”แƒ แƒ“แƒก แƒแƒฅแƒ•แƒก แƒกแƒ”แƒฅแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ แƒ”แƒแƒฅแƒข-แƒ แƒแƒฃแƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜, แƒกแƒแƒ“แƒแƒช แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒœแƒแƒ™แƒแƒ“แƒ˜ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ“แƒ แƒแƒจแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ WebSocket แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. Raspberry Pi แƒแƒ›แƒแƒ˜แƒชแƒœแƒแƒ‘แƒก แƒฎแƒ›แƒแƒก, แƒแƒ“แƒ’แƒ”แƒœแƒก แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒก แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒฃแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒก แƒแƒšแƒ‘แƒแƒ—แƒแƒ‘แƒ˜แƒก แƒกแƒ˜แƒแƒก. แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒฃแƒแƒฎแƒšแƒ”แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก, แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒ˜แƒ› แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒ˜แƒก แƒแƒ•แƒแƒขแƒแƒ แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“ แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒ“แƒ แƒ›แƒ˜แƒ™แƒ แƒแƒคแƒแƒœแƒจแƒ˜, แƒแƒกแƒ”แƒ•แƒ” แƒ”แƒ›แƒแƒชแƒ˜แƒแƒก, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ—แƒฅแƒ•แƒแƒ›แƒก แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒก.

    OpenVINO แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜: แƒฎแƒ›แƒ˜แƒก แƒ“แƒ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ Raspberry Pi-แƒ–แƒ”
    แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ’แƒœแƒแƒ–แƒ”แƒ‘แƒ˜แƒ—

    แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

    แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ“แƒ แƒ แƒแƒ  แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ˜แƒ›แƒ”แƒ“แƒ˜ แƒ“แƒ”แƒ›แƒแƒจแƒ˜ แƒ˜แƒงแƒ, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ“แƒ. แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒ–แƒ” แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒก แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒ แƒ›แƒแƒ“แƒ”แƒšแƒ”แƒ‘แƒ˜ แƒแƒ˜แƒฆแƒ”แƒก, แƒ แƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ”แƒฅแƒ›แƒœแƒแƒ—. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ˜แƒงแƒ แƒ“แƒ”แƒ›แƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ - แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒขแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒ“แƒแƒ“แƒ˜แƒแƒ“แƒœแƒ”แƒœ แƒแƒ—แƒแƒฎแƒจแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒฃแƒแƒฎแƒšแƒแƒ•แƒ“แƒœแƒ”แƒœ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ’แƒฃแƒœแƒ“แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ˜แƒก แƒ“แƒแƒกแƒแƒ—แƒ•แƒแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒšแƒแƒ“. แƒ›แƒแƒ—แƒแƒช แƒ“แƒแƒ’แƒ•แƒ˜แƒกแƒ•แƒ”แƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ˜, แƒงแƒ•แƒ”แƒšแƒแƒ› แƒ—แƒแƒ•แƒ˜แƒก แƒ›แƒฎแƒ แƒ˜แƒ• แƒฃแƒžแƒแƒกแƒฃแƒฎแƒ, แƒšแƒ”แƒžแƒขแƒแƒžแƒ–แƒ” แƒ“แƒแƒขแƒแƒ•แƒ”แƒก แƒ•แƒ”แƒ‘ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒกแƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜ แƒ˜แƒงแƒ.

    แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ›แƒ”แƒชแƒ˜แƒ— แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒ, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒ›แƒ—แƒšแƒ˜แƒแƒœแƒ˜ แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒ $150:

    • Raspberry Pi 3 ~ 35$
    • Google AIY Voice Bonnet (แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ˜แƒฆแƒแƒ— แƒกแƒžแƒ˜แƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒแƒคแƒแƒกแƒฃแƒ แƒ˜) ~ 15$
    • Intel NCS 2 ~ 100$

    แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ—:

    • แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒกแƒ’แƒแƒœ - แƒกแƒ—แƒฎแƒแƒ•แƒ”แƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒขแƒ”แƒฅแƒกแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ—
    • แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒ“แƒ”แƒšแƒ˜: แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฎแƒ›แƒ˜แƒ— แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒกแƒฅแƒ”แƒกแƒ˜ แƒ“แƒ แƒแƒกแƒแƒ™แƒ˜
    • แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒŸแƒฆแƒ”แƒ แƒแƒ“แƒแƒ‘แƒ˜แƒก แƒฎแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ (แƒ“แƒ˜แƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ)

    แƒกแƒแƒชแƒแƒ•แƒ˜: https://github.com/vladimirwest/OpenEMO

    OpenVINO แƒฐแƒแƒ™แƒแƒ—แƒแƒœแƒ˜: แƒฎแƒ›แƒ˜แƒก แƒ“แƒ แƒ”แƒ›แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒชแƒœแƒแƒ‘แƒ Raspberry Pi-แƒ–แƒ”
    แƒ“แƒแƒฆแƒšแƒ˜แƒšแƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ•แƒแƒ แƒ—

    แƒ“แƒแƒกแƒแƒกแƒ แƒฃแƒšแƒก, แƒ›แƒ˜แƒœแƒ“แƒ แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ แƒ’แƒแƒ“แƒแƒ•แƒฃแƒฎแƒแƒ“แƒ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒขแƒแƒ แƒ”แƒ‘แƒก แƒ“แƒ แƒ›แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ”แƒ‘แƒก. แƒกแƒฎแƒ•แƒ แƒ’แƒฃแƒœแƒ“แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒžแƒ˜แƒ แƒแƒ“แƒแƒ“ แƒ›แƒแƒ’แƒ•แƒฌแƒแƒœแƒ“แƒ แƒฃแƒคแƒแƒกแƒ แƒžแƒแƒ แƒ™แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ. แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒ˜แƒงแƒ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒจแƒ˜ แƒฉแƒแƒซแƒ˜แƒ แƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ. แƒ•แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘, แƒ แƒแƒ› แƒฃแƒคแƒ แƒ แƒ“แƒ แƒฃแƒคแƒ แƒ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒฆแƒแƒœแƒ˜แƒกแƒซแƒ˜แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ˜แƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ”แƒ‘แƒจแƒ˜, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒ•แƒœแƒฃแƒ แƒ˜ แƒ˜แƒœแƒขแƒ”แƒšแƒ”แƒฅแƒขแƒ˜แƒก แƒ—แƒ”แƒ›แƒแƒ–แƒ”.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ