เช“เชชเชจเชตเชฟเชจเซ‹ เชนเซ‡เช•เชพเชฅเซ‹เชจ: เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€ เชชเชฐ เช…เชตเชพเชœ เช…เชจเซ‡ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เช“เชณเช–เชตเซ€

เชจเชตเซ‡เชฎเซเชฌเชฐ 30 - เชกเชฟเชธเซ‡เชฎเซเชฌเชฐ 1 เชจเชฟเชเชจเซ€ เชจเซ‹เชตเช—เซ‹เชฐเซ‹เชกเชฎเชพเช‚ เชฏเซ‹เชœเชพเชฏเซ‹ เชนเชคเซ‹ เช“เชชเชจเชตเชฟเชจเซ‹ เชนเซ‡เช•เชพเชฅเซ‹เชจ. เชธเชนเชญเชพเช—เซ€เช“เชจเซ‡ Intel OpenVINO เชŸเซ‚เชฒเช•เซ€เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเซเชฐเซ‹เชกเช•เซเชŸ เชธเซ‹เชฒเซเชฏเซเชถเชจเชจเซ‹ เชชเซเชฐเซ‹เชŸเซ‹เชŸเชพเช‡เชช เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. เช†เชฏเซ‹เชœเช•เซ‹เช เช…เช‚เชฆเชพเชœเชฟเชค เชตเชฟเชทเชฏเซ‹เชจเซ€ เชธเซ‚เชšเชฟเชจเซ€ เชฆเชฐเช–เชพเชธเซเชค เช•เชฐเซ€ เชนเชคเซ€ เชœเซ‡ เช•เชพเชฐเซเชฏ เชชเชธเช‚เชฆ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชจ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เช‚เชคเชฟเชฎ เชจเชฟเชฐเซเชฃเชฏ เชŸเซ€เชฎเซ‹ เชชเชพเชธเซ‡ เชฐเชนเซเชฏเซ‹. เชตเชงเซเชฎเชพเช‚, เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚ เชธเชฎเชพเชตเชฟเชทเซเชŸ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชฎเซ‹เชกเชฒเชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ‡ เชชเซเชฐเซ‹เชคเซเชธเชพเชนเชจ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚.

เช“เชชเชจเชตเชฟเชจเซ‹ เชนเซ‡เช•เชพเชฅเซ‹เชจ: เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€ เชชเชฐ เช…เชตเชพเชœ เช…เชจเซ‡ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เช“เชณเช–เชตเซ€

เช† เชฒเซ‡เช–เชฎเชพเช‚ เช…เชฎเซ‡ เชคเชฎเชจเซ‡ เชœเชฃเชพเชตเซ€เชถเซเช‚ เช•เซ‡ เช…เชฎเซ‡ เช‰เชคเซเชชเชพเชฆเชจเชจเซ‹ เช…เชฎเชพเชฐเซ‹ เชชเซเชฐเซ‹เชŸเซ‹เชŸเชพเช‡เชช เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเซเชฏเซ‹, เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช…เชฎเซ‡ เช†เช–เชฐเซ‡ เชชเซเชฐเชฅเชฎ เชธเซเชฅเชพเชจ เชฎเซ‡เชณเชตเซเชฏเซเช‚.

เชนเซ‡เช•เชพเชฅเซ‹เชจเชฎเชพเช‚ 10 เชฅเซ€ เชตเชงเซ เชŸเซ€เชฎเซ‹เช เชญเชพเช— เชฒเซ€เชงเซ‹ เชนเชคเซ‹. เชคเซ‡ เชธเชฐเชธ เช›เซ‡ เช•เซ‡ เชคเซ‡เชฎเชพเช‚เชจเชพ เช•เซ‡เชŸเชฒเชพเช• เช…เชจเซเชฏ เชชเซเชฐเชฆเซ‡เชถเซ‹เชฎเชพเช‚เชฅเซ€ เช†เชตเซเชฏเชพ เช›เซ‡. เชนเซ‡เช•เชพเชฅเซ‹เชจ เชฎเชพเชŸเซ‡เชจเซเช‚ เชธเซเชฅเชณ "เชชเซ‹เชšเซ‡เชจ เชชเชฐ เช•เซเชฐเซ‡เชฎเชฒเชฟเชจเซเชธเซเช•เซ€" เชธเช‚เช•เซเชฒ เชนเชคเซเช‚, เชœเซเชฏเชพเช‚ เชจเชฟเชเชจเซ€ เชจเซ‹เชตเช—เซ‹เชฐเซ‹เชกเชจเชพ เชชเซเชฐเชพเชšเซ€เชจ เชซเซ‹เชŸเซ‹เช—เซเชฐเชพเชซเซเชธ เช…เช‚เชฆเชฐ เชเช• เชฎเช‚เชกเชณเชฎเชพเช‚ เชฒเชŸเช•เชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ! (เชนเซเช‚ เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช•เชฐเชพเชตเซเช‚ เช›เซเช‚ เช•เซ‡ เช† เช•เซเชทเชฃเซ‡ เช‡เชจเซเชŸเซ‡เชฒเชจเซเช‚ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชฏ เช•เชพเชฐเซเชฏเชพเชฒเชฏ เชจเชฟเชเชจเซ€ เชจเซ‹เชตเช—เซ‹เชฐเซ‹เชกเชฎเชพเช‚ เชธเซเชฅเชฟเชค เช›เซ‡). เชธเชนเชญเชพเช—เซ€เช“เชจเซ‡ เช•เซ‹เชก เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡ 26 เช•เชฒเชพเช•เชจเซ‹ เชธเชฎเชฏ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ เช…เชจเซ‡ เช…เช‚เชคเซ‡ เชคเซ‡เช“เช เชคเซ‡เชฎเชจเซ‹ เช‰เช•เซ‡เชฒ เชฐเชœเซ‚ เช•เชฐเชตเชพเชจเซ‹ เชนเชคเซ‹. เชเช• เช…เชฒเช— เชซเชพเชฏเชฆเซ‹ เช เชกเซ‡เชฎเซ‹ เชธเชคเซเชฐเชจเซ€ เชนเชพเชœเชฐเซ€ เชนเชคเซ€ เชคเซ‡เชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‡ เช†เชฏเซ‹เชœเชฟเชค เชฆเชฐเซ‡เช• เชตเชธเซเชคเซ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เช…เชฎเชฒเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เช…เชจเซ‡ เชชเซเชฐเชธเซเชคเซเชคเชฟเชฎเชพเช‚ เชตเชฟเชšเชพเชฐเซ‹ เชฌเชพเช•เซ€ เชจเชฅเซ€. เชตเซ‡เชชเชพเชฐ, เชจเชพเชธเซเชคเซ‹, เช–เซ‹เชฐเชพเช•, เชฌเชงเซเช‚ เชชเชฃ เชคเซเชฏเชพเช‚ เชนเชคเซเช‚!

