OpenVINO hackathonαŸ– αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžŸαŸ†αž‘αŸαž„ αž“αž·αž„αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αŸ…αž›αžΎ Raspberry Pi

αžαŸ’αž„αŸƒαž‘αžΈ 30 αžαŸ‚αžœαž·αž…αŸ’αž†αž·αž€αžΆαžŠαž›αŸ‹αžαŸ’αž„αŸƒαž‘αžΈ 1 αžαŸ‚αž’αŸ’αž“αžΌαž“αŸ… Nizhny Novgorod αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΆαžšαž–αŸ’αž’αž‘αžΎαž„ OpenVINO hackathon. αž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž±αŸ’αž™αž”αž„αŸ’αž€αžΎαžαž‚αŸ†αžšαžΌαžŠαžΎαž˜αž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž•αž›αž·αžαž•αž›αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαž’αž”αŸ‹αž§αž”αž€αžšαžŽαŸ Intel OpenVINO αŸ” αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž”αžΆαž“αžŸαŸ’αž“αžΎαž”αž‰αŸ’αž‡αžΈαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž”αŸ’αžšαž αžΆαž€αŸ‹αž”αŸ’αžšαž αŸ‚αž›αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž“αŸ…αž–αŸαž›αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž€αž·αž…αŸ’αž…αž€αžΆαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸ…αžαŸ‚αž˜αžΆαž“αž‡αžΆαž˜αž½αž™αž€αŸ’αžšαž»αž˜αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‚αŸ†αžšαžΌαžŠαŸ‚αž›αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž•αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αžΎαž€αž‘αžΉαž€αž…αž·αžαŸ’αžαŸ”

OpenVINO hackathonαŸ– αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžŸαŸ†αž‘αŸαž„ αž“αž·αž„αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αŸ…αž›αžΎ Raspberry Pi

αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‚αŸ†αžšαžΌαž•αž›αž·αžαž•αž›αžšαž”αžŸαŸ‹αž™αžΎαž„ αžŠαŸ‚αž›αž“αŸ…αž‘αžΈαž”αŸ†αž•αž»αžαž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ†αž”αžΌαž„αŸ”

αž€αŸ’αžšαž»αž˜αž‡αžΆαž„ 10 αž”αžΆαž“αž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ hackathon αŸ” αžœαžΆαž‡αžΆαžšαžΏαž„αž›αŸ’αž’αžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αž–αž½αž€αž‚αžΆαžαŸ‹αžαŸ’αž›αŸ‡αž˜αž€αž–αžΈαžαŸ†αž”αž“αŸ‹αž•αŸ’αžŸαŸαž„αŸ—αŸ” αž€αž“αŸ’αž›αŸ‚αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ hackathon αž‚αžΊαž’αž‚αžΆαžš "Kremlinsky on Pochain" αžŠαŸ‚αž›αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžšαžΌαž”αžαžαž”αž»αžšαžΆαžŽαžšαž”αžŸαŸ‹ Nizhny Novgorod αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αŸ’αž™αž½αžšαž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„ αžŠαŸ„αž™αž˜αžΆαž“αž€αžΆαžšαž…αžΌαž›αžšαž½αž˜αž–αžΈαž’αŸ’αž“αž€αž‘αžŸαŸ’αžŸαž“αžΆ! (αžαŸ’αž‰αž»αŸ†αžšαŸ†αž›αžΉαž€αž’αŸ’αž“αž€αžαžΆαž“αŸ…αž–αŸαž›αž“αŸαŸ‡αž€αžΆαžšαž·αž™αžΆαž›αŸαž™αž€αžŽαŸ’αžαžΆαž›αžšαž”αžŸαŸ‹ Intel αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ… Nizhny Novgorod) αŸ” αž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž–αŸαž› 26 αž˜αŸ‰αŸ„αž„αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžšαžŸαŸαžšαž€αžΌαžŠ αž αžΎαž™αž“αŸ…αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαžαŸ‚αž”αž„αŸ’αž αžΆαž‰αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αž‚αžΊαžœαžαŸ’αžαž˜αžΆαž“αž“αŸƒαžœαž‚αŸ’αž‚αžŸαžΆαž€αž›αŸ’αž”αž„ αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž”αžΆαž“αž‚αŸ’αžšαŸ„αž„αž‘αž»αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž™αŸ‰αžΆαž„αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ αž“αž·αž„αž˜αž·αž“αž“αŸ…αžαŸ‚αž˜αžΆαž“αž‚αŸ†αž“αž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‘αž”αž„αŸ’αž αžΆαž‰αŸ” αž‘αŸ†αž“αž·αž‰ αž’αžΆαž αžΆαžšαžŸαž˜αŸ’αžšαž“αŸ‹ ធអហអរ αž’αŸ’αžœαžΈαŸ—αž€αŸαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αžŠαŸ‚αžš!

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž Intel αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αž˜αŸ’αžšαžΎαžŸαž€αžΆαž˜αŸαžšαŸ‰αžΆ Raspberry PI, Neural Compute Stick 2 αŸ”

αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž—αžΆαžšαž€αž·αž…αŸ’αž…

αž•αŸ’αž“αŸ‚αž€αžŠαŸαž›αŸ†αž”αžΆαž€αž”αŸ†αž•αž»αžαž˜αž½αž™αž“αŸƒαž€αžΆαžšαžšαŸ€αž”αž…αŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ hackathon αž‘αž˜αŸ’αžšαž„αŸ‹αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž‚αžΊαž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž”αž‰αŸ’αž αžΆαž”αŸ’αžšαžˆαž˜αž˜αž½αž™αŸ” αž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ„αŸ‡ αž–αž½αž€αž™αžΎαž„αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž˜αž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αž·αž“αž‘αžΆαž“αŸ‹αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž•αž› αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαž”αžΆαž“αž“αž·αž™αžΆαž™αžαžΆ αž“αŸαŸ‡αž‡αžΆαž€αžΆαžšαžŸαŸ’αžœαžΆαž‚αž˜αž“αŸαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αŸ”

αžŠαŸ„αž™αž”αžΆαž“αžœαž·αž—αžΆαž‚ αž‚αŸ†αžšαžΌαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž•αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ αž™αžΎαž„αžˆαžΆαž“αžŠαž›αŸ‹αž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αžαžΆαž–αž½αž€αž‚αŸαž—αžΆαž‚αž…αŸ’αžšαžΎαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž…αž€αŸ’αžαž»αžœαž·αžŸαŸαž™αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž•αŸ’αžŸαŸαž„αŸ—αŸ” αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αžœαžΆαž–αž·αžαž‡αžΆαž›αŸ†αž”αžΆαž€αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž€αŸ’αž“αž»αž„αžœαž·αžŸαŸαž™αž…αž€αŸ’αžαž»αžœαž·αžŸαŸαž™αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎ OpenVINO αž αžΎαž™αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž‚αŸαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž”αžΆαž“αž€αŸαžŠαŸ„αž™ αž€αŸαžœαžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž‚αŸ†αžšαžΌαžŠαŸ‚αž›αž”αžΆαž“αž”αžŽαŸ’αžαž»αŸ‡αž”αžŽαŸ’αžαžΆαž›αž‡αžΆαž˜αž»αž“αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ‚αž“αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαŸ‚αžšαŸ” αž™αžΎαž„αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž‡αžΈαž€αž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ…αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž - αž†αŸ’αž–αŸ„αŸ‡αž‘αŸ…αžšαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αž·αž™αžΆαž™ αž“αž·αž„αž€αžΆαžšαžœαž·αž—αžΆαž‚αŸ” αž…αžΌαžšαž™αžΎαž„αž–αž·αž…αžΆαžšαžŽαžΆαž’αŸ†αž–αžΈαž€αž·αž…αŸ’αž…αž€αžΆαžšαžŠαŸαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž˜αž½αž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž–αžΈαž€αžΆαžšαž“αž·αž™αžΆαž™αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαžαŸ‚αž“αž·αž™αžΆαž™αžαžΆ OpenVINO αž˜αžΆαž“αž‚αŸ†αžšαžΌαžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžšαž”αžŸαŸ‹αž˜αž“αž»αžŸαŸ’αžŸαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž˜αž»αžαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžšαž½αž…αž αžΎαž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αŸ–

  • αžαžΆαž˜αž‘αŸ’αžšαžΉαžŸαŸ’αžŠαžΈ αž‚αŸαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΆαŸ†αž„αžŸαŸ†αž‘αŸαž„ αž“αž·αž„αžšαžΌαž”αž—αžΆαž– αžŠαŸ‚αž›αž‚αž½αžšαžαŸ‚αž”αž„αŸ’αž€αžΎαž“αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ”
  • αž€αžΆαž˜αŸαžšαŸ‰αžΆαž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž˜αžΆαž“αž˜αž»αŸ†αž˜αžΎαž›αžαžΌαž…αž…αž„αŸ’αž’αŸ€αž αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαž˜αŸαžšαŸ‰αžΆαž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αž›αžΎαž•αŸ’αž‘αŸƒαž’αŸ† αžŸαŸ†αž‘αŸαž„αž˜αž·αž“αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž”αŸ‚αž”αž“αŸαŸ‡αž‘αŸαŸ”

