OpenVINO Hackathon: เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบชเบฝเบ‡ เปเบฅเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™ โ€‹โ€‹Raspberry Pi

เบงเบฑเบ™เบ—เบต 30 เบžเบฐเบˆเบดเบ - 1 เป€เบ”เบทเบญเบ™เบ—เบฑเบ™เบงเบฒเปƒเบ™ Nizhny Novgorod เป„เบ”เป‰เบˆเบฑเบ”เบ‚เบถเป‰เบ™ OpenVINO hackathon. เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเป„เบ”เป‰เบ–เบทเบเบ‚เปเปƒเบซเป‰เบชเป‰เบฒเบ‡เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท Intel OpenVINO. เบœเบนเป‰เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เป„เบ”เป‰เบชเบฐเป€เบซเบ™เบตเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบซเบปเบงเบ‚เปเป‰เป‚เบ”เบเบ›เบฐเบกเบฒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบŠเบตเป‰เบ™เปเบฒเปƒเบ™เป€เบงเบฅเบฒเป€เบฅเบทเบญเบเบงเบฝเบ, เปเบ•เปˆเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบชเบธเบ”เบ—เป‰เบฒเบเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเบเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบŠเบธเบเบเบนเป‰.

OpenVINO Hackathon: เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบชเบฝเบ‡ เปเบฅเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™ โ€‹โ€‹Raspberry Pi

เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบ•เบปเบงเปเบšเบšเบ‚เบญเบ‡เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เป€เบŠเบดเปˆเบ‡เปƒเบ™เบ—เบตเปˆเบชเบธเบ”เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบญเบฑเบ™เบ”เบฑเบšเบ—เปเบฒเบญเบดเบ”.

เบซเบผเบฒเบเบเบงเปˆเบฒ 10 เบ—เบตเบกเป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™ hackathon. เบกเบฑเบ™เบ”เบตเบ—เบตเปˆเบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบกเบฒเบˆเบฒเบเบžเบฒเบเบžเบทเป‰เบ™เบญเบทเปˆเบ™เป†. เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบชเปเบฒเบฅเบฑเบš hackathon เปเบกเปˆเบ™ "Kremlinsky on Pochain", เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™, เบšเปˆเบญเบ™เบ—เบตเปˆเบฎเบนเบšเบ–เปˆเบฒเบเบงเบฑเบ”เบ–เบธเบšเบนเบฎเบฒเบ™เบ‚เบญเบ‡ Nizhny Novgorod เป„เบ”เป‰เบ–เบทเบเปเบ‚เบงเบ™เป„เบงเป‰เบžเบฒเบเปƒเบ™, เปƒเบ™ entourage! (เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ‚เปเป€เบ•เบทเบญเบ™เบ—เปˆเบฒเบ™เบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰เบซเป‰เบญเบ‡เบเบฒเบ™เบชเบนเบ™เบเบฒเบ‡เบ‚เบญเบ‡ Intel เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™ Nizhny Novgorod). เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเป„เบ”เป‰เบฎเบฑเบšเป€เบงเบฅเบฒ 26 เบŠเบปเปˆเบงเป‚เบกเบ‡เป€เบžเบทเปˆเบญเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”, เปเบฅเบฐเปƒเบ™เบ—เบตเปˆเบชเบธเบ”เบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบกเปˆเบ™เบเบฒเบ™เบกเบตเบเบญเบ‡เบ›เบฐเบŠเบธเบกเบชเบฒเบ—เบดเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบงเบฒเบ‡เปเบœเบ™เป„เบงเป‰เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เปเบฅเบฐเบšเปเปˆเบเบฑเบ‡เบ„เบปเบ‡เป€เบ›เบฑเบ™เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปƒเบ™เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต. เบชเบดเบ™เบ„เป‰เบฒ, เบญเบฒเบซเบฒเบ™เบซเบงเปˆเบฒเบ‡, เบญเบฒเบซเบฒเบ™, เบ—เบธเบเบขเปˆเบฒเบ‡เบเปเปˆเบกเบตเบ„เบทเบเบฑเบ™!

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, Intel เบเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบเป‰เบญเบ‡เบ–เปˆเบฒเบเบฎเบนเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบ, Raspberry PI, Neural Compute Stick 2.

เบเบฒเบ™เป€เบฅเบทเบญเบเปœเป‰เบฒเบงเบฝเบ