เชตเชงเซเชฎเชพเช‚, Intel เชตเซˆเช•เชฒเซเชชเชฟเช• เชฐเซ€เชคเซ‡ เช•เซ‡เชฎเซ‡เชฐเชพ, เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ PI, เชจเซเชฏเซเชฐเชฒ เช•เซ‹เชฎเซเชชเซเชฏเซเชŸ เชธเซเชŸเชฟเช• 2 เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.

เช•เชพเชฐเซเชฏ เชชเชธเช‚เชฆเช—เซ€

เชซเซเชฐเซ€-เชซเซ‹เชฐเซเชฎ เชนเซ‡เช•เชพเชฅเซ‹เชจเชจเซ€ เชคเซˆเชฏเชพเชฐเซ€เชจเชพ เชธเซŒเชฅเซ€ เชฎเซเชถเซเช•เซ‡เชฒ เชญเชพเช—เซ‹เชฎเชพเช‚เชจเซ‹ เชเช• เชชเชกเช•เชพเชฐ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡. เช…เชฎเซ‡ เชคเชฐเชค เชœ เช•เช‚เชˆเช• เชเชตเซ€ เชตเชธเซเชคเซ เชธเชพเชฅเซ‡ เช†เชตเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เชœเซ‡ เชนเชœเซ€ เชธเซเชงเซ€ เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชœเชพเชนเซ‡เชฐเชพเชคเชฎเชพเช‚ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช•เซ‡ เช† เช–เซ‚เชฌ เช†เชตเช•เชพเชฐเชฆเชพเชฏเช• เช›เซ‡.

เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซเชฏเชพ เชฎเซ‹เชกเซ‡เชฒเซ‹, เชœเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เชชเซเชฐเช•เชพเชถเชจเชฎเชพเช‚ เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚ เชธเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เช›เซ‡, เช…เชฎเซ‡ เชจเชฟเชทเซเช•เชฐเซเชท เชชเชฐ เช†เชตเซ€เช เช›เซ€เช เช•เซ‡ เชคเซ‡เชฎเชพเช‚เชจเชพ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชฆเซเชฐเชทเซเชŸเชฟเชจเซ€ เชตเชฟเชตเชฟเชง เชธเชฎเชธเซเชฏเชพเช“ เชนเชฒ เช•เชฐเซ‡ เช›เซ‡. เชคเชฆเซเชชเชฐเชพเช‚เชค, เช•เซ‹เชฎเซเชชเซเชฏเซเชŸเชฐ เชตเชฟเชเชจเชจเชพ เช•เซเชทเซ‡เชคเซเชฐเชฎเชพเช‚ เชเชตเซ€ เชธเชฎเชธเซเชฏเชพ เชธเชพเชฅเซ‡ เช†เชตเชตเซเช‚ เช–เซ‚เชฌ เชœ เชฎเซเชถเซเช•เซ‡เชฒ เช›เซ‡ เช•เซ‡ เชœเซ‡ OpenVINO เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช‰เช•เซ‡เชฒเซ€ เชถเช•เชพเชคเซ€ เชจเชฅเซ€, เช…เชจเซ‡ เชœเซ‹ เช•เซ‹เชˆเชจเซ€ เชถเซ‹เชง เชฅเชˆ เชถเช•เซ‡ เชคเซ‹ เชชเชฃ, เชœเชพเชนเซ‡เชฐ เชกเซ‹เชฎเซ‡เชจเชฎเชพเช‚ เชชเซ‚เชฐเซเชต-เชชเซเชฐเชถเชฟเช•เซเชทเชฟเชค เชฎเซ‹เชกเซ‡เชฒเซเชธ เชถเซ‹เชงเชตเชพ เชฎเซเชถเซเช•เซ‡เชฒ เช›เซ‡. เช…เชฎเซ‡ เชฌเซ€เชœเซ€ เชฆเชฟเชถเชพเชฎเชพเช‚ เช–เซ‹เชฆเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซ€เช เช›เซ€เช - เชธเซเชชเซ€เชš เชชเซเชฐเซ‹เชธเซ‡เชธเชฟเช‚เช— เช…เชจเซ‡ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เชคเชฐเชซ. เชšเชพเชฒเซ‹ เชตเชพเชฃเซ€เชฎเชพเช‚เชฅเซ€ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เช“เชณเช–เชตเชพเชจเซเช‚ เชเช• เชฐเชธเชชเซเชฐเชฆ เช•เชพเชฐเซเชฏ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเชˆเช. เชเชตเซเช‚ เช•เชนเซ‡เชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡ เช•เซ‡ OpenVINO เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชเช• เชฎเซ‹เชกเซ‡เชฒ เช›เซ‡ เชœเซ‡ เชตเซเชฏเช•เซเชคเชฟเชจเซ€ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เชคเซ‡เชจเชพ เชšเชนเซ‡เชฐเชพเชจเชพ เช†เชงเชพเชฐเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ:

  • เชธเชฟเชฆเซเชงเชพเช‚เชคเชฎเชพเช‚, เชเช• เชธเช‚เชฏเซเช•เซเชค เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เชฌเชจเชพเชตเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡ เชœเซ‡ เช…เชตเชพเชœ เช…เชจเซ‡ เช›เชฌเซ€ เชฌเช‚เชจเซ‡ เชชเชฐ เช•เชพเชฎ เช•เชฐเชถเซ‡, เชœเซ‡ เชšเซ‹เช•เชธเชพเชˆเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เช†เชชเชตเซ‹ เชœเซ‹เชˆเช.
  • เช•เซ‡เชฎเซ‡เชฐเชพเชฎเชพเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชœเซ‹เชตเชพเชจเซ‹ เช–เซ‚เชฃเซ‹ เชธเชพเช‚เช•เชกเซ‹ เชนเซ‹เชฏ เช›เซ‡; เชฎเซ‹เชŸเชพ เชตเชฟเชธเซเชคเชพเชฐเชจเซ‡ เช†เชตเชฐเซ€ เชฒเซ‡เชตเชพ เชฎเชพเชŸเซ‡ เชเช• เช•เชฐเชคเชพ เชตเชงเซ เช•เซ‡เชฎเซ‡เชฐเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ‡ เช›เซ‡; เช…เชตเชพเชœเชฎเชพเช‚ เช†เชตเซ€ เชฎเชฐเซเชฏเชพเชฆเชพ เชนเซ‹เชคเซ€ เชจเชฅเซ€.