αž…αžΌαžšαž’αž—αž·αžœαžŒαŸ’αžαž‚αŸ†αž“αž·αžαŸ– αž…αžΌαžšαž™αžΎαž„αž™αž€αž‚αŸ†αž“αž·αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž“αŸ‚αž€αž›αž€αŸ‹αžšαžΆαž™αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžœαžΆαžŸαŸ‹αžŸαŸ’αž‘αž„αŸ‹αž€αžΆαžšαž–αŸαž‰αž…αž·αžαŸ’αžαžšαž”αžŸαŸ‹αž’αžαž·αžαž·αž‡αž“αž“αŸ…αž αžΆαž„αž†αŸαž„αž…αŸαž‰αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αžαž·αžαž·αž‡αž“αžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž˜αž·αž“αž–αŸαž‰αž…αž·αžαŸ’αžαž“αžΉαž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αŸαŸ‡ αž αžΎαž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αž‰αŸ’αž…αŸαž‰αžŸαž˜αŸ’αž›αŸαž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž’αŸ’αž“αž€αž’αžΆαž…αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž‘αŸ…αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž—αŸ’αž›αžΆαž˜αŸ—αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž»αŸ†αž‡αŸ†αž“αž½αž™αŸ”
αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžŸαŸ†αž‘αŸαž„αžšαž”αžŸαŸ‹αž˜αž“αž»αžŸαŸ’αžŸ αžœαžΆαž“αžΉαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αž”αŸ‚αž„αž…αŸ‚αž€αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž αžΆαž„αž–αžΈαž’αžαž·αžαž·αž‡αž“ αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž»αž‚αŸ’αž‚αž›αž“αžΈαž˜αž½αž™αŸ—αŸ” αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹, αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž, αžœαžΆαž“αžΉαž„αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαžœαž·αž—αžΆαž‚αž’αžΆαž€αž”αŸ’αž”αž€αž·αžšαž·αž™αžΆαžšαž”αžŸαŸ‹αž”αž»αž‚αŸ’αž‚αž›αž·αž€αž αžΆαž„αžαŸ’αž›αž½αž“αž―αž„, αžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž”αžšαž·αž™αžΆαž€αžΆαžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜, αžŸαŸ’αžαžΆαž”αŸ‹αž‘αŸ…αž›αŸ’αž’!

αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ–

  • αž‘αŸ†αž αŸ†αžαžΌαž…αž“αŸƒαž§αž”αž€αžšαžŽαŸαž‚αŸ„αž›αžŠαŸ…
  • αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž–αŸαž›αžœαŸαž›αžΆαž–αž·αž
  • αžαž˜αŸ’αž›αŸƒαž‘αžΆαž”αŸ”
  • αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž„αžΆαž™αžŸαŸ’αžšαž½αž›

αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αž™αžΎαž„αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ Raspberry Pi 3 c αž‡αžΆαž§αž”αž€αžšαžŽαŸαž‚αŸ„αž›αžŠαŸ… Intel NCS 2.

αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžœαžΆαž‡αžΆαžšαžΏαž„αžŸαŸ†αžαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™αž“αŸƒ NCS - αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αŸ’αž’αž”αŸ†αž•αž»αžαž‡αžΆαž˜αž½αž™αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ CNN αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‚αŸ†αžšαžΌαž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αž“αŸ…αž›αžΎαžœαžΆ αž“αŸ„αŸ‡αžšαŸ†αž–αžΉαž„αžαžΆαž“αžΉαž„αž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αŸ”

αž˜αžΆαž“αžšαžΏαž„αžαžΌαž…αž˜αž½αž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαŸ– αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž™αž€αž˜αžΈαž€αŸ’αžšαžΌαž αŸ’αžœαžΌαž“αŸ” αž˜αžΈαž€αŸ’αžšαžΌαž αŸ’αžœαžΌαž“ USB αž’αž˜αŸ’αž˜αžαžΆαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αžΎαž›αž‘αŸ…αž˜αž·αž“αž›αŸ’αž’αž‡αžΆαž˜αž½αž™ RPI αž‘αŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαžΆαž˜αž–αŸ’αž™αž‰αŸ’αž‡αž“αŸˆ "αž“αŸ…αž‡αž·αž" αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžαžαžŸαŸ†αž‘αŸαž„ αž™αžΎαž„αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αŸ’αžšαžΎαž”αž“αŸ’αž‘αŸ‡ Voice Bonnet αž–αžΈαž§αž”αž€αžšαžŽαŸ αž€αž‰αŸ’αž…αž”αŸ‹αžŸαŸ†αž‘αŸαž„ Google AIYαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΈαž€αŸ’αžšαžΌαž αŸ’αžœαžΌαž“αžŸαŸ’αžαŸαžšαŸ‰αŸαž’αžΌαž˜αžΆαž“αžαŸ’αžŸαŸ‚αŸ”

αž‘αžΆαž‰αž™αž€ Raspbian αž–αžΈ αžƒαŸ’αž›αžΆαŸ†αž„αž‚αž˜αŸ’αžšαŸ„αž„ AIY αž αžΎαž™αž”αž‰αŸ’αž…αžΌαž›αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„ flash drive αžŸαžΆαž€αž›αŸ’αž”αž„αžαžΆαž˜αžΈαž€αŸ’αžšαžΌαž αŸ’αžœαžΌαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜ (αžœαžΆαž“αžΉαž„αžαžαžŸαŸ†αž‘αŸαž„αžšαž™αŸˆαž–αŸαž› 5 αžœαž·αž“αžΆαž‘αžΈ αž αžΎαž™αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš)αŸ–

arecord -d 5 -r 16000 test.wav