เบซเบ™เบถเปˆเบ‡เปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ hackathon เบฎเบนเบšเปเบšเบšเบŸเบฃเบตเปเบกเปˆเบ™เบเบฒเบ™เป€เบฅเบทเบญเบเบชเบดเปˆเบ‡เบ—เป‰เบฒเบ—เบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบ—เบตเปˆเบˆเบฐเบกเบฒเป€เบ–เบดเบ‡เบเบฑเบšเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบกเบตเบขเบนเปˆเปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบเปˆเบฒเบงเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบดเบ™เบ”เบตเบ•เป‰เบญเบ™เบฎเบฑเบšเบขเปˆเบฒเบ‡เบชเบนเบ‡.

เบกเบตเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡, เป€เบŠเบดเปˆเบ‡เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบเบ›เบฐเบˆเบธเบšเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบกเบฒเบชเบฐเบซเบฅเบธเบšเบงเปˆเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ•เปˆเบฒเบ‡เป†. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเบกเบฒเบเบฑเบšเบšเบฑเบ™เบซเบฒเปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ‚เบญเบ‡เบงเบดเป„เบชเบ—เบฑเบ”เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ OpenVINO, เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบชเบฒเบกเบฒเบ”เบ›เบฐเบ”เบดเบ”เป„เบ”เป‰, เบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ—เบฒเบ‡เบชเปˆเบงเบ™เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบเบฒเบ™เบเบถเบเบญเบปเบšเบฎเบปเบกเปƒเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ. เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ‚เบธเบ”เบ„เบปเป‰เบ™เปƒเบ™เบ—เบดเบ”เบ—เบฒเบ‡เบญเบทเปˆเบ™ - เป„เบ›เบชเบนเปˆเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ„เปเบฒเป€เบงเบปเป‰เบฒเปเบฅเบฐเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ. เบ‚เปโ€‹เปƒเบซเป‰โ€‹เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒโ€‹เบงเบฝเบโ€‹เบ—เบตเปˆโ€‹เปœเป‰เบฒโ€‹เบชเบปเบ™โ€‹เปƒเบˆโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบฎเบฑเบšโ€‹เบฎเบนเป‰โ€‹เบญเบฒเบฅเบปเบกโ€‹เบˆเบฒเบโ€‹เบ„เบณโ€‹เป€เบงเบปเป‰เบฒ. เบกเบฑเบ™เบ•เป‰เบญเบ‡เป€เบงเบปเป‰เบฒเบงเปˆเบฒ OpenVINO เบกเบตเบ•เบปเบงเปเบšเบšเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบ‚เบญเบ‡เบšเบธเบเบ„เบปเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเปƒเบšเบซเบ™เป‰เบฒเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ, เปเบ•เปˆ:

  • เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡ algorithm เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบ—เบฑเบ‡เบชเบฝเบ‡เปเบฅเบฐเบฎเบนเบšเบžเบฒเบš, เป€เบŠเบดเปˆเบ‡เบ„เบงเบ™เบˆเบฐเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡.
  • เบเป‰เบญเบ‡เบ–เปˆเบฒเบเบฎเบนเบšเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบกเบตเบกเบธเบกเป€เบšเบดเปˆเบ‡เปเบ„เบš; เบ•เป‰เบญเบ‡เบกเบตเบเป‰เบญเบ‡เบ–เปˆเบฒเบเบฎเบนเบšเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เป€เบžเบทเปˆเบญเบเบงเบกเป€เบญเบปเบฒเบžเบทเป‰เบ™เบ—เบตเปˆเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ; เบชเบฝเบ‡เบšเปเปˆเบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”: เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบชเปเบฒเบฅเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™เบ‚เบฒเบเบเปˆเบญเบเป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบงเบฑเบ”เปเบ—เบเบ„เบงเบฒเบกเบžเปเปƒเบˆเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเบขเบนเปˆเบ—เบตเปˆเบฎเป‰เบฒเบ™เบˆเปˆเบฒเบเป€เบ‡เบดเบ™. เบ–เป‰เบฒเบฅเบนเบเบ„เป‰เบฒเบ„เบปเบ™เบซเบ™เบถเปˆเบ‡เบšเปเปˆเบžเปเปƒเบˆเบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบฅเบฐเป€เบฅเบตเปˆเบกเป€เบžเบตเปˆเบกเบชเบฝเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบ—เบซเบฒเบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡เบฅเบฐเบšเบปเบšเป€เบžเบทเปˆเบญเบ‚เปเบ„เบงเบฒเบกเบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ—เบฑเบ™เบ—เบต.
เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบชเบฝเบ‡เบ‚เบญเบ‡เบกเบฐเบ™เบธเบ”, เบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเปเบ™เบเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบฎเป‰เบฒเบ™เบˆเบฒเบเบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เบปเบ™. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบงเบดเป€เบ„เบฒเบฐเบžเบถเบ”เบ•เบดเบเปเบฒเบ‚เบญเบ‡เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบฎเป‰เบฒเบ™เป€เบญเบ‡, เบ›เบฐเป€เบกเบตเบ™เบšเบฑเบ™เบเบฒเบเบฒเบ”เปƒเบ™เบ—เบตเบกเบ‡เบฒเบ™, เบชเบฝเบ‡เบ”เบต!

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

  • เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง
  • เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เปเบ—เป‰โ€‹เบˆเบดเบ‡โ€‹
  • เบฅเบฒโ€‹เบ„เบฒโ€‹เบ•โ€‹เปˆโ€‹เปโ€‹เบฒ
  • เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ•เบปเบงโ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบ Raspberry Pi 3 c เป€เบ›เบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง Intel NCS 2.

เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบชเบฑเบ‡เป€เบเบ”เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ NCS - เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ CNN เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเปเบšเบšเบ—เบตเปˆเบกเบตเบŠเบฑเป‰เบ™เบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒ.

เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเบดเปˆเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”: เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เป„เบกเป‚เบ„เป‚เบŸเบ™. เป„เบกเป‚เบ„เบฃเป‚เบŸเบ™ USB เบ›เบปเบเบเบฐเบ•เบดเบˆเบฐเป€เบฎเบฑเบ”เป„เบ”เป‰, เปเบ•เปˆเบกเบฑเบ™เบˆเบฐเป€เบšเบดเปˆเบ‡เบšเปเปˆเบ”เบตเบฎเปˆเบงเบกเบเบฑเบš RPI. เปเบ•เปˆเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เปเบเป‰เป„เบ‚เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰ "เบขเบนเปˆเปƒเบเป‰เบ„เบฝเบ‡." เป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบชเบฝเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเปƒเบŠเป‰เบเบฐเบ”เบฒเบ™ Voice Bonnet เบˆเบฒเบเบŠเบธเบ” เบŠเบธเบ”เบชเบฝเบ‡ Google AIY, เป€เบŠเบดเปˆเบ‡เบกเบตเป„เบกเป‚เบ„เบฃเป‚เบŸเบ™เบชเบฐเป€เบ•เบตเบฃเบดเป‚เบญเปเบšเบšเบกเบตเบชเบฒเบ.

เบ”เบฒเบงเป‚เบซเบฅเบ” Raspbian เบˆเบฒเบ เป‚เบ„เบ‡เบเบฒเบ™ AIY repository เปเบฅเบฐเบญเบฑเบšเป‚เบซเบฅเบ”เบกเบฑเบ™เปƒเบชเปˆ flash drive, เบ—เบปเบ”เบชเบญเบšเบงเปˆเบฒเป„เบกเป‚เบ„เป‚เบŸเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰ (เบกเบฑเบ™เบˆเบฐเบšเบฑเบ™เบ—เบถเบเบชเบฝเบ‡เบเบฒเบง 5 เบงเบดเบ™เบฒเบ—เบตเปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบกเบฑเบ™เป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒ):

arecord -d 5 -r 16000 test.wav

เบ‚เป‰เบญเบเบ„เบงเบ™เบชเบฑเบ‡เป€เบเบ”เบ—เบฑเบ™เบ—เบตเบงเปˆเบฒเป„เบกเป‚เบ„เบฃเป‚เบŸเบ™เบกเบตเบ„เบงเบฒเบกเบญเปˆเบญเบ™เป„เบซเบงเบซเบผเบฒเบ เปเบฅเบฐเป€เบเบฑเบšเบชเบฝเบ‡เบฅเบปเบšเบเบงเบ™เป„เบ”เป‰เบ”เบต. เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ™เบตเป‰, เปƒเบซเป‰เป„เบ›เบ—เบตเปˆ alsamixer, เป€เบฅเบทเบญเบเบญเบธเบ›เบฐเบเบญเบ™ Capture เปเบฅเบฐเบซเบผเบธเบ”เบฅเบปเบ‡เบฅเบฐเบ”เบฑเบšเบชเบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ›เบฑเบ™ 50-60%.