เชšเชพเชฒเซ‹ เชตเชฟเชšเชพเชฐ เชตเชฟเช•เชธเชพเชตเซ€เช: เชšเชพเชฒเซ‹ เชฐเชฟเชŸเซ‡เชฒ เชธเซ‡เช—เชฎเซ‡เชจเซเชŸ เชฎเชพเชŸเซ‡เชจเชพ เชตเชฟเชšเชพเชฐเชจเซ‡ เช†เชงเชพเชฐ เชคเชฐเซ€เช•เซ‡ เชฒเชˆเช. เชคเชฎเซ‡ เชธเซเชŸเซ‹เชฐ เชšเซ‡เช•เช†เช‰เชŸ เชชเชฐ เช—เซเชฐเชพเชนเช• เชธเช‚เชคเซ‹เชท เชฎเชพเชชเซ€ เชถเช•เซ‹ เช›เซ‹. เชœเซ‹ เช•เซ‹เชˆ เช—เซเชฐเชพเชนเช• เชธเซ‡เชตเชพเชฅเซ€ เช…เชธเช‚เชคเซเชทเซเชŸ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ‹ เชธเซเชตเชฐ เชตเชงเชพเชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‹ เชคเชฎเซ‡ เชคเชฐเชค เชœ เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐเชจเซ‡ เชฎเชฆเชฆ เชฎเชพเชŸเซ‡ เช•เซ‰เชฒ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.
เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเชพเชฐเซ‡ เชฎเชพเชจเชต เช…เชตเชพเชœเชจเซ€ เช“เชณเช– เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช† เช…เชฎเชจเซ‡ เช—เซเชฐเชพเชนเช•เซ‹เชฅเซ€ เชธเซเชŸเซ‹เชฐ เช•เชฐเซเชฎเชšเชพเชฐเซ€เช“เชจเซ‡ เช…เชฒเช— เชชเชพเชกเชตเชพ เช…เชจเซ‡ เชฆเชฐเซ‡เช• เชตเซเชฏเช•เซเชคเชฟ เชฎเชพเชŸเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡. เชธเชพเชฐเซเช‚, เช† เช‰เชชเชฐเชพเช‚เชค, เชธเซเชŸเซ‹เชฐเชจเชพ เช•เชฐเซเชฎเชšเชพเชฐเซ€เช“เชจเซ€ เชตเชฐเซเชคเชฃเซ‚เช•เชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เชฌเชจเชถเซ‡, เชŸเซ€เชฎเชฎเชพเช‚ เชตเชพเชคเชพเชตเชฐเชฃเชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเซเช‚, เชธเชพเชฐเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡!

เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เช‰เช•เซ‡เชฒ เชฎเชพเชŸเซ‡เชจเซ€ เช†เชตเชถเซเชฏเช•เชคเชพเช“ เช˜เชกเซ€เช เช›เซ€เช:

  • เชฒเช•เซเชทเซเชฏ เช‰เชชเช•เชฐเชฃเชจเซเช‚ เชจเชพเชจเซเช‚ เช•เชฆ
  • เชตเชพเชธเซเชคเชตเชฟเช• เชธเชฎเชฏ เช•เชพเชฎเช—เซ€เชฐเซ€
  • เช“เช›เซ€ เช•เชฟเช‚เชฎเชค
  • เชธเชฐเชณ เชฎเชพเชชเชจเซ€เชฏเชคเชพ

เชชเชฐเชฟเชฃเชพเชฎเซ‡, เช…เชฎเซ‡ เชฒเช•เซเชทเซเชฏ เช‰เชชเช•เชฐเชฃ เชคเชฐเซ€เช•เซ‡ Raspberry Pi 3 c เชชเชธเช‚เชฆ เช•เชฐเซ€เช เช›เซ€เช เช‡เชจเซเชŸเซ‡เชฒ เชเชจเชธเซ€เชเชธ 2.

เช…เชนเซ€เช‚ NCS เชจเซ€ เชเช• เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชตเชฟเชถเซ‡เชทเชคเชพเชจเซ€ เชจเซ‹เช‚เชง เชฒเซ‡เชตเซ€ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡ - เชคเซ‡ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค CNN เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชธเชพเชฅเซ‡ เชถเซเชฐเซ‡เชทเซเช  เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เช•เชธเซเชŸเชฎ เชธเซเชคเชฐเซ‹ เชธเชพเชฅเซ‡ เชฎเซ‹เชกเซ‡เชฒ เชšเชฒเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ, เชคเซ‹ เชชเช›เซ€ เชจเซ€เชšเชพ-เชธเซเชคเชฐเชจเชพ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เชเซ‡เชถเชจเชจเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซ‹.

เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชจเชพเชจเซ€ เชตเชธเซเชคเซ เช›เซ‡: เชคเชฎเชพเชฐเซ‡ เชฎเชพเช‡เช•เซเชฐเซ‹เชซเซ‹เชจ เชฎเซ‡เชณเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชจเชฟเชฏเชฎเชฟเชค เชฏเซเชเชธเชฌเซ€ เชฎเชพเช‡เช•เซเชฐเซ‹เชซเซ‹เชจ เช•เชฐเชถเซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ RPI เชธเชพเชฅเซ‡ เชธเชพเชฐเซเช‚ เชฆเซ‡เช–เชพเชถเซ‡ เชจเชนเซ€เช‚. เชชเชฐเช‚เชคเซ เช…เชนเซ€เช‚ เชชเชฃ เช‰เช•เซ‡เชฒ เชถเชพเชฌเซเชฆเชฟเช• เชฐเซ€เชคเซ‡ "เชจเชœเซ€เช•เชฎเชพเช‚ เช†เชตเซ‡เชฒเซ‹ เช›เซ‡." เชตเซ‰เช‡เชธ เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เช•เซ€เชŸเชฎเชพเช‚เชฅเซ€ เชตเซ‰เช‡เชธ เชฌเซ‹เชจเซ‡เชŸ เชฌเซ‹เชฐเซเชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซ€เช เช›เซ€เช Google AIY เชตเซ‰เช‡เชธ เช•เชฟเชŸ, เชœเซ‡เชจเชพ เชชเชฐ เชตเชพเชฏเชฐเซเชก เชธเซเชŸเซ€เชฐเชฟเชฏเซ‹ เชฎเชพเช‡เช•เซเชฐเซ‹เชซเซ‹เชจ เช›เซ‡.

เชชเชฐเชฅเซ€ เชฐเชพเชธเซเชชเชฌเชฟเชฏเชจ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹ AIY เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชซเซเชฒเซ‡เชถ เชกเซเชฐเชพเช‡เชต เชชเชฐ เช…เชชเชฒเซ‹เชก เช•เชฐเซ‹, เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ‹ เช•เซ‡ เชฎเชพเช‡เช•เซเชฐเซ‹เชซเซ‹เชจ เชจเซ€เชšเซ‡เชจเชพ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ (เชคเซ‡ 5 เชธเซ‡เช•เชจเซเชก เชฒเชพเช‚เชฌเซ‹ เช“เชกเชฟเชฏเซ‹ เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเชถเซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเชพเชšเชตเชถเซ‡):

arecord -d 5 -r 16000 test.wav