αžαŸ’αž‰αž»αŸ†αž‚αž½αžšαž€αžαŸ‹αžŸαŸ†αž‚αžΆαž›αŸ‹αž—αŸ’αž›αžΆαž˜αŸ—αžαžΆ αž˜αžΈαž€αŸ’αžšαžΌαž αŸ’αžœαžΌαž“αž˜αžΆαž“αž—αžΆαž–αžšαžŸαžΎαž”αžαŸ’αž›αžΆαŸ†αž„ αž αžΎαž™αž…αžΆαž”αŸ‹αž™αž€αžŸαŸ†αž›αŸαž„αžšαŸ†αžαžΆαž“αž”αžΆαž“αž™αŸ‰αžΆαž„αž›αŸ’αž’αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž‡αž½αžŸαž‡αž»αž›αžœαžΆ αžŸαžΌαž˜αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹ alsamixer αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž§αž”αž€αžšαžŽαŸαž…αžΆαž”αŸ‹αž™αž€ αž“αž·αž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αž˜αŸ’αžšαž·αžαžŸαž‰αŸ’αž‰αžΆαž”αž‰αŸ’αž…αžΌαž›αž˜αž€αžαŸ’αžšαžΉαž˜ 50-60%αŸ”

OpenVINO hackathonαŸ– αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžŸαŸ†αž‘αŸαž„ αž“αž·αž„αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αŸ…αž›αžΎ Raspberry Pi
αž™αžΎαž„αž€αŸ‚αž”αŸ’αžšαŸ‚αžαž½αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž―αž€αžŸαžΆαžš αž αžΎαž™αž’αŸ’αžœαžΈαŸ—αž€αŸαžŸαž˜αžŠαŸ‚αžš αž’αŸ’αž“αž€αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž’αžΆαž…αž”αž·αž‘αžœαžΆαžŠαŸ„αž™αž‚αž˜αŸ’αžšαž”αž‘αŸ€αžαž•αž„αŸ”

αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž”αŸŠαžΌαžαž»αž„αžŸαžΌαž…αž“αžΆαž€αžš

αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž™αž€ AIY Voice Kit αžŠαžΆαž…αŸ‹αž–αžΈαž‚αŸ’αž“αžΆ αž™αžΎαž„αž…αžΆαŸ†αžαžΆαž˜αžΆαž“αž”αŸŠαžΌαžαž»αž„ RGB αžŠαŸ‚αž›αž‡αžΆαž’αŸ†αž–αžΌαž› Backlight αžŠαŸ‚αž›αž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” αž™αžΎαž„αžŸαŸ’αžœαŸ‚αž„αžšαž€ β€œ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 hackathonαŸ– αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžŸαŸ†αž‘αŸαž„ αž“αž·αž„αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αŸ…αž›αžΎ 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 (Intermediate Representation)αŸ” αž™αžΎαž„αž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αž”αŸ’αžšαž αŸ‚αž› 5-7 αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž–αžΈ github αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αŸ†αžšαžΌαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ„αŸ‡ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžŸαŸ†αž‘αŸαž„ αž™αžΎαž„αžαŸ’αžšαžΌαžœαžšαž„αŸ‹αž…αžΆαŸ†αž™αžΌαžšαž‡αžΆαž„αž“αŸαŸ‡ - αž–αž½αž€αž‚αŸαž”αŸ’αžšαžΎαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž‡αžΆαž„αŸ”

