เบงเบฑเบเบเบต 30 เบเบฐเบเบดเบ - 1 เปเบเบทเบญเบเบเบฑเบเบงเบฒเปเบ Nizhny Novgorod เปเบเปเบเบฑเบเบเบถเปเบ
เปเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบญเบเบเปเบฒเบเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเบปเบงเปเบเบเบเบญเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เปเบเบดเปเบเปเบเบเบตเปเบชเบธเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบญเบฑเบเบเบฑเบเบเปเบฒเบญเบดเบ.
เบซเบผเบฒเบเบเบงเปเบฒ 10 เบเบตเบกเปเบเบปเปเบฒเบฎเปเบงเบกเปเบ hackathon. เบกเบฑเบเบเบตเบเบตเปเบเบฒเบเบชเปเบงเบเบเบญเบเบเบงเบเปเบเบปเบฒเบกเบฒเบเบฒเบเบเบฒเบเบเบทเปเบเบญเบทเปเบเป. เบชเบฐเบเบฒเบเบเบตเปเบชเปเบฒเบฅเบฑเบ hackathon เปเบกเปเบ "Kremlinsky on Pochain", เบชเบฐเบฅเบฑเบเบชเบฑเบเบเปเบญเบ, เบเปเบญเบเบเบตเปเบฎเบนเบเบเปเบฒเบเบงเบฑเบเบเบธเบเบนเบฎเบฒเบเบเบญเบ Nizhny Novgorod เปเบเปเบเบทเบเปเบเบงเบเปเบงเปเบเบฒเบเปเบ, เปเบ entourage! (เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเปเบเบทเบญเบเบเปเบฒเบเบงเปเบฒเปเบเปเบงเบฅเบฒเบเบตเปเบซเปเบญเบเบเบฒเบเบชเบนเบเบเบฒเบเบเบญเบ Intel เบเบฑเปเบเบขเบนเปเปเบ Nizhny Novgorod). เบเบนเปเปเบเบปเปเบฒเบฎเปเบงเบกเปเบเปเบฎเบฑเบเปเบงเบฅเบฒ 26 เบเบปเปเบงเปเบกเบเปเบเบทเปเบญเบเบฝเบเบฅเบฐเบซเบฑเบ, เปเบฅเบฐเปเบเบเบตเปเบชเบธเบเบเบงเบเปเบเบปเบฒเบเปเบญเบเบเปเบฒเบชเบฐเปเบซเบเบตเบเบฒเบเปเบเปเปเบเบเบญเบเบเบงเบเปเบเบปเบฒ. เบเบฐเปเบซเบเบเบเบตเปเปเบเบเบเปเบฒเบเบซเบฒเบเปเบกเปเบเบเบฒเบเบกเบตเบเบญเบเบเบฐเบเบธเบกเบชเบฒเบเบดเบเปเบเบทเปเบญเปเบซเปเปเบเปเปเบเบงเปเบฒเบเบธเบเบขเปเบฒเบเบเบตเปเบงเบฒเบเปเบเบเปเบงเปเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบเบขเปเบฒเบเปเบเปเบเบดเบเปเบฅเบฐเบเปเปเบเบฑเบเบเบปเบเปเบเบฑเบเปเบเบงเบเบงเบฒเบกเบเบดเบเปเบเบเบฒเบเบเปเบฒเบชเบฐเปเบซเบเบต. เบชเบดเบเบเปเบฒ, เบญเบฒเบซเบฒเบเบซเบงเปเบฒเบ, เบญเบฒเบซเบฒเบ, เบเบธเบเบขเปเบฒเบเบเปเปเบกเบตเบเบทเบเบฑเบ!
เบเบญเบเบเบฒเบเบเบฑเปเบ, Intel เบเปเปเปเบเปเปเบซเปเบเปเบญเบเบเปเบฒเบเบฎเบนเบเบเบฒเบเปเบฅเบทเบญเบ, Raspberry PI, Neural Compute Stick 2.
เบเบฒเบเปเบฅเบทเบญเบเปเปเบฒเบงเบฝเบ
เบซเบเบถเปเบเปเบเบเบฒเบเบชเปเบงเบเบเบตเปเบกเบตเบเบงเบฒเบกเบซเบเบธเปเบเบเบฒเบเบเบตเปเบชเบธเบเบเบญเบเบเบฒเบเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบ hackathon เบฎเบนเบเปเบเบเบเบฃเบตเปเบกเปเบเบเบฒเบเปเบฅเบทเบญเบเบชเบดเปเบเบเปเบฒเบเบฒเบ. เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบดเบเปเบเบเบฑเบเบเบตเบเบฑเบเปเบเบเบตเปเบเบฐเบกเบฒเปเบเบดเบเบเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเบฑเบเบเปเปเบเบฑเบเบกเบตเบขเบนเปเปเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบ, เบเบฑเบเบเบฑเปเบเปเบเปเบเบฒเบเบเบฐเบเบฒเบเบเปเบฒเบงเบงเปเบฒเบเบตเปเปเบกเปเบเบเบดเบเบเบตเบเปเบญเบเบฎเบฑเบเบขเปเบฒเบเบชเบนเบ.
เบกเบตเบเบฒเบเบงเบดเปเบเบฒเบฐ
- เปเบเบเบฒเบเบเบดเบเบชเบฐเบเบต, เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบชเปเบฒเบ algorithm เบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบตเปเบเบฐเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบชเบฝเบเปเบฅเบฐเบฎเบนเบเบเบฒเบ, เปเบเบดเปเบเบเบงเบเบเบฐเปเบเบตเปเบกเบเบงเบฒเบกเบเบทเบเบเปเบญเบ.
- เบเปเบญเบเบเปเบฒเบเบฎเบนเบเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบกเบตเบกเบธเบกเปเบเบดเปเบเปเบเบ; เบเปเบญเบเบกเบตเบเปเบญเบเบเปเบฒเบเบฎเบนเบเบซเบผเบฒเบเบเบงเปเบฒเบซเบเบถเปเบเปเบเบทเปเบญเบเบงเบกเปเบญเบปเบฒเบเบทเปเบเบเบตเปเบเบฐเบซเบเบฒเบเปเบซเบเป; เบชเบฝเบเบเปเปเบกเบตเบเปเปเบเปเบฒเบเบฑเบเบเบฑเปเบเบเปเบฒเบง.
เปเบซเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบฐเบเบฒเปเบเบงเบเบงเบฒเบกเบเบดเบ: เปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบญเบปเบฒเปเบเบงเบเบงเบฒเบกเบเบดเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบงเบเบเบฒเบเบเปเบญเบเปเบเบฑเบเบเบทเปเบเบเบฒเบ. เบเปเบฒเบเบชเบฒเบกเบฒเบเบงเบฑเบเปเบเบเบเบงเบฒเบกเบเปเปเบเบเบญเบเบฅเบนเบเบเปเบฒเบขเบนเปเบเบตเปเบฎเปเบฒเบเบเปเบฒเบเปเบเบดเบ. เบเปเบฒเบฅเบนเบเบเปเบฒเบเบปเบเบซเบเบถเปเบเบเปเปเบเปเปเบเบเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบฅเบฐเปเบฅเบตเปเบกเปเบเบตเปเบกเบชเบฝเบเบเบญเบเบเบงเบเปเบเบปเบฒ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบซเบฒเบเบนเปเปเบเบดเปเบเปเบเบเบฅเบฐเบเบปเบเปเบเบทเปเบญเบเปเบเบงเบฒเบกเบเปเบงเบเปเบซเบผเบทเบญเบเบฑเบเบเบต.
เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเปเบกเบเบฒเบเบฎเบฑเบเบฎเบนเปเบชเบฝเบเบเบญเบเบกเบฐเบเบธเบ, เบเบตเปเบเบฐเบเปเบงเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบเบเบฐเบเบฑเบเบเบฒเบเบฎเปเบฒเบเบเบฒเบเบฅเบนเบเบเปเบฒเปเบฅเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเบงเบดเปเบเบฒเบฐเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบปเบ. เบเบญเบเบเบฒเบเบเบตเป, เบเบฑเบเบชเบฒเบกเบฒเบเบงเบดเปเบเบฒเบฐเบเบถเบเบเบดเบเปเบฒเบเบญเบเบเบฐเบเบฑเบเบเบฒเบเบฎเปเบฒเบเปเบญเบ, เบเบฐเปเบกเบตเบเบเบฑเบเบเบฒเบเบฒเบเปเบเบเบตเบกเบเบฒเบ, เบชเบฝเบเบเบต!
เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเปเปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ:
- เบเบฐเบซเบเบฒเบเบเปเบญเบเบเบญเบเบญเบธเบเบฐเบเบญเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบฑเปเบเบเปเบฒเบง
- เบเบฒเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเบเบตเปโเปเบเปโเปเบงโเบฅเบฒโเบเบตเปโเปเบเปโเบเบดเบโ
- เบฅเบฒโเบเบฒโเบโเปโเปโเบฒ
- เบเบฒเบโเบเบฐโเบซเบเบฒเบโเบเบปเบงโเบเปเบฒเบโเบเบฒเบโ
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบฅเบทเบญเบ Raspberry Pi 3 c เปเบเบฑเบเบญเบธเบเบฐเบเบญเบเปเบเบปเปเบฒเบซเบกเบฒเบเบเบฑเปเบเบเปเบฒเบง
เปเบเบเบตเปเบเบตเปเบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบเบตเปเบเบฐเบชเบฑเบเปเบเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบชเปเบฒเบเบฑเบเบซเบเบถเปเบเบเบญเบ NCS - เบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบเบตเปเบเบตเบเบตเปเบชเบธเบเบเบฑเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒ CNN เบกเบฒเบเบเบฐเบเบฒเบ, เปเบเปเบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเปเบเปเบเบปเบงเปเบเบเบเบตเปเบกเบตเบเบฑเปเบเบเบตเปเบเปเบฒเบซเบเบปเบเปเบญเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเบซเบงเบฑเบเบงเปเบฒเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบฅเบฐเบเบฑเบเบเปเปเบฒ.
เบกเบตเบเบฝเบเปเบเปเบชเบดเปเบเปเบฅเบฑเบเบเปเบญเบเบเบตเปเบเปเบญเบเปเบฎเบฑเบ: เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเปเบกเปเบเปเบเบ. เปเบกเปเบเบฃเปเบเบ USB เบเบปเบเบเบฐเบเบดเบเบฐเปเบฎเบฑเบเปเบเป, เปเบเปเบกเบฑเบเบเบฐเปเบเบดเปเบเบเปเปเบเบตเบฎเปเบงเบกเบเบฑเบ RPI. เปเบเปเปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเปเบเปเปเบเบขเบนเปเบเบตเปเบเบตเป "เบขเบนเปเปเบเปเบเบฝเบ." เปเบเบทเปเบญเบเบฑเบเบเบถเบเบชเบฝเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบดเบเปเบเปเบเปเบเบฐเบเบฒเบ Voice Bonnet เบเบฒเบเบเบธเบ
เบเบฒเบงเปเบซเบฅเบ Raspbian เบเบฒเบ
arecord -d 5 -r 16000 test.wav
เบเปเบญเบเบเบงเบเบชเบฑเบเปเบเบเบเบฑเบเบเบตเบงเปเบฒเปเบกเปเบเบฃเปเบเบเบกเบตเบเบงเบฒเบกเบญเปเบญเบเปเบซเบงเบซเบผเบฒเบ เปเบฅเบฐเปเบเบฑเบเบชเบฝเบเบฅเบปเบเบเบงเบเปเบเปเบเบต. เปเบเบทเปเบญเปเบเปเปเบเบเบตเป, เปเบซเปเปเบเบเบตเป alsamixer, เปเบฅเบทเบญเบเบญเบธเบเบฐเบเบญเบ Capture เปเบฅเบฐเบซเบผเบธเบเบฅเบปเบเบฅเบฐเบเบฑเบเบชเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบฑเบ 50-60%.
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบเบเบฎเปเบฒเบเบเบฒเบเบเปเบงเบเปเบเบฅเปเปเบฅเบฐเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบซเบกเบฒเบฐ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบดเบเบกเบฑเบเบเปเบงเบเบเบฒเบเบดเบ
เปเบเบตเปเบกเบเบธเปเบกเบเบปเบงเบเบตเปเบงเบฑเบ
เปเบเบเบฐเบเบฐเบเบตเปเปเบญเบปเบฒเบเบธเบเบชเบฝเบ AIY เบญเบญเบเบเบฒเบเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเบทเปเปเบเปเบงเปเบฒเบกเบตเบเบธเปเบก RGB, เปเบเบดเปเบเบชเบฒเบกเบฒเบเบเบงเบเบเบธเบกเปเบเปเปเบเบเบเบญเบเปเบง. เบเบงเบเปเบฎเบปเบฒเบเบญเบเบซเบฒ โGoogle AIY Ledโ เปเบฅเบฐเบเบญเบเบซเบฒเปเบญเบเบฐเบชเบฒเบ:
เปเบเบฑเบเบซเบเบฑเบเบเปเปเปเบเปเบเบธเปเบกเบเบตเปเปเบเบทเปเบญเบชเบฐเปเบเบเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบเบตเปเบฎเบฑเบเบฎเบนเป, เบเบงเบเปเบฎเบปเบฒเบกเบตเบเบฝเบเปเบเป 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])))
เบเบธเปเบก, เปเบซเบกเป!
เปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบชเบฝเบ
เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเป 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 เบซเบผเบทเบซเบเปเบฒ), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเบชเบฐเปเบฑเบเปเบเปเบเบญเบเบฅเบฒเบงเบเบทเบเบเบปเบเปเบฅเบตเบ เปเบฅเบฐเบฅเบฒเบงเบเบทเบเปเบเบเบเปเบฒเบเบญเบญเบเบเบฒเบ เบชเบนเบเบเบฒเบ.
เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบฅเปเบเปเบฒเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฒเบเบเปเบฒเบเบซเบฅเบฑเบFront-end เปเบกเปเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบงเบฑเบเบเบตเปเบเบฝเบเปเบ JavaScript เปเบเบเปเบเป React Library เปเบเบทเปเบญเปเบเบตเปเบกเบเบงเบฒเบกเปเบง เปเบฅเบฐเปเบฎเบฑเบเปเบซเปเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเปเบฒเบเบเบถเปเบ. เบเบธเบโเบเบฐโเบชเบปเบโเบเบญเบโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเบเบตเปโเปเบกเปเบโเปเบเบทเปเบญโเบชเบฐโเปเบเบโเปเบซเปโเปเบซเบฑเบโเบเปเปโเบกเบนเบโเบเบตเปโเปเบเปโเบฎเบฑเบโเปเบเบโเบเปเบฒโเปเบเปโเบงเบดโเบเบตโเบเบฒเบโเบเบตเปโเปเบฅเปเบโเบขเบนเปโเบเปเบฒเบโเบซเบผเบฑเบโเบเบญเบโเบเปเบฒเบโเปเบฅเบฐโเปเบเบโเบเบปเบโเบเปเบฝเบงโเบเบฑเบ Raspberry Piโ. เบซเบเปเบฒเบกเบตเปเบชเบฑเปเบเบเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบฐเบเบดเบเบฑเบเปเบเบเปเบเป react-router, เปเบเปเบซเบเปเบฒเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเปเบกเปเบเบซเบเปเบฒเบซเบฅเบฑเบ, เบเปเบญเบเบเบตเปเบเบฒเบเบเปเบฒเบเบเบญเบเบเปเปเบกเบนเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบเปเบกเปเบเปเบเปเบฎเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบเปเบเบดเบเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบเบเปเบเปเปเบเบเปเบเปเบฅเบเบต WebSocket. Raspberry Pi เบเบงเบเบเบปเบเบชเบฝเบ, เบเปเบฒเบเบปเบเบงเปเบฒเบกเบฑเบเปเบเบฑเบเบเบญเบเบเบธเบเบเบปเบเบชเบฐเปเบเบฒเบฐเบเบฒเบเบเบฒเบเบเปเปเบกเบนเบเบเบตเปเบฅเบปเบเบเบฐเบเบฝเบ, เปเบฅเบฐเบชเบปเปเบเบฅเบฒเบเบเบทเปเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเปเบซเปเบเบฑเบเบฅเบนเบเบเปเบฒ. เบฅเบนเบเบเปเบฒเบชเบฐเปเบเบเบเปเปเบกเบนเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบซเบผเปเบฒเบชเบธเบ, เบชเบฐเปเบเบเบฎเบนเบเปเบเบเบเบปเบงเบเบญเบเบเบธเบเบเบปเบเบเบตเปเบกเบฑเบเบเบฐเปเบงเบปเปเบฒเปเบเบปเปเบฒเปเบเปเบเปเบกเปเบเบฃเปเบเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบเบตเปเบฅเบฒเบงเบญเบญเบเบชเบฝเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเป.
เบซเบเปเบฒเบเปเบฒเบญเบดเบเบเบตเปเบกเบตเบเบฒเบเบเบฒเบเบเบฐเปเบเบเบฒเบเบเบฑเบเบเบธเบเบชเบฐเบซเบฅเบธเบ
เบกเบฑเบเปเบเบฑเบเปเบเบเปเปเปเบเปเบเบตเปเบเบฐเบชเปเบฒเปเบฅเบฑเบเบเบธเบเบขเปเบฒเบเบเบฒเบกเปเบเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเปเปเบกเบตเปเบงเบฅเบฒ, เบเบฑเปเบเบเบฑเปเบเบเบงเบฒเบกเบซเบงเบฑเบเบเบปเปเบเบเปเปเบกเปเบเบขเบนเปเปเบเบเบปเบงเบขเปเบฒเบ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบฐเปเบฎเบฑเบเบงเบฝเบ. เปเบเบเบฒเบเบเปเบฒเบชเบฐเปเบซเบเบตเบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเปเบชเบปเบเบเบฐเบเบฒเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ, เบฎเบนเบเปเบเบเปเบเบเบตเปเปเบเบปเบฒเปเบเบปเปเบฒเปเบเป, เบชเบดเปเบเบเบตเปเปเบเบปเบฒเปเบเบปเปเบฒเบเบปเบเบเบฑเบเบซเบฒ. เบเปเปเปเบเปเบกเปเบเบเบฒเบเบชเปเบงเบเบชเบฒเบเบดเบ - เบเบนเปเบเปเบฝเบงเบเบฒเบเบเปเบฒเบเปเบเบเบปเปเบงเบซเปเบญเบเปเบเบฅเปเบฒเบเบฑเบเปเบเบเบชเบธเปเบกเปเบฅเบฐเปเบเบปเปเบฒเบซเบฒเปเบเปเบฅเบฐเบเบตเบกเปเบเบทเปเบญเปเบเบดเปเบเบเบปเปเบเปเบเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบ. เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเปเบเบฒเบกเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบฒเบกเปเบเบฑเปเบเบเบฝเบงเบเบฑเบ, เบเบธเบเบเบปเบเบเบญเบเบชเปเบงเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ, เบเบงเบเปเบเบปเบฒเปเบเบปเปเบฒเบญเบญเบเบเบฒเบเปเบงเบฑเบเปเบเบเบญเบกเบเบดเบงเปเบเบตเปเบเบเบเบธเบ, เปเบฅเบฐเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเปเปเปเบฎเบฑเบเบงเบฝเบเบเบฒเบกเบเบตเปเบเบฒเบเปเบงเป.
เปเบซเปเบเปเบญเบเบชเบฑเบเปเบเบเบงเปเบฒเบเปเบฒเปเบเปเบเปเบฒเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบฒเบเปเบเปเปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบ $150:
- Raspberry Pi 3 ~ $35
- Google AIY Voice Bonnet (เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบญเบปเบฒเบเปเบฒเบเปเบฒเบเบฝเบกเบเบนเปเปเบงเบปเปเบฒเปเบเป) ~ 15$
- Intel NCS 2 ~ 100$
เบงเบดเบเบตเบเบฒเบเบเบฑเบเบเบธเบ:
- เปเบเปเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบเบฒเบเบฅเบนเบเบเปเบฒ - เบเปเปเบซเปเบญเปเบฒเบเบเปเปเบเบงเบฒเบกเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเบชเบธเปเบก
- เปเบเบตเปเบกเปเบเบเบเปเบฒเบฅเบญเบเบญเบตเบเบชเบญเบเบชเบฒเบกเปเบเบ: เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเปเบเบเปเบฅเบฐเบญเบฒเบเบธเปเบเบเบชเบฝเบ
- เปเบเบเบชเบฝเบเบเบฑเบเบเปเบญเบกเปเบเบฑเบ ( diarization )
เบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ:
https://github.com/vladimirwest/OpenEMO
เปเบกเบทเปเบญเบเปเบเปเปเบฎเบปเบฒเบกเบตเบเบงเบฒเบกเบชเบธเบเบชเบฐเบซเบฅเบธเบเปเบฅเปเบง, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเบเปเบฒเบงเบเบญเบเปเบเบกเบฒเบเบฑเบเบเบนเปเบเบฑเบเบเบฒเบ เปเบฅเบฐ เบเบนเปเปเบเบปเปเบฒเบฎเปเบงเบก. เปเบโเบเบฑเบโเบเบฒโเปเบเบโเบเบฒเบโเบเบญเบโเบเบตเบกโเบเบฒเบโเบญเบทเปเบเปโ, เบเบงเบโเปเบฎเบปเบฒโเบชเปเบงเบโเบเบธเบโเบเบปเบโเบกเบฑเบโเบเบฒเบโเปเบเปโเปเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเบดเบโเบเบฒเบกโเบชเบฐโเบเบฒเบโเบเบตเปโเบเปเบญเบโเบเบญเบโเบฅเบปเบโเบเบฃเบตโ. เบชเปเบฒเบฅเบฑเบเบเบงเบเปเบฎเบปเบฒ, เบกเบฑเบเปเบเบฑเบเบเบฐเบชเบปเบเบเบฒเบเบเบตเปเปเบขเบฑเบเบชเบฐเบเบฒเบเบเบญเบเบเบฒเบเบเบฑเบเบขเบนเปเปเบเบเบฐเบฅเบดเบเบเบฐเบเบฑเบเปเบฅเบฐเบเบฒเบเบเบฑเบเบเบฐเบเบฒ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบซเบงเบฑเบเบงเปเบฒเบเบฐเบกเบตเบเบดเบเบเบฐเบเปเบฒเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบซเบผเบฒเบเบเบทเปเบเบขเบนเปเปเบเบเบฒเบเบเบทเปเบ, เบฅเบงเบกเบเบฑเบเปเบเบซเบปเบงเบเปเป AI.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com