เชฎเชพเชฐเซ‡ เชคเชฐเชค เชœ เชจเซ‹เช‚เชง เชฒเซ‡เชตเซ€ เชœเซ‹เชˆเช เช•เซ‡ เชฎเชพเช‡เช•เซเชฐเซ‹เชซเซ‹เชจ เช–เซ‚เชฌ เชœ เชธเช‚เชตเซ‡เชฆเชจเชถเซ€เชฒ เช›เซ‡ เช…เชจเซ‡ เช…เชตเชพเชœ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เช‰เชชเชพเชกเซ‡ เช›เซ‡. เช†เชจเซ‡ เช เซ€เช• เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ alsamixer เชชเชฐ เชœเชˆเช, เช•เซ‡เชชเซเชšเชฐ เช‰เชชเช•เชฐเชฃเซ‹ เชชเชธเช‚เชฆ เช•เชฐเซ€เช เช…เชจเซ‡ เช‡เชจเชชเซเชŸ เชธเชฟเช—เซเชจเชฒ เชธเซเชคเชฐเชจเซ‡ 50-60% เชธเซเชงเซ€ เช˜เชŸเชพเชกเซ€เช.

เช“เชชเชจเชตเชฟเชจเซ‹ เชนเซ‡เช•เชพเชฅเซ‹เชจ: เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€ เชชเชฐ เช…เชตเชพเชœ เช…เชจเซ‡ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เช“เชณเช–เชตเซ€
เช…เชฎเซ‡ เชซเชพเช‡เชฒ เชธเชพเชฅเซ‡ เชถเชฐเซ€เชฐเชจเซ‡ เชธเช‚เชถเซ‹เชงเชฟเชค เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชฌเชงเซเช‚ เชฌเช‚เชงเชฌเซ‡เชธเซ‡ เช›เซ‡, เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชขเชพเช‚เช•เชฃเชฅเซ€ เชชเชฃ เชฌเช‚เชง เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹

เชเช• เชธเซ‚เชšเช• เชฌเชŸเชจ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚

AIY เชตเซ‰เช‡เชธ เช•เซ€เชŸเชจเซ‡ เช…เชฒเช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เช…เชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เชคเซเชฏเชพเช‚ เชเช• RGB เชฌเชŸเชจ เช›เซ‡, เชœเซ‡เชจเซ€ เชฌเซ‡เช•เชฒเชพเช‡เชŸเชจเซ‡ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช…เชฎเซ‡ "Google AIY Led" เชถเซ‹เชงเซ€เช เช›เซ€เช เช…เชจเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชถเซ‹เชงเซ€เช เช›เซ€เช: https://aiyprojects.readthedocs.io/en/latest/aiy.leds.html
เชฎเชพเชจเซเชฏเชคเชพเชชเซเชฐเชพเชชเซเชค เชฒเชพเช—เชฃเซ€ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช† เชฌเชŸเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชฎ เชจ เช•เชฐเชตเซ‹, เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชซเช•เซเชค 7 เชตเชฐเซเช—เซ‹ เช›เซ‡, เช…เชจเซ‡ เชฌเชŸเชจเชฎเชพเช‚ 8 เชฐเช‚เช—เซ‹ เช›เซ‡, เชคเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡!

เช…เชฎเซ‡ เชตเซ‹เชˆเชธ เชฌเซ‹เชจเซ‡เชŸ เชธเชพเชฅเซ‡ GPIO เชฎเชพเชฐเชซเชคเซ‡ เชฌเชŸเชจเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€เช เช›เซ€เช, เชœเชฐเซ‚เชฐเซ€ เชฒเชพเชˆเชฌเซเชฐเซ‡เชฐเซ€เช“ เชฒเซ‹เชก เช•เชฐเซ€เช เช›เซ€เช (เชคเซ‡เช“ 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])))

เช“เชชเชจเชตเชฟเชจเซ‹ เชนเซ‡เช•เชพเชฅเซ‹เชจ: เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€ เชชเชฐ เช…เชตเชพเชœ เช…เชจเซ‡ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เช“เชณเช–เชตเซ€
เชฌเชŸเชจ, เชฌเชฐเซเชจ!

เช…เชตเชพเชœ เชธเชพเชฅเซ‡ เช•เชพเชฎ

เช…เชฎเซ‡ เช…เชตเชพเชœเชจเซ‡ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเชตเชพ เช…เชจเซ‡ เช…เชตเชพเชœ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ เชฎเชพเช‡เช•เซเชฐเซ‹เชซเซ‹เชจ เช…เชจเซ‡ webrtcvadเชฎเชพเช‚เชฅเซ€ เชธเซเชŸเซเชฐเซ€เชฎ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเซเชฏเชพเชกเชฟเชฏเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚. เชตเชงเซเชฎเชพเช‚, เช…เชฎเซ‡ เชเช• เช•เชคเชพเชฐ เชฌเชจเชพเชตเซ€เชถเซเช‚ เชœเซ‡เชฎเชพเช‚ เช…เชฎเซ‡ เช…เชธเซเชฎเซ‡เชณ เชฐเซ€เชคเซ‡ เช…เชตเชพเชœเชจเชพ เช…เชตเชคเชฐเชฃเซ‹ เช‰เชฎเซ‡เชฐเซ€ เช…เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ€เชถเซเช‚.

webrtcvad เชฆเซเชตเชพเชฐเชพ เชชเซ‚เชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชŸเซเช•เชกเชพเชจเชพ เช•เชฆ เชชเชฐ เชฎเชฐเซเชฏเชพเชฆเชพ เชนเซ‹เชตเชพเชฅเซ€ - เชคเซ‡ 10/20/30ms เชจเซ€ เชฌเชฐเชพเชฌเชฐ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช, เช…เชจเซ‡ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‹เชกเซ‡เชฒเชจเซ€ เชคเชพเชฒเซ€เชฎ (เชœเซ‡เชฎ เช•เซ‡ เช†เชชเชฃเซ‡ เชชเช›เซ€เชฅเซ€ เชœเชพเชฃเซ€เชถเซเช‚) 48kHz เชกเซ‡เชŸเชพเชธเซ‡เชŸ เชชเชฐ เชนเชพเชฅ เชงเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เช…เชฎเซ‡ 48000ร—20ms/1000ร—1(เชฎเซ‹เชจเซ‹)=960 เชฌเชพเช‡เชŸเซเชธ เช•เชฆเชจเชพ เชนเชฟเชธเซเชธเชพเชจเซ‡ เช•เซ‡เชชเซเชšเชฐ เช•เชฐเซ‹. Webrtcvad เช† เชฆเชฐเซ‡เช• เชนเชฟเชธเซเชธเชพ เชฎเชพเชŸเซ‡ เชธเชพเชšเซเช‚/เช–เซ‹เชŸเซเช‚ เชชเชฐเชค เช•เชฐเชถเซ‡, เชœเซ‡ เชนเชฟเชธเซเชธเชพเชฎเชพเช‚ เชฎเชคเชจเซ€ เชนเชพเชœเชฐเซ€ เช…เชฅเชตเชพ เช—เซ‡เชฐเชนเชพเชœเชฐเซ€เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เช›เซ‡.