αž™αžΎαž„αž•αŸ’αžαŸ„αžαž›αžΎαž…αŸ†αžŽαž»αž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

  • αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž–αžΈαžŸαŸ†αž‘αŸαž„ - https://github.com/alexmuhr/Voice_Emotion
    αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαž˜αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ– αž’αžΌαžŒαžΈαž™αŸ‰αžΌαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžαŸ‹αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž“αŸƒαž‘αŸ†αž αŸ†αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαž‚αŸ’αž‚αž“αžΈαž˜αž½αž™αŸ—αžŠαŸ‚αž›αž™αžΎαž„αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ MFCC αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αž‰αŸ’αž‡αžΌαž“αž–αž½αž€αž‚αŸαž‡αžΆαž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž‘αŸ… CNN
  • αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžŸαŸ†αž‘αŸαž„ - https://github.com/linhdvu14/vggvox-speaker-identification
    αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ MFCC αž™αžΎαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ spectrogram αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈ FFT αž™αžΎαž„αž”αž‰αŸ’αž‡αžΌαž“αžŸαž‰αŸ’αž‰αžΆαž‘αŸ… CNN αžŠαŸ‚αž›αž“αŸ…αž‘αž·αž“αŸ’αž“αž•αž›αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αžαŸ†αžŽαžΆαž„αžœαŸ‰αž·αž…αž‘αŸαžšαž“αŸƒαžŸαŸ†αž‘αŸαž„αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž€αžΆαžšαž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‚αŸ†αžšαžΌαžŠαŸ„αž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž–αžΈαž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαŸ” OpenVINO αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž˜αŸ‰αžΌαžŒαž»αž›αž‡αžΆαž…αŸ’αžšαžΎαž“:

  • Open Model Zoo αž˜αŸ‰αžΌαžŠαŸ‚αž›αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžΎ αž“αž·αž„αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž•αž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”
  • Model Optimzer αž’αžšαž‚αž»αžŽαžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‚αŸ†αžšαžΌαž–αžΈαž‘αž˜αŸ’αžšαž„αŸ‹αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž•αŸ’αžŸαŸαž„αŸ— (Tensorflow, ONNX αž‡αžΆαžŠαžΎαž˜) αž‘αŸ…αž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹αžαŸ†αžŽαžΆαž„αž€αž˜αŸ’αžšαž·αžαž˜αž’αŸ’αž™αž˜ αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαŸ”
  • Inference Engine αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αŸ‰αžΌαžŠαŸ‚αž›αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹ IR αž“αŸ…αž›αžΎ Intel processors, Myriad chips αž“αž·αž„ 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 αž“αŸαŸ‡αž“αžΉαž„αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαŸ†αž”αž„αŸ”

    αž”αž“αŸ’αž‘αžΆαž”αŸ‹ αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž˜αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ– αž™αžΎαž„αž”αŸ‚αž„αž…αŸ‚αž€αž’αžΌαžŒαžΈαž™αŸ‰αžΌαžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αŸ…αž‡αžΆ windows αžŠαŸ‚αž›αž˜αžΆαž“αž‘αŸ†αž αŸ†αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αžœαžΆαž‚αžΊ 0.4 s) αž™αžΎαž„αž”αŸ†αž”αŸ’αž›αŸ‚αž„ windows αž“αžΈαž˜αž½αž™αŸ—αž‘αŸ…αž‡αžΆ MFCC αžŠαŸ‚αž›αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž™αžΎαž„αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž‘αžΆαž…αžαŸ’αžšαž„αŸ’αž‚αŸ–

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

    αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž˜αž€ αž™αžΎαž„β€‹αž™αž€β€‹αžαŸ’αž“αžΆαž€αŸ‹β€‹αž’αž˜αŸ’αž˜αžαžΆβ€‹αž”αŸ†αž•αž»αžβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž‚αŸ’αžšαž”αŸ‹β€‹αž”αž„αŸ’αž’αž½αž…αŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžš hackathon αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αž„αŸ’αž€αžΎαžαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž˜αž·αž“αžŸαž˜αž αŸαžαž»αž•αž›αž–αŸαž€αž“αŸ„αŸ‡αž‘αŸ αž›αž»αŸ‡αžαŸ’αžšαžΆαžαŸ‚αž’αŸ’αž“αž€αž˜αžΆαž“αž–αŸαž›αŸ” αž™αžΎαž„β€‹αž“αŸ…β€‹αž˜αžΆαž“β€‹αž€αžΆαžšαž„αžΆαžšβ€‹αž‡αžΆβ€‹αž…αŸ’αžšαžΎαž“β€‹αžŠαŸ‚αž›β€‹αžαŸ’αžšαžΌαžœβ€‹αž’αŸ’αžœαžΎ αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αžŸαžΌαž˜β€‹αž”αž“αŸ’αžβ€‹αž‘αŸ…β€‹αž˜αž»αž - αž™αžΎαž„β€‹αž“αžΉαž„β€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αžŸαŸ’αž‚αžΆαž›αŸ‹β€‹αžŸαŸ†αž‘αŸαž„αŸ” αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αŸ’αžšαž—αŸαž‘αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž› spectrograms αž“αŸƒαžŸαŸ†αž‘αŸαž„αžŠαŸ‚αž›αž”αžΆαž“αžαžαž‘αž»αž€αž˜αž»αž“αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αŸ” αžŠαŸ„αž™αžŸαžΆαžšβ€‹αž–αŸαž›β€‹αžœαŸαž›αžΆβ€‹αž“αŸ…β€‹αžŸαž›αŸ‹β€‹αžαž·αž…β€‹αžαž½αž… αž™αžΎαž„β€‹αž“αžΉαž„β€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αž”αž‰αŸ’αž αžΆβ€‹αž“αŸαŸ‡β€‹αž±αŸ’αž™β€‹αž’αžŸαŸ‹β€‹αž–αžΈβ€‹αžŸαž˜αžαŸ’αžαž—αžΆαž–αŸ”

    αž˜αžΆαž“αž“αŸαž™αžαžΆ αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαžαžŸαž˜αŸ’αžšαž„αŸ‹αžŸαŸ†αž‘αŸαž„ (αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαžαžΆαž„αž›αžΎαžŠαŸ‚αžš αž›αž»αŸ‡αžαŸ’αžšαžΆαžαŸ‚αž˜αžΆαž“αž€αžΆαžšαžšαŸ†αžαžΆαž“αž–αžΈαž€αŸ’αžαžΆαžšαž…αž»αž… αžœαžΆαž“αžΉαž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŸαŸ†αž‘αŸαž„αž‘αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš)αŸ”

    αžαŸ„αŸ‡β€‹αžŸαžΆαž€αž›αŸ’αž”αž„:

    python3 voice_db/record_voice.py test.wav

    αž™αžΎαž„αžαžαžŸαŸ†αž‘αŸαž„αžšαž”αžŸαŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αžΆαž€αŸ‹ (αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αžŸαž˜αžΆαž‡αž·αž€αž€αŸ’αžšαž»αž˜αž”αžΈαž“αžΆαž€αŸ‹)
    αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‘αŸ€αž αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αž‘αŸαž„αžŠαŸ‚αž›αž”αžΆαž“αžαžαž“αžΈαž˜αž½αž™αŸ— αž™αžΎαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αž½αž“αž›αžΏαž“αž‡αžΆαž„αž˜αž»αž“ αž‘αž‘αž½αž›αž”αžΆαž“αžœαž·αžŸαžΆαž›αž‚αž˜ αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆαž‡αžΆαž’αžΆαžšαŸ numpy (.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 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“) αŸ” αž™αžΎαž„αž›αŸ‚αž„αž˜αžΆαž“αž–αŸαž›αž”αž“αŸ’αžαŸ‚αž˜αž˜αŸ‰αžΌαžŠαŸ‚αž›αžαŸ’αž˜αžΈαž‘αŸ€αžαž αžΎαž™ αž αžΎαž™αž•αŸ’αžαŸ„αžαž›αžΎαž€αžΆαžšαžŸαžšαžŸαŸαžšαž‚αŸ†αžšαžΌαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžšαŸ”

    αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αžŽαŸ’αžαžΆαž‰

    αž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αž˜αž½αž™αŸ– αž™αžΎαž„αž™αž€αžšαŸ‰αŸ„αžαž‘αŸαžšαž‡αžΆαž˜αž½αž™αž™αžΎαž„αž–αžΈαž•αŸ’αž‘αŸ‡ αž αžΎαž™αžšαŸ€αž”αž…αŸ†αž”αžŽαŸ’αžαžΆαž‰αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αž™αžΎαž„ αžœαžΆαž‡αž½αž™αž—αŸ’αž‡αžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸ αž“αž·αž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαžαžΆαž˜αž”αžŽαŸ’αžαžΆαž‰αŸ”

    αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αž‚αžΊαž‡αžΆαž”αŸ‰αž»αžŸαŸ’αžαž·αŸαžŸαžΆαžšαž–αžΈαž…αž»αž„αžŠαž›αŸ‹αž…αž»αž„αžšαžœαžΆαž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž αž“αž·αž„ Raspberry Pi αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ websocket (http over tcp protocol)αŸ”

    αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŠαŸ†αž”αžΌαž„αž‚αžΊαž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΈ raspberry αž–αŸ„αž›αž‚αžΊαž’αŸ’αž“αž€αž‘αžŸαŸ’αžŸαž“αŸαž‘αžΆαž™αžŠαŸ‚αž›αž•αŸ’αž‘αž»αž€αž€αŸ’αž“αž»αž„ json αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžŠαŸ†αžŽαžΎαžšαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαŸ’αžαž·αžαž·αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž’αŸ†αž–αžΈαž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž™αŸˆαž–αŸαž›αž“αŸαŸ‡αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž˜αž€β€‹αž€αž‰αŸ’αž…αž”αŸ‹β€‹αž–αŸαžαŸŒαž˜αžΆαž“β€‹αž“αŸαŸ‡β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž•αŸ’αž‰αžΎβ€‹αž‘αŸ…β€‹αž•αŸ’αž“αŸ‚αž€β€‹αžαžΆαž„β€‹αž˜αž»αž αžŠαŸ‚αž›β€‹αž”αŸ’αžšαžΎβ€‹αž€αžΆαžšβ€‹αž‡αžΆαžœ αž“αž·αž„β€‹αž‘αž‘αž½αž›β€‹αž€αž‰αŸ’αž…αž”αŸ‹β€‹αž–αŸαžαŸŒαž˜αžΆαž“β€‹αž–αžΈβ€‹αž…αŸ†αžŽαž»αž…β€‹αž…αž»αž„β€‹αžšαž“αŸ’αž’β€‹αž”αžŽαŸ’αžŠαžΆαž‰αŸ” αž™αž“αŸ’αžαž€αžΆαžš backend αž‘αžΆαŸ†αž„αž˜αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž‡αžΆαž—αžΆαžŸαžΆ golang αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž–αŸ’αžšαŸ„αŸ‡αžœαžΆαžŸαŸαž€αŸ’αžαž·αžŸαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžšαž’αžŸαž˜αž€αžΆαž›αžŠαŸ‚αž› goroutines αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“αž›αŸ’αž’αŸ”
    αž“αŸ…αž–αŸαž›αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž…αŸ†αžŽαž»αž…αž”αž‰αŸ’αž…αž”αŸ‹ αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ αž“αž·αž„αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŸαžΆαžšαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αŸ” αž‘αžΆαŸ†αž„αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž“αž·αž„αžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αžΌαž‘αŸ… αžŠαŸ‚αž›αžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαžšαž½αž…αž αžΎαž™αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αž (αž‘αŸ…αž€αžΆαž“αŸ‹αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αžαžŠαŸ‚αž›αž”αžΆαž“αž‡αžΆαžœ) αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αž·αž‘αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ (raspberry αž¬αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž) αž“αŸ„αŸ‡αž€αžΆαžšαž‡αžΆαžœαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž»αž”αž…αŸ„αž› αž αžΎαž™αž‚αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αž–αžΈ αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αŸ”

    OpenVINO hackathonαŸ– αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžŸαŸ†αž‘αŸαž„ αž“αž·αž„αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αŸ…αž›αžΎ Raspberry Pi
    αž™αžΎαž„αž€αŸ†αž–αž»αž„αžšαž„αŸ‹αž…αžΆαŸ†αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž–αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž™

    Front-end αž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ JavaScript αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αžŽαŸ’αžŽαžΆαž›αŸαž™ React αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“ αž“αž·αž„αžŸαž˜αŸ’αžšαž½αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αž‚αŸ„αž›αž”αŸ†αžŽαž„αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸαŸ‡αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αžƒαžΎαž‰αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™ αž“αž·αž„αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž›αžΎ Raspberry Pi αŸ” αž‘αŸ†αž–αŸαžšαž“αŸαŸ‡αž˜αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αž›αžΌαžœαž‡αžΆαž•αŸ’αž“αŸ‚αž€ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž”αŸ’αžšαžΎαžšαŸ‰αŸ„αžαž‘αŸαžšαž”αŸ’αžšαžαž·αž€αž˜αŸ’αž˜ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‘αŸ†αž–αŸαžšαžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž‚αžΊαž‡αžΆαž‘αŸ†αž–αŸαžšαž…αž˜αŸ’αž”αž„ αžŠαŸ‚αž›αž€αžΆαžšαž•αŸ’αžŸαžΆαž™αž”αž“αŸ’αžαž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž€αŸ’αž“αž»αž„αž–αŸαž›αžœαŸαž›αžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ WebSocket αŸ” Raspberry Pi αžšαž€αžƒαžΎαž‰αžŸαŸ†αž‘αŸαž„ αž€αŸ†αžŽαžαŸ‹αžαžΆαžαžΎαžœαžΆαž‡αžΆαžšαž”αžŸαŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžŽαžΆαž˜αž½αž™αž–αžΈαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ αž αžΎαž™αž•αŸ’αž‰αžΎαž”αž‰αŸ’αž‡αžΈαž”αŸ’αžšαžΌαž”αžΆαž”αŸŠαžΈαž›αžΈαžαŸαž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž”αž„αŸ’αž αžΆαž‰αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αž αž”αž„αŸ’αž αžΆαž‰αžšαžΌαž”αžαŸ†αžŽαžΆαž„αžšαž”αžŸαŸ‹αž”αž»αž‚αŸ’αž‚αž›αžŠαŸ‚αž›αž‘αŸ†αž“αž„αž‡αžΆαž“αž·αž™αžΆαž™αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αžΈαž€αŸ’αžšαžΌαž αŸ’αžœαžΌαž“ αž€αŸαžŠαžΌαž…αž‡αžΆαž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžŠαŸ‚αž›αž‚αžΆαžαŸ‹αž”αž‰αŸ’αž…αŸαž‰αž–αžΆαž€αŸ’αž™αŸ”

    OpenVINO hackathonαŸ– αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžŸαŸ†αž‘αŸαž„ αž“αž·αž„αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αŸ…αž›αžΎ Raspberry Pi
    αž‘αŸ†αž–αŸαžšαžŠαžΎαž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž–αŸ’αž™αžΆαž€αžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–

    αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

    αžœαžΆαž˜αž·αž“αž’αžΆαž…αž”αž‰αŸ’αž…αž”αŸ‹αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαžΌαž…αž€αžΆαžšαž‚αŸ’αžšαŸ„αž„αž‘αž»αž€αž“αŸ„αŸ‡αž‘αŸ αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž˜αž·αž“αž˜αžΆαž“αž–αŸαž›αžœαŸαž›αžΆ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αŸ’αžαžΈαžŸαž„αŸ’αžƒαžΉαž˜αž…αž˜αŸ’αž”αž„αž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰ αžαžΆαž’αŸ’αžœαžΈαŸ—αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž€αŸ’αž“αž»αž„β€‹αž”αž‘β€‹αž”αž„αŸ’αž αžΆαž‰β€‹αž–αž½αž€αž‚αŸβ€‹αž”αžΆαž“β€‹αž“αž·αž™αžΆαž™β€‹αž’αŸ†αž–αžΈβ€‹αžšαž”αŸ€αž”β€‹αžŠαŸ‚αž›β€‹αž’αŸ’αžœαžΈαŸ—β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž‘αŸ…β€‹αž›αžΎβ€‹αž‚αŸ†αžšαžΌβ€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž–αž½αž€αž‚αŸβ€‹αž”αžΆαž“β€‹αž™αž€β€‹αž”αž‰αŸ’αž αžΆβ€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž–αž½αž€αž‚αŸβ€‹αž‡αž½αž”β€‹αž”αŸ’αžšαž‘αŸ‡αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‚αžΊαž‡αžΆαž•αŸ’αž“αŸ‚αž€αžŸαžΆαž€αž›αŸ’αž”αž„ - αž’αŸ’αž“αž€αž‡αŸ†αž“αžΆαž‰αž”αžΆαž“αžŠαžΎαžšαž‡αž»αŸ†αžœαž·αž‰αž”αž“αŸ’αž‘αž”αŸ‹αžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™ αž αžΎαž™αž…αžΌαž›αž‘αŸ…αž‡αž·αžαž€αŸ’αžšαž»αž˜αž“αžΈαž˜αž½αž™αŸ—αžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αž‚αŸ†αžšαžΌαž€αžΆαžšαž„αžΆαžšαŸ” αž–αž½αž€αž‚αŸαž”αžΆαž“αžŸαž½αžšαžŸαŸ†αžŽαž½αžšαž™αžΎαž„αž•αž„αžŠαŸ‚αžš αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž”αžΆαž“αž†αŸ’αž›αžΎαž™αž•αŸ’αž“αŸ‚αž€αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž–αž½αž€αž‚αŸαž”αžΆαž“αž…αžΆαž€αž…αŸαž‰αž–αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžšαž“αŸ…αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒ αž αžΎαž™αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž–αž·αžαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž€αžΆαžšαžšαŸ†αž–αžΉαž„αž‘αž»αž€αŸ”

    αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαž€αžΆαžšαž…αŸ†αžŽαžΆαž™αžŸαžšαž»αž”αž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αž™αžΎαž„αž‚αžΊ $ 150αŸ–

    • Raspberry Pi 3 ~ ៣αŸ₯ αžŠαž»αž›αŸ’αž›αžΆαžš
    • Google AIY Voice Bonnet (αž’αŸ’αž“αž€αž’αžΆαž…αž™αž€αžαŸ’αž›αŸƒαž’αŸ’αž“αž€αž“αž·αž™αžΆαž™αž”αžΆαž“) ~ 15$
    • Intel NCS 2 ~ 100 αžŠαž»αž›αŸ’αž›αžΆαžš

    αžœαž·αž’αžΈαž€αŸ‚αž›αž˜αŸ’αž’αŸ–

    • αž”αŸ’αžšαžΎαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž–αžΈαž’αžαž·αžαž·αž‡αž“ - αžŸαž»αŸ†αž’αžΆαž“αž’αžαŸ’αžαž”αž‘αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αž…αŸƒαžŠαž“αŸ’αž™
    • αž”αž“αŸ’αžαŸ‚αž˜αž‚αŸ†αžšαžΌαž˜αž½αž™αž…αŸ†αž“αž½αž“αž‘αŸ€αžαŸ– αž’αŸ’αž“αž€αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž—αŸαž‘ αž“αž·αž„αž’αžΆαž™αž»αžαžΆαž˜αžŸαŸ†αž‘αŸαž„
    • αž”αŸ†αž”αŸ‚αž€αžŸαŸ†αž‘αŸαž„αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆ (diarization)

    αžƒαŸ’αž›αžΆαŸ†αž„αŸ– https://github.com/vladimirwest/OpenEMO

    OpenVINO hackathonαŸ– αž€αžΆαžšαž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αžŸαŸ†αž‘αŸαž„ αž“αž·αž„αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αŸ…αž›αžΎ Raspberry Pi
    αž αžαŸ‹αžαŸ‚αžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αž

    αžŸαžšαž»αž”αžŸαŸαž…αž€αŸ’αžαžΈαž˜αž€ αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αžαŸ’αž›αŸ‚αž„αž’αŸ†αžŽαžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ† αž“αž·αž„αž’αŸ’αž“αž€αž…αžΌαž›αžšαž½αž˜αŸ” αž€αŸ’αž“αž»αž„β€‹αž…αŸ†αžŽαŸ„αž˜β€‹αž‚αž˜αŸ’αžšαŸ„αž„β€‹αžšαž”αžŸαŸ‹β€‹αž€αŸ’αžšαž»αž˜β€‹αž•αŸ’αžŸαŸαž„β€‹αž‘αŸ€αž αž™αžΎαž„β€‹αž•αŸ’αž‘αžΆαž›αŸ‹β€‹αž…αžΌαž›β€‹αž…αž·αžαŸ’αžβ€‹αžŠαŸ†αžŽαŸ„αŸ‡β€‹αžŸαŸ’αžšαžΆαž™β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αžαŸ’αžšαž½αžβ€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹αž…αžβ€‹αžšαžαž™αž“αŸ’αžβ€‹αžŠαŸ„αž™β€‹αž₯αžβ€‹αž‚αž·αžβ€‹αžαŸ’αž›αŸƒαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αž½αž€αž™αžΎαž„ αžœαžΆαž‚αžΊαž‡αžΆαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžŠαŸαžαŸ’αžšαž‡αžΆαž€αŸ‹αž“αŸƒαž€αžΆαžšαž‡αŸ’αžšαž˜αž»αž‡αž“αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž•αž› αž“αž·αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αžšαžΎαž“αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹ αžšαž½αž˜αž‘αžΆαŸ†αž„αž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘ AI αž•αž„αžŠαŸ‚αžšαŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