OpenVINO Hackathon: เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบชเบฝเบ‡ เปเบฅเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™ โ€‹โ€‹Raspberry Pi
เบžเบงเบเป€เบฎเบปเบฒเบ”เบฑเบ”เปเบ›เบ‡เบฎเปˆเบฒเบ‡เบเบฒเบเบ”เป‰เบงเบเป„เบŸเบฅเปŒเปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบซเบกเบฒเบฐ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบดเบ”เบกเบฑเบ™เบ”เป‰เบงเบเบเบฒเบ›เบดเบ”

เป€เบžเบตเปˆเบกเบ›เบธเปˆเบกเบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”

เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบญเบปเบฒเบŠเบธเบ”เบชเบฝเบ‡ AIY เบญเบญเบเบˆเบฒเบเบเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบทเปˆเป„เบ”เป‰เบงเปˆเบฒเบกเบตเบ›เบธเปˆเบก 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

เปƒเบซเป‰เบชเป‰เบฒเบ‡ dict เบ—เบตเปˆเปเบ•เปˆเบฅเบฐเบญเบฒเบฅเบปเบกเบˆเบฐเบกเบตเบชเบตเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ RGB Tuple เปเบฅเบฐเบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡ class 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 Hackathon: เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบชเบฝเบ‡ เปเบฅเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™ โ€‹โ€‹Raspberry Pi
เบ›เบธเปˆเบก, เป„เบซเบกเป‰!

เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบชเบฝเบ‡

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰ pyaudio เป€เบžเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบเบฐเปเบชเบˆเบฒเบเป„เบกเป‚เบ„เบฃเป‚เบŸเบ™ เปเบฅเบฐ webrtcvad เป€เบžเบทเปˆเบญเบเบฑเปˆเบ™เบ•เบญเบ‡เบชเบฝเบ‡เบฅเบปเบšเบเบงเบ™ เปเบฅเบฐเบเบงเบ”เบซเบฒเบชเบฝเบ‡. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡เบ„เบดเบงเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบžเบตเปˆเบก เปเบฅเบฐเบฅเบถเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฝเบ‡เบญเบญเบเปเบšเบšเบšเปเปˆเบเบปเบ‡เบเบฑเบ™.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ webrtcvad เบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡ - เบกเบฑเบ™เบ•เป‰เบญเบ‡เป€เบ—เบปเปˆเบฒเบเบฑเบš 10/20/30ms, เปเบฅเบฐเบเบฒเบ™เบเบถเบเบญเบปเบšเบฎเบปเบกเบ‚เบญเบ‡เบ•เบปเบงเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบ (เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบฎเบฝเบ™เบฎเบนเป‰เบ•เปเปˆเบกเบฒ) เป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™ 48kHz, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐ เบšเบฑเบ™เบ—เบถเบเบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ‚เบฐเปœเบฒเบ” 48000ร—20ms/1000ร—1(เป‚เบกเป‚เบ™)=960 bytes. Webrtcvad เบˆเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™ True/False เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ chunks เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เป€เบŠเบดเปˆเบ‡เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบเบฒเบ™เบกเบตเบซเบผเบทเบšเปเปˆเบกเบตเบ„เบฐเปเบ™เบ™เบชเบฝเบ‡เปƒเบ™ chunk.

เปƒเบซเป‰เป€เบฎเบปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบซเบ”เบœเบปเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเบฐโ€‹เป€เบžเบตเปˆเบกโ€‹เปƒเบ™โ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบŠเบทเปˆ chunks เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ„เบฐโ€‹เปเบ™เบ™โ€‹เบชเบฝเบ‡; เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ„เบฐโ€‹เปเบ™เบ™โ€‹เบชเบฝเบ‡, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเบฐโ€‹เป€เบžเบตเปˆเบกโ€‹เบเบฒเบ™โ€‹เบ™เบฑเบšโ€‹เบ‚เบญเบ‡ chunks เป€เบ›เบปเปˆเบฒ.
  • เบ–เป‰เบฒเบ•เบปเบงเบ™เบฑเบšเบ‚เบญเบ‡ chunks เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเปเบกเปˆเบ™ >=30 (600 ms), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ chunks เบชเบฐเบชเบปเบก; เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบกเบฑเบ™เปเบกเปˆเบ™> 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 (Intermediate Representation). เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบ›เบฐเบกเบฒเบ™ 5-7 เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบˆเบฒเบ github, เปเบฅเบฐเบ–เป‰เบฒเบ•เบปเบงเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเป€เบฎเบฑเบ”เบงเบฝเบเบ—เบฑเบ™เบ—เบต, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบชเบฝเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒเบ”เบปเบ™เบเบงเปˆเบฒ - เบžเบงเบเป€เบ‚เบปเบฒเปƒเบŠเป‰เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบ.