เชšเชพเชฒเซ‹ เชจเซ€เชšเซ‡เชจเชพ เชคเชฐเซเช•เชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ€เช:

  • เชœเซเชฏเชพเช‚ เชตเซ‹เชŸ เชนเชถเซ‡ เชคเซ‡ เชนเชฟเชธเซเชธเชพเชจเซ‡ เช…เชฎเซ‡ เชฏเชพเชฆเซ€เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเซ€เชถเซเช‚; เชœเซ‹ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชฎเชค เชจเชฅเซ€, เชคเซ‹ เช…เชฎเซ‡ เช–เชพเชฒเซ€ เชนเชฟเชธเซเชธเชพเชจเชพ เช•เชพเช‰เชจเซเชŸเชฐเชจเซ‡ เชตเชงเชพเชฐเซ€เชถเซเช‚.
  • เชœเซ‹ เช–เชพเชฒเซ€ เชนเชฟเชธเซเชธเชพเชจเซเช‚ เช•เชพเช‰เชจเซเชŸเชฐ >=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 = []

เชธเชพเชฐเซเชตเชœเชจเชฟเช• เชกเซ‹เชฎเซ‡เชจเชฎเชพเช‚ เชชเซ‚เชฐเซเชต-เชชเซเชฐเชถเชฟเช•เซเชทเชฟเชค เชฎเซ‹เชกเซ‡เชฒเซเชธ เชœเซ‹เชตเชพเชจเซ‹ เชธเชฎเชฏ เช›เซ‡, เช—เซ€เชฅเชฌ, เช—เซ‚เช—เชฒ เชชเชฐ เชœเชพเช“, เชชเชฐเช‚เชคเซ เชฏเชพเชฆ เชฐเชพเช–เซ‹ เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชชเชฐ เชฎเชฐเซเชฏเชพเชฆเชพ เช›เซ‡. เช† เชเช• เช–เซ‚เชฌ เชœ เชฎเซเชถเซเช•เซ‡เชฒ เชญเชพเช— เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เชคเชฎเชพเชฐเชพ เช‡เชจเชชเซเชŸ เชกเซ‡เชŸเชพ เชชเชฐเชจเชพ เชฎเซ‹เชกเชฒเซเชธเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡, เช…เชจเซ‡ เชตเชงเซเชฎเชพเช‚, เชคเซ‡เชฎเชจเซ‡ OpenVINO เชจเชพ เช†เช‚เชคเชฐเชฟเช• เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเซ‹ - IR (เชฎเชงเซเชฏเชตเชฐเซเชคเซ€ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต). เช…เชฎเซ‡ เช—เซ€เชฅเชฌเชฎเชพเช‚เชฅเซ€ เชฒเช—เชญเช— 5-7 เชœเซเชฆเชพ เชœเซเชฆเชพ เชธเซ‹เชฒเซเชฏเซเชถเชจเซเชธเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹, เช…เชจเซ‡ เชœเซ‹ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชฎเซ‹เชกเซ‡เชฒ เชคเชฐเชค เชœ เช•เชพเชฎ เช•เชฐเซ‡, เชคเซ‹ เช…เชตเชพเชœเชจเซ€ เช“เชณเช– เชธเชพเชฅเซ‡ เช…เชฎเชพเชฐเซ‡ เชตเชงเซ เชฐเชพเชน เชœเซ‹เชตเซ€ เชชเชกเซ€ - เชคเซ‡ เชตเชงเซ เชœเชŸเชฟเชฒ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡.

เช…เชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเซ€เช เช›เซ€เช:

  • เช…เชตเชพเชœเชฎเชพเช‚เชฅเซ€ เชฒเชพเช—เชฃเซ€เช“ - https://github.com/alexmuhr/Voice_Emotion
    เชคเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชธเชฟเชฆเซเชงเชพเช‚เชค เช…เชจเซเชธเชพเชฐ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡: เช‘เชกเชฟเช“ เชšเซ‹เช•เซเช•เชธ เช•เชฆเชจเชพ เชซเช•เชฐเชพเช“เชฎเชพเช‚ เช•เชพเชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช† เชฆเชฐเซ‡เช• เชซเช•เชฐเชพเช“ เชฎเชพเชŸเซ‡ เช…เชฎเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ€เช เช›เซ€เช MFCC เช…เชจเซ‡ เชชเช›เซ€ CNN เชชเชฐ เช‡เชจเชชเซเชŸ เชคเชฐเซ€เช•เซ‡ เชธเชฌเชฎเชฟเชŸ เช•เชฐเซ‹
  • เช…เชตเชพเชœ เช“เชณเช– - https://github.com/linhdvu14/vggvox-speaker-identification
    เช…เชนเซ€เช‚, MFCC เชจเซ‡ เชฌเชฆเชฒเซ‡, เช…เชฎเซ‡ เชธเซเชชเซ‡เช•เซเชŸเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ€เช เช›เซ€เช, FFT เชชเช›เซ€ เช…เชฎเซ‡ CNN เชจเซ‡ เชธเชฟเช—เซเชจเชฒ เชซเซ€เชก เช•เชฐเซ€เช เช›เซ€เช, เชœเซเชฏเชพเช‚ เช†เช‰เชŸเชชเซเชŸ เชชเชฐ เช…เชฎเชจเซ‡ เชตเซ‰เช‡เชธเชจเซเช‚ เชตเซ‡เช•เซเชŸเชฐ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เชฎเชณเซ‡ เช›เซ‡.

เช†เช—เชณ เช†เชชเชฃเซ‡ เชธเชฟเชฆเซเชงเชพเช‚เชคเชฅเซ€ เชถเชฐเซ‚ เช•เชฐเซ€เชจเซ‡ เชฎเซ‹เชกเซ‡เชฒเซ‹เชจเซ‡ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเชตเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เชถเซเช‚. OpenVINO เชฎเชพเช‚ เช˜เชฃเชพ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เชถเชพเชฎเซ‡เชฒ เช›เซ‡:

  • เชฎเซ‹เชกเชฒ เชเซ‚ เช–เซ‹เชฒเซ‹, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชคเชฎเชพเชฐเชพ เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช— เช…เชจเซ‡ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเชพ เชฎเซ‹เชกเชฒ
  • เชฎเซ‹เชกเชฒ เช‘เชชเซเชŸเชฟเชฎเชเชฐ, เชœเซ‡เชจเซ‹ เช†เชญเชพเชฐ เชคเชฎเซ‡ เชตเชฟเชตเชฟเชง เชซเซเชฐเซ‡เชฎเชตเชฐเซเช• เชซเซ‹เชฐเซเชฎเซ‡เชŸเซเชธ (เชŸเซ‡เชจเซเชธเชฐเชซเซเชฒเซ‹, เช“เชเชจเชเชจเชเช•เซเชธ เชตเช—เซ‡เชฐเซ‡) เชฎเชพเช‚เชฅเซ€ เชฎเซ‹เชกเชฒเชจเซ‡ เช‡เชจเซเชŸเชฐเชฎเซ€เชกเชฟเชฏเซ‡เชŸ เชฐเชฟเชชเซเชฐเซ‡เชเชจเซเชŸเซ‡เชถเชจ เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช…เชฎเซ‡ เช†เช—เชณ เช•เชพเชฎ เช•เชฐเซ€เชถเซเช‚.
  • เช‡เชจเซเชซเชฐเชจเซเชธ เชเชจเซเชœเชฟเชจ เชคเชฎเชจเซ‡ เช‡เชจเซเชŸเซ‡เชฒ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเซเชธ, เช…เชธเช‚เช–เซเชฏ เชšเชฟเชชเซเชธ เช…เชจเซ‡ เชจเซเชฏเซเชฐเชฒ เช•เซ‹เชฎเซเชชเซเชฏเซเชŸ เชธเซเชŸเชฟเช• เชเช•เซเชธเชฟเชฒเชฐเซ‡เชŸเชฐเซเชธ เชชเชฐ IR เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชฎเซ‹เชกเชฒ เชšเชฒเชพเชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.
  • OpenCV เชจเซเช‚ เชธเซŒเชฅเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎ เชธเช‚เชธเซเช•เชฐเชฃ (เช‡เชจเซเชซเชฐเชจเซเชธ เชเชจเซเชœเชฟเชจ เชธเชชเซ‹เชฐเซเชŸ เชธเชพเชฅเซ‡)
    IR เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชฆเชฐเซ‡เช• เชฎเซ‹เชกเซ‡เชฒเชจเซเช‚ เชตเชฐเซเชฃเชจ เชฌเซ‡ เชซเชพเช‡เชฒเซ‹ เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡: .xml เช…เชจเซ‡ .bin.
    เชฎเซ‹เชกเชฒเชจเซ‡ เชฎเซ‹เชกเชฒ เช“เชชเซเชŸเชฟเชฎเชพเช‡เชเชฐ เชฆเซเชตเชพเชฐเชพ IR เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชจเซ€เชšเซ‡ เชชเซเชฐเชฎเชพเชฃเซ‡ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡:

    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)

    เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เช›เซ‡เชฒเซเชฒเซ€ เชฒเชพเช‡เชจ เชคเชฎเชจเซ‡ เชจเซเชฏเซเชฐเชฒ เช•เซ‹เชฎเซเชชเซเชฏเซเชŸ เชธเซเชŸเชฟเช• เชชเชฐ เช—เชฃเชคเชฐเซ€เช“ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชชเชฐ เชฎเซ‚เชณเชญเซ‚เชค เช—เชฃเชคเชฐเซ€เช“ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เช† เช•เชพเชฎ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚, เชคเชฎเชพเชฐเซ‡ เชเช• เชฒเชพเช•เชกเซ€เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡.

    เช†เช—เชณ, เชคเชฐเซเช• เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช›เซ‡: เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เช‘เชกเชฟเช“เชจเซ‡ เชšเซ‹เช•เซเช•เชธ เช•เชฆเชจเซ€ เชตเชฟเชจเซเชกเซ‹เชเชฎเชพเช‚ เชตเชฟเชญเชพเชœเซ€เชค เช•เชฐเซ€เช เช›เซ€เช (เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ 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 เชฒเซ‡ เช›เซ‡). เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชนเชตเซ‡ เชจเชตเชพ เชฎเซ‹เชกเชฒเซเชธ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ‹ เชธเชฎเชฏ เชจเชฅเซ€ เช…เชจเซ‡ เชตเซ‡เชฌ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‹ เชชเซเชฐเซ‹เชŸเซ‹เชŸเชพเช‡เชช เชฒเช–เชตเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡.

    เชตเซ‡เชฌ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ

    เชเช• เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชฎเซเชฆเซเชฆเซ‹: เช…เชฎเซ‡ เช˜เชฐเซ‡เชฅเซ€ เช…เชฎเชพเชฐเซ€ เชธเชพเชฅเซ‡ เชฐเชพเช‰เชŸเชฐ เชฒเชˆเช เช›เซ€เช เช…เชจเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเซเชฅเชพเชจเชฟเช• เชจเซ‡เชŸเชตเชฐเซเช• เชธเซ‡เชŸ เช•เชฐเซ€เช เช›เซ€เช, เชคเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ เช‰เชชเช•เชฐเชฃ เช…เชจเซ‡ เชฒเซ‡เชชเชŸเซ‹เชชเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡.

    เชฌเซ‡เช•เชเชจเซเชก เช เชซเซเชฐเชจเซเชŸ เช…เชจเซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเชพเชˆ เชตเชšเซเชšเซ‡เชจเซ€ เชเชจเซเชก-เชŸเซ-เชเชจเซเชก เชฎเซ‡เชธเซ‡เชœ เชšเซ‡เชจเชฒ เช›เซ‡, เชœเซ‡ เชตเซ‡เชฌเชธเซ‹เช•เซ‡เชŸ เชŸเซ‡เช•เซเชจเซ‹เชฒเซ‹เชœเซ€ (http เช“เชตเชฐ tcp เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ) เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡.

    เชชเซเชฐเชฅเชฎ เชคเชฌเช•เซเช•เซ‹ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชฎเชพเช‚เชฅเซ€ เชชเซเชฐเซ‹เชธเซ‡เชธเซเชก เชฎเชพเชนเชฟเชคเซ€ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพเชจเซ‹ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡ json เชฎเชพเช‚ เชชเซ‡เช• เช•เชฐเชพเชฏเซ‡เชฒเชพ เช†เช—เชพเชนเซ€เช•เชพเชฐเซ‹, เชœเซ‡ เชคเซ‡เชฎเชจเซ€ เชฎเซเชธเชพเชซเชฐเซ€ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชธเชพเชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเซ‡เชฅเซ€ เชธเชฎเชฏเช—เชพเชณเชพ เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ€ เชญเชพเชตเชจเชพเชคเซเชฎเช• เชชเซƒเชทเซเช เชญเซ‚เชฎเชฟ เชตเชฟเชถเซ‡ เช†เช‚เช•เชกเชพเช“ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ. เช† เชชเซ‡เช•เซ‡เชŸ เชชเช›เซ€ เชซเซเชฐเชจเซเชŸเชเชจเซเชก เชชเชฐ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชธเชฌเชธเซเช•เซเชฐเชฟเชชเซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชตเซ‡เชฌเชธเซ‹เช•เซ‡เชŸ เชเชจเซเชกเชชเซ‹เช‡เชจเซเชŸเชฎเชพเช‚เชฅเซ€ เชชเซ‡เช•เซ‡เชŸเซ‹ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡. เชธเชฎเช—เซเชฐ เชฌเซ‡เช•เชเชจเซเชก เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เช—เซ‹เชฒเชพเช‚เช— เชญเชพเชทเชพเชฎเชพเช‚ เชฌเชจเซ‡เชฒ เช›เซ‡; เชคเซ‡ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เช…เชธเซเชฎเซ‡เชณ เช•เชพเชฐเซเชฏเซ‹ เชฎเชพเชŸเซ‡ เชฏเซ‹เช—เซเชฏ เช›เซ‡, เชœเซ‡ เช—เซ‹เชฐเซ‹เชŸเซ€เชจ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเซ‡ เช›เซ‡.
    เช…เช‚เชคเชฟเชฎ เชฌเชฟเช‚เชฆเซเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชจเซ‹เช‚เชงเชพเชฏเซ‡เชฒ เช›เซ‡ เช…เชจเซ‡ เชฌเช‚เชงเชพเชฐเชฃเชฎเชพเช‚ เชฆเชพเช–เชฒ เชฅเชพเชฏ เช›เซ‡, เชชเช›เซ€ เชคเซ‡เชจเซ‹ เชธเช‚เชฆเซ‡เชถ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชจเซ‡ เชธเช‚เชฆเซ‡เชถ เชฌเช‚เชจเซ‡ เชเช• เชธเชพเชฎเชพเชจเซเชฏ เชนเชฌเชฎเชพเช‚ เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซเชฏเชพเช‚เชฅเซ€ เชธเช‚เชฆเซ‡เชถเชพเช“ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช†เช—เชณ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‡เชฒ เชซเซเชฐเชจเซเชŸ เชชเชฐ), เช…เชจเซ‡ เชœเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช•เชจเซ‡เช•เซเชถเชจ (เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เช…เชฅเชตเชพ เชซเซเชฐเชจเซเชŸ) เชฌเช‚เชง เช•เชฐเซ‡ เช›เซ‡, เชคเซ‹ เชคเซ‡เชจเซเช‚ เชธเชฌเซเชธเซเช•เซเชฐเชฟเชชเซเชถเชจ เชฐเชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชนเชฌ

    เช“เชชเชจเชตเชฟเชจเซ‹ เชนเซ‡เช•เชพเชฅเซ‹เชจ: เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€ เชชเชฐ เช…เชตเชพเชœ เช…เชจเซ‡ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เช“เชณเช–เชตเซ€
    เช…เชฎเซ‡ เชชเชพเช›เชณเชฅเซ€ เช•เชจเซ‡เช•เซเชถเชจเชจเซ€ เชฐเชพเชน เชœเซ‹เชˆ เชฐเชนเซเชฏเชพ เช›เซ€เช

    เชซเซเชฐเชจเซเชŸ-เชเชจเซเชก เช เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเชพ เช…เชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฐเชฟเชเช•เซเชŸ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ JavaScriptเชฎเชพเช‚ เชฒเช–เซ‡เชฒเซ€ เชตเซ‡เชฌ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช›เซ‡. เช† เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‹ เชนเซ‡เชคเซ เชฌเซ‡เช•-เชเชจเซเชก เชฌเชพเชœเซ เช…เชจเซ‡ เชธเซ€เชงเชพ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€ เชชเชฐ เชšเชพเชฒเชคเชพ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฎเซ‡เชณเชตเซ‡เชฒเชพ เชกเซ‡เชŸเชพเชจเซ€ เช•เชฒเซเชชเชจเชพ เช•เชฐเชตเชพเชจเซ‹ เช›เซ‡. เชชเซƒเชทเซเช เชฎเชพเช‚ เชฐเชฟเชเช•เซเชŸ-เชฐเชพเช‰เชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเชฟเชญเชพเช—เซ€เชฏ เชฐเซ‚เชŸเซ€เช‚เช— เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฐเชธเชจเซเช‚ เชฎเซเช–เซเชฏ เชชเซƒเชทเซเช  เชฎเซเช–เซเชฏ เชชเซƒเชทเซเช  เช›เซ‡, เชœเซเชฏเชพเช‚ เชตเซ‡เชฌเชธเซ‹เช•เซ‡เชŸ เชคเช•เชจเซ€เช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเชฐเซเชตเชฐเชฎเชพเช‚เชฅเซ€ เชตเชพเชธเซเชคเชตเชฟเช• เชธเชฎเชฏเชฎเชพเช‚ เชกเซ‡เชŸเชพเชจเซ‹ เชธเชคเชค เชชเซเชฐเชตเชพเชน เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. Raspberry Pi เช…เชตเชพเชœ เชถเซ‹เชงเซ‡ เช›เซ‡, เชคเซ‡ เชฐเชœเชฟเชธเซเชŸเชฐเซเชก เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚เชฅเซ€ เช•เซ‹เชˆ เชšเซ‹เช•เซเช•เชธ เชตเซเชฏเช•เซเชคเชฟเชจเซ‹ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ เชธเช‚เชญเชตเชฟเชคเชคเชพเชจเซ€ เชธเซ‚เชšเชฟ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡. เช•เซเชฒเชพเชฏเช‚เชŸ เชจเชตเซ€เชจเชคเชฎ เชธเช‚เชฌเช‚เชงเชฟเชค เชกเซ‡เชŸเชพ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡ เชตเซเชฏเช•เซเชคเชฟเชจเซ‹ เช…เชตเชคเชพเชฐ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ เชœเซ‡เชฃเซ‡ เชธเช‚เชญเชตเชคเชƒ เชฎเชพเช‡เช•เซเชฐเซ‹เชซเซ‹เชจเชฎเชพเช‚ เชตเชพเชค เช•เชฐเซ€ เชนเชคเซ€, เชคเซ‡เชฎเชœ เชคเซ‡ เชฒเชพเช—เชฃเซ€ เช•เซ‡ เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชคเซ‡ เชถเชฌเซเชฆเซ‹ เช‰เชšเซเชšเชพเชฐ เช•เชฐเซ‡ เช›เซ‡.

    เช“เชชเชจเชตเชฟเชจเซ‹ เชนเซ‡เช•เชพเชฅเซ‹เชจ: เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€ เชชเชฐ เช…เชตเชพเชœ เช…เชจเซ‡ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เช“เชณเช–เชตเซ€
    เช…เชชเชกเซ‡เชŸเซ‡เชก เช…เชจเซเชฎเชพเชจเซ‹ เชธเชพเชฅเซ‡ เชนเซ‹เชฎ เชชเซ‡เชœ

    เชจเชฟเชทเซเช•เชฐเซเชท

    เชฏเซ‹เชœเชจเชพ เชฎเซเชœเชฌ เชฌเชงเซเช‚ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เชจ เชนเชคเซเช‚, เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชซเช•เซเชค เชธเชฎเชฏ เชจเชนเซ‹เชคเซ‹, เชคเซ‡เชฅเซ€ เชฎเซเช–เซเชฏ เช†เชถเชพ เชกเซ‡เชฎเซ‹เชฎเชพเช‚ เชนเชคเซ€, เช•เซ‡ เชฌเชงเซเช‚ เช•เชพเชฐเซเชฏ เช•เชฐเชถเซ‡. เชชเซเชฐเซ‡เชเชจเซเชŸเซ‡เชถเชจเชฎเชพเช‚ เชคเซ‡เช“เช เชฌเชงเซเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เช“เช เช•เชฏเชพ เชฎเซ‹เชกเชฒ เชฒเซ€เชงเชพ, เชคเซ‡เชฎเชจเซ‡ เช•เชˆ เชธเชฎเชธเซเชฏเชพเช“เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเซ‹ เชชเชกเซเชฏเซ‹ เชคเซ‡ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€. เช†เช—เชณ เชกเซ‡เชฎเซ‹ เชญเชพเช— เชนเชคเซ‹ - เชจเชฟเชทเซเชฃเชพเชคเซ‹ เชฐเซ‡เชจเซเชกเชฎ เช•เซเชฐเชฎเชฎเชพเช‚ เชฐเซ‚เชฎเชจเซ€ เช†เชธเชชเชพเชธ เชซเชฐเชคเชพ เชนเชคเชพ เช…เชจเซ‡ เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชชเซเชฐเซ‹เชŸเซ‹เชŸเชพเช‡เชช เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ เชฆเชฐเซ‡เช• เชŸเซ€เชฎเชจเซ‹ เชธเช‚เชชเชฐเซเช• เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹. เชคเซ‡เช“เช เช…เชฎเชจเซ‡ เชชเซเชฐเชถเซเชจเซ‹ เชชเชฃ เชชเซ‚เช›เซเชฏเชพ, เชฆเชฐเซ‡เช•เซ‡ เชคเซ‡เชฎเชจเชพ เชญเชพเช—เชจเซ‹ เชœเชตเชพเชฌ เช†เชชเซเชฏเซ‹, เชคเซ‡เช“เช เชฒเซ‡เชชเชŸเซ‹เชช เชชเชฐ เชตเซ‡เชฌ เช›เซ‹เชกเซ€ เชฆเซ€เชงเซเช‚, เช…เชจเซ‡ เชฌเชงเซเช‚ เช–เชฐเซ‡เช–เชฐ เช…เชชเซ‡เช•เซเชทเชพ เชฎเซเชœเชฌ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚.

    เชฎเชจเซ‡ เชจเซ‹เช‚เชง เชฒเซ‡เชตเชพ เชฆเซ‹ เช•เซ‡ เช…เชฎเชพเชฐเชพ เชธเซ‹เชฒเซเชฏเซเชถเชจเชจเซ€ เช•เซเชฒ เช•เชฟเช‚เชฎเชค $150 เชนเชคเซ€:

    • เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเชพเช‡ 3 ~ $35
    • Google AIY เชตเซ‰เช‡เชธ เชฌเซ‹เชจเซ‡เชŸ (เชคเชฎเซ‡ เชฐเชฟเชธเซเชชเซ€เช•เชฐ เชซเซ€ เชฒเชˆ เชถเช•เซ‹ เช›เซ‹) ~ 15$
    • เช‡เชจเซเชŸเซ‡เชฒ NCS 2 ~ 100$

    เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเซเชงเชพเชฐเชตเซเช‚:

    • เช•เซเชฒเชพเชฏเช‚เชŸ เชคเชฐเชซเชฅเซ€ เชจเซ‹เช‚เชงเชฃเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ - เชฐเซ‡เชจเซเชกเชฎเชฒเซ€ เชœเชจเชฐเซ‡เชŸ เชฅเชฏเซ‡เชฒ เชŸเซ‡เช•เซเชธเซเชŸ เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡ เช•เชนเซ‹
    • เชฅเซ‹เชกเชพ เชตเชงเซ เชฎเซ‹เชกเชฒเซเชธ เช‰เชฎเซ‡เชฐเซ‹: เชคเชฎเซ‡ เช…เชตเชพเชœ เชฆเซเชตเชพเชฐเชพ เชฒเชฟเช‚เช— เช…เชจเซ‡ เช‰เช‚เชฎเชฐ เชจเช•เซเช•เซ€ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹
    • เชตเชพเชฐเชพเชซเชฐเชคเซ€ เช…เชตเชพเชœเซ‹เชจเซ‡ เช…เชฒเช— เช•เชฐเซ‹ (เชกเชพเชฏเชฐเชพเช‡เชเซ‡เชถเชจ)

    เชญเช‚เชกเชพเชฐ: https://github.com/vladimirwest/OpenEMO

    เช“เชชเชจเชตเชฟเชจเซ‹ เชนเซ‡เช•เชพเชฅเซ‹เชจ: เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€ เชชเชฐ เช…เชตเชพเชœ เช…เชจเซ‡ เชฒเชพเช—เชฃเซ€เช“เชจเซ‡ เช“เชณเช–เชตเซ€
    เชฅเชพเช•เซ‡เชฒเชพ เชชเชฃ เช–เซเชถ เช›เซ€เช

    เชจเชฟเชทเซเช•เชฐเซเชทเชฎเชพเช‚, เชนเซเช‚ เช†เชฏเซ‹เชœเช•เซ‹ เช…เชจเซ‡ เชธเชนเชญเชพเช—เซ€เช“เชจเซ‹ เช†เชญเชพเชฐ เช•เชนเซ‡เชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚. เช…เชจเซเชฏ เชŸเซ€เชฎเซ‹เชจเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชฎเชพเช‚, เช…เชฎเชจเซ‡ เชฎเชซเชค เชชเชพเชฐเซเช•เชฟเช‚เช— เชœเช—เซเชฏเชพเช“ เชชเชฐ เชฆเซ‡เช–เชฐเซ‡เช– เชฐเชพเช–เชตเชพเชจเซ‹ เช‰เช•เซ‡เชฒ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฐเซ€เชคเซ‡ เช—เชฎเซเชฏเซ‹. เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡, เชคเซ‡ เช‰เชคเซเชชเชพเชฆเชจ เช…เชจเซ‡ เชตเชฟเช•เชพเชธเชฎเชพเช‚ เชจเชฟเชฎเชœเซเชœเชจเชจเซ‹ เช–เซ‚เชฌ เชœ เชธเชฐเชธ เช…เชจเซเชญเชต เชนเชคเซ‹. เชนเซเช‚ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚ เช•เซ‡ AI เชตเชฟเชทเชฏเซ‹ เชธเชนเชฟเชค เชชเซเชฐเชฆเซ‡เชถเซ‹เชฎเชพเช‚ เชตเชงเซเชจเซ‡ เชตเชงเซ เชฐเชธเชชเซเชฐเชฆ เช•เชพเชฐเซเชฏเช•เซเชฐเชฎเซ‹ เชฏเซ‹เชœเชพเชถเซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