เบžเบงเบเป€เบฎเบปเบฒเบชเบธเบกเปƒเบชเปˆเบชเบดเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบˆเบฒเบเบชเบฝเบ‡ - https://github.com/alexmuhr/Voice_Emotion
    เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบกเบซเบผเบฑเบเบเบฒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰: เบชเบฝเบ‡เบ–เบทเบเบ•เบฑเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ passages เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐ passages เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบ MFCC เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบปเปˆเบ‡เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบเบฑเบš CNN
  • เบเบฒเบ™โ€‹เบฎเบฑเบšโ€‹เบฎเบนเป‰โ€‹เบชเบฝเบ‡ - https://github.com/linhdvu14/vggvox-speaker-identification
    เบ—เบตเปˆเบ™เบตเป‰, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ MFCC, เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš spectrogram, เบซเบผเบฑเบ‡เบˆเบฒเบ FFT เบžเบงเบเป€เบฎเบปเบฒเบญเบฒเบซเบฒเบ™เบชเบฑเบ™เบเบฒเบ™เบเบฑเบš CNN, เบšเปˆเบญเบ™เบ—เบตเปˆเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™ vector เบ‚เบญเบ‡เบชเบฝเบ‡.

เบ•เปเปˆเป„เบ›เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบ›เบ‡เบ•เบปเบงเปเบšเบš, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ—เบดเบ”เบชเบฐเบ”เบต. OpenVINO เบ›เบฐเบเบญเบšเบกเบตเบซเบผเบฒเบเป‚เบกเบ”เบนเบ™:

  • Open Model Zoo, เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เปเบฅเบฐเบฅเบงเบกเบขเบนเปˆเปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™
  • Model Optimzer, เบ‚เบญเบšเปƒเบˆเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เบ•เบปเบงเปเบšเบšเบˆเบฒเบเบฎเบนเบšเปเบšเบšเบเบญเบšเบ•เปˆเบฒเบ‡เป† (Tensorflow, ONNX เปเบฅเบฐเบญเบทเปˆเบ™เป†) เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡, เป€เบŠเบดเปˆเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบ•เบทเปˆเบกเบญเบตเบ.
  • Inference Engine เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™เปƒเบŠเป‰เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เปƒเบ™เบฎเบนเบšเปเบšเบš IR เปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Intel, เบŠเบดเบš Myriad เปเบฅเบฐ Neural Compute Stick accelerators
  • เบฅเบธเป‰เบ™ 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 s), เบžเบงเบเป€เบฎเบปเบฒเบ›เปˆเบฝเบ™เปเบ•เปˆเบฅเบฐเบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ MFCC, เป€เบŠเบดเปˆเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเบปเปˆเบ‡เบเบฑเบšเบ•เบฒเบ‚เปˆเบฒเบเป„เบŸเบŸเป‰เบฒ:

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

    เบ•เปเปˆเป„เบ›, เปƒเบซเป‰เป€เบญเบปเบฒเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ—เบฑเบ‡เบซเบกเบปเบ”. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‡เปˆเบฒเบเป†, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš hackathon เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเป€เบเบตเบ™เป„เบ›, เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเป€เบงเบฅเบฒ. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบกเบตเบงเบฝเบเบซเบผเบฒเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”, เบชเบฐเบ™เบฑเป‰เบ™เปƒเบซเป‰เบเป‰เบฒเบงเบ•เปเปˆเป„เบ› - เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบชเบฝเบ‡. เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆ spectrograms เบ‚เบญเบ‡เบชเบฝเบ‡เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบเปˆเบญเบ™เบˆเบฐเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบกเบตเป€เบงเบฅเบฒเป€เบซเบผเบทเบญเปœเป‰เบญเบ, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เปƒเบซเป‰เบ”เบตเบ—เบตเปˆเบชเบธเบ”.

    เบ„เบท, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ script เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบชเบฝเบ‡ excerpt (เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰, เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ interrupted เบˆเบฒเบเปเบ›เป‰เบ™เบžเบดเบกเบกเบฑเบ™เบˆเบฐเบšเบฑเบ™เบ—เบถเบเบชเบฝเบ‡เป€เบ›เบฑเบ™เป„เบŸเบฅเปŒ).

    เบกเบฒเบฅเบญเบ‡เป€เบšเบดเปˆเบ‡:

    python3 voice_db/record_voice.py test.wav

    เบžเบงเบเป€เบฎเบปเบฒเบšเบฑเบ™เบ—เบถเบเบชเบฝเบ‡เบ‚เบญเบ‡เบซเบผเบฒเบเป†เบ„เบปเบ™ (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบชเบฐเบกเบฒเบŠเบดเบเบชเบฒเบกเบ„เบปเบ™)
    เบ•เปเปˆเป„เบ›, เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบชเบฝเบ‡เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰, เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบชเบตเปˆเบขเปˆเบฒเบ‡เป„เบง, เป„เบ”เป‰เบฎเบฑเบš spectrogram เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบกเบฑเบ™เป€เบ›เบฑเบ™ array numpy (.npy):

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

    เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ create_base.py
    เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ script เบ•เบปเป‰เบ™เบ•เป, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบฑเบ‡เบˆเบฒเบ spectrograms เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™:

    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)

    เบซเบผเบฑเบ‡เบˆเบฒเบเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบฑเบ‡เบˆเบฒเบเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบกเบตเบชเบฝเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบ‚เบญเบ‡เปƒเบœเป‚เบ”เบเบเบฒเบ™เป€เบญเบปเบฒเป„เบฅเบเบฐเบซเปˆเบฒเบ‡เบ‚เบญเบ‡ cosine เบˆเบฒเบ passage เป„เบ›เบซเบฒเบชเบฝเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ (เบ™เป‰เบญเบเบเบงเปˆเบฒ, เบกเบตเป‚เบญเบเบฒเบ”เบซเบผเบฒเบ) - เบชเปเบฒเบฅเบฑเบš demo เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”. เป€เบ–เบดเบ‡ 0.3):

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

    เปƒเบ™เบ—เบตเปˆเบชเบธเบ”, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ„เบงเบฒเบกเป„เบง inference เปเบกเปˆเบ™เป„เบงเปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบก 1-2 เปเบšเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบก (เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡ 7 เบงเบดเบ™เบฒเบ—เบตเบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒ 2.5 เบชเปเบฒเบฅเบฑเบš inference). เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบกเบตเป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบฎเบนเบšเปเบšเบšเปƒเบซเบกเปˆเปเบฅเบฐเบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เบ‚เบฝเบ™เบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ.

    เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ

    เบˆเบธเบ”เบชเปเบฒเบ„เบฑเบ™: เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒ router เบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบˆเบฒเบเป€เบฎเบทเบญเบ™เปเบฅเบฐเบ•เบฑเป‰เบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบกเบฑเบ™เบŠเปˆเบงเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบญเบธเบ›เบฐเบเบญเบ™เปเบฅเบฐเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบœเปˆเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ.

    backend เปเบกเปˆเบ™เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ—เบฒเบ‡เบซเบ™เป‰เบฒเปเบฅเบฐ Raspberry Pi, เบญเบตเบ‡เปƒเบชเปˆเป€เบ—เบเป‚เบ™เป‚เบฅเบเบต websocket (http over tcp protocol).

    เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบˆเบฒเบ raspberry, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบœเบนเป‰เบ„เบฒเบ”เบ„เบฐเป€เบ™เบšเบฑเบ™เบˆเบธเบขเบนเปˆเปƒเบ™ json, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฐเบ–เบดเบ•เบดเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบเปˆเบฝเบงเบเบฑเบšเบžเบทเป‰เบ™เบ–เบฒเบ™เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒ. packet เบ™เบตเป‰เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒ frontend, เป€เบŠเบดเปˆเบ‡เปƒเบŠเป‰เบเบฒเบ™เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบฎเบฑเบšเปเบžเบฑเบเป€เบเบฑเบ”เบˆเบฒเบเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡ websocket. เบเบปเบ™เป„เบ backend เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบžเบฒเบชเบฒ golang; เบกเบฑเบ™เบ–เบทเบเป€เบฅเบทเบญเบเป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™, เป€เบŠเบดเปˆเบ‡ goroutines เบˆเบฑเบ”เบเบฒเบ™เป„เบ”เป‰เบ”เบต.
    เป€เบกเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”, เบœเบนเป‰เปƒเบŠเป‰เป„เบ”เป‰เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เบญเบ‡เบฅเบฒเบงเป„เบ”เป‰เบฎเบฑเบš. เบ—เบฑเบ‡เบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเบ‚เปเป‰เบ„เบงเบฒเบกเบ–เบทเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเบนเบ™เบเบฒเบ‡เบ—เบปเปˆเบงเป„เบ›, เบˆเบฒเบเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เปเบฅเป‰เบง (เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ–เบทเบเบˆเบญเบ‡), เปเบฅเบฐเบ–เป‰เบฒเบœเบนเป‰เปƒเบŠเป‰เบ›เบดเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ (raspberry เบซเบผเบทเบซเบ™เป‰เบฒ), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบชเบฐเปเบฑเบเปƒเบŠเป‰เบ‚เบญเบ‡เบฅเบฒเบงเบ–เบทเบเบเบปเบเป€เบฅเบตเบ เปเบฅเบฐเบฅเบฒเบงเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเบˆเบฒเบ เบชเบนเบ™เบเบฒเบ‡.

    OpenVINO Hackathon: เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบชเบฝเบ‡ เปเบฅเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™ โ€‹โ€‹Raspberry Pi
    เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบฅเปเบ–เป‰เบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฒเบเบ”เป‰เบฒเบ™เบซเบฅเบฑเบ‡

    Front-end เปเบกเปˆเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบงเบฑเบšเบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ JavaScript เป‚เบ”เบเปƒเบŠเป‰ React Library เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเป„เบง เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™. เบˆเบธเบ”โ€‹เบ›เบฐโ€‹เบชเบปเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เป‚เบ”เบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เปเบฅเปˆเบ™โ€‹เบขเบนเปˆโ€‹เบ”เป‰เบฒเบ™โ€‹เบซเบผเบฑเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เปเบฅเบฐโ€‹เป‚เบ”เบโ€‹เบเบปเบ‡โ€‹เบเปˆเบฝเบงโ€‹เบเบฑเบš Raspberry Piโ€‹. เบซเบ™เป‰เบฒเบกเบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰ react-router, เปเบ•เปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเปเบกเปˆเบ™เบซเบ™เป‰เบฒเบซเบฅเบฑเบ, เบšเปˆเบญเบ™เบ—เบตเปˆเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบ‚เปเป‰เบกเบนเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป‚เบ”เบเปƒเบŠเป‰เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต WebSocket. Raspberry Pi เบเบงเบ”เบžเบปเบšเบชเบฝเบ‡, เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบ‚เบญเบ‡เบšเบธเบเบ„เบปเบ™เบชเบฐเป€เบžเบฒเบฐเบˆเบฒเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เปเบฅเบฐเบชเบปเปˆเบ‡เบฅเบฒเบเบŠเบทเปˆเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปƒเบซเป‰เบเบฑเบšเบฅเบนเบเบ„เป‰เบฒ. เบฅเบนเบเบ„เป‰เบฒเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบซเบผเป‰เบฒเบชเบธเบ”, เบชเบฐเปเบ”เบ‡เบฎเบนเบšเปเบ—เบ™เบ•เบปเบงเบ‚เบญเบ‡เบšเบธเบเบ„เบปเบ™เบ—เบตเปˆเบกเบฑเบเบˆเบฐเป€เบงเบปเป‰เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป„เบกเป‚เบ„เบฃเป‚เบŸเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบ—เบตเปˆเบฅเบฒเบงเบญเบญเบเบชเบฝเบ‡เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†.

    OpenVINO Hackathon: เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบชเบฝเบ‡ เปเบฅเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™ โ€‹โ€‹Raspberry Pi
    เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡

    เบชเบฐเบซเบฅเบธเบš

    เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเปเบฒเป€เบฅเบฑเบ”เบ—เบธเบเบขเปˆเบฒเบ‡เบ•เบฒเบกเปเบœเบ™เบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบšเปเปˆเบกเบตเป€เบงเบฅเบฒ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เบงเบฒเบกเบซเบงเบฑเบ‡เบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ. เปƒเบ™เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เบฎเบนเบšเปเบšเบšเปƒเบ”เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰, เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบžเบปเบšเบšเบฑเบ™เบซเบฒ. เบ•เปเปˆเป„เบ›เปเบกเปˆเบ™เบžเบฒเบเบชเปˆเบงเบ™เบชเบฒเบ—เบดเบ” - เบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบเปˆเบฒเบ‡เป„เบ›เบ—เบปเปˆเบงเบซเป‰เบญเบ‡เปƒเบ™เบฅเปเบฒเบ”เบฑเบšเปเบšเบšเบชเบธเปˆเบกเปเบฅเบฐเป€เบ‚เบปเป‰เบฒเบซเบฒเปเบ•เปˆเบฅเบฐเบ—เบตเบกเป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบ•เบปเป‰เบ™เปเบšเบšเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบฒเบกเบžเบงเบเป€เบฎเบปเบฒเบ„เปเบฒเบ–เบฒเบกเป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เบ—เบธเบเบ„เบปเบ™เบ•เบญเบšเบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบญเบญเบเบˆเบฒเบเป€เบงเบฑเบšเปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‚เบ™เบ”เบšเบธเบ, เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบกเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰.

    เปƒเบซเป‰เบ‚เป‰เบญเบเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™ $150:

    • Raspberry Pi 3 ~ $35
    • Google AIY Voice Bonnet (เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเบ„เปˆเบฒเบ—เปเบฒเบ™เบฝเบกเบœเบนเป‰เป€เบงเบปเป‰เบฒเป„เบ”เป‰) ~ 15$
    • Intel NCS 2 ~ 100$

    เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡:

    • เปƒเบŠเป‰เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบˆเบฒเบเบฅเบนเบเบ„เป‰เบฒ - เบ‚เปเปƒเบซเป‰เบญเปˆเบฒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปเบšเบšเบชเบธเปˆเบก
    • เป€เบžเบตเปˆเบกเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบญเบตเบเบชเบญเบ‡เบชเบฒเบกเปเบšเบš: เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เป€เบžเบ”เปเบฅเบฐเบญเบฒเบเบธเป‚เบ”เบเบชเบฝเบ‡
    • เปเบเบเบชเบฝเบ‡เบ”เบฑเบ‡เบžเป‰เบญเบกเป†เบเบฑเบ™ ( diarization )

    เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™: https://github.com/vladimirwest/OpenEMO

    OpenVINO Hackathon: เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰เบชเบฝเบ‡ เปเบฅเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเปƒเบ™ โ€‹โ€‹Raspberry Pi
    เป€เบกเบทเปˆเบญเบเปเบ•เปˆเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเบชเบธเบ

    เบชเบฐเบซเบฅเบธเบšเปเบฅเป‰เบง, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ‚เปเบเปˆเบฒเบงเบ‚เบญเบšเปƒเบˆเบกเบฒเบเบฑเบ‡เบœเบนเป‰เบˆเบฑเบ”เบ‡เบฒเบ™ เปเบฅเบฐ เบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบก. เปƒเบ™โ€‹เบšเบฑเบ™โ€‹เบ”เบฒโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เบตเบกโ€‹เบ‡เบฒเบ™โ€‹เบญเบทเปˆเบ™เป†โ€‹, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบชเปˆเบงเบ™โ€‹เบšเบธเบโ€‹เบ„เบปเบ™โ€‹เบกเบฑเบโ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบชเบฐโ€‹เบ–เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบšเปˆเบญเบ™โ€‹เบˆเบญเบ”โ€‹เบฅเบปเบ”โ€‹เบŸเบฃเบตโ€‹. เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ, เบกเบฑเบ™เป€เบ›เบฑเบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เบตเปˆเป€เบขเบฑเบ™เบชเบฐเบšเบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบซเบงเบฑเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบเบดเบ”เบˆเบฐเบเปเบฒเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบเบ‚เบทเป‰เบ™เบขเบนเปˆเปƒเบ™เบžเบฒเบเบžเบทเป‰เบ™, เบฅเบงเบกเบ—เบฑเบ‡เปƒเบ™เบซเบปเบงเบ‚เปเป‰ AI.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™