OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° глас ΠΈ Π΅ΠΌΠΎΡ†ΠΈΠΈ Π½Π° Raspberry Pi

30 Π½ΠΎΠ΅ΠΌΠ²Ρ€ΠΈ - 1 Π΄Π΅ΠΊΠ΅ΠΌΠ²Ρ€ΠΈ Π² НиТни Новгород сС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½. УчастницитС бяха ΠΏΠΎΠΌΠΎΠ»Π΅Π½ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π°Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° инструмСнтариума Intel OpenVINO. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ…Π° списък с ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ‚Π΅ΠΌΠΈ, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° Π·Π°Π΄Π°Ρ‡Π°, Π½ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»Π½ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π²Π°ΡˆΠ΅ Π½Π° ΠΎΡ‚Π±ΠΎΡ€ΠΈΡ‚Π΅. ОсвСн Ρ‚ΠΎΠ²Π° сС Π½Π°ΡΡŠΡ€Ρ‡Π°Π²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° глас ΠΈ Π΅ΠΌΠΎΡ†ΠΈΠΈ Π½Π° Raspberry Pi

Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ нашия ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, с ΠΊΠΎΠΉΡ‚ΠΎ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Π·Π°Π΅Ρ…ΠΌΠ΅ ΠΏΡŠΡ€Π²ΠΎ място.

Π’ Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π° участваха Π½Π°Π΄ 10 ΠΎΡ‚Π±ΠΎΡ€Π°. Π₯ΡƒΠ±Π°Π²ΠΎ Π΅, Ρ‡Π΅ някои ΠΎΡ‚ тях ΠΈΠ΄Π²Π°Ρ‚ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈ. ΠœΡΡΡ‚ΠΎΡ‚ΠΎ Π½Π° Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π° бСшС ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΡŠΡ‚ β€žΠšΡ€Π΅ΠΌΠ»ΠΈΠ½ΡΠΊΠΈ Π½Π° ΠŸΠΎΡ‡Π°ΠΉΠ½β€œ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π²ΡŠΡ‚Ρ€Π΅ бяха ΠΎΠΊΠ°Ρ‡Π΅Π½ΠΈ Π΄Ρ€Π΅Π²Π½ΠΈ снимки Π½Π° НиТни Новгород Π² Π°Π½Ρ‚ΡƒΡ€Π°ΠΆ! (Напомням Π²ΠΈ, Ρ‡Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° цСнтралният офис Π½Π° Intel сС Π½Π°ΠΌΠΈΡ€Π° Π² НиТни Новгород). На участницитС бяха Π΄Π°Π΄Π΅Π½ΠΈ 26 часа Π΄Π° Π½Π°ΠΏΠΈΡˆΠ°Ρ‚ ΠΊΠΎΠ΄, Π° накрая Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° прСдставят своСто Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ΠžΡ‚Π΄Π΅Π»Π½ΠΎ прСдимство бСшС Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Π΅ΠΌΠΎ сСсия, Π·Π° Π΄Π° сС ΡƒΠ²Π΅Ρ€ΠΈΡ‚Π΅, Ρ‡Π΅ всичко ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ Π΅ Ρ€Π΅Π°Π»Π½ΠΎ изпълнСно ΠΈ Π½Π΅ остават ΠΈΠ΄Π΅ΠΈ Π² прСзСнтацията. Π‘Ρ‚ΠΎΠΊΠΈ, закуски, Ρ…Ρ€Π°Π½Π°, всичко ΡΡŠΡ‰ΠΎ бСшС Ρ‚Π°ΠΌ!

Π’ допълнСниС, Intel прСдоставя ΠΊΠ°Ρ‚ΠΎ опция ΠΊΠ°ΠΌΠ΅Ρ€ΠΈ, Raspberry PI, Neural Compute Stick 2.

Π˜Π·Π±ΠΎΡ€ Π½Π° Π·Π°Π΄Π°Ρ‡Π°

Π•Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅ части ΠΎΡ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°Ρ‚Π° Π·Π° Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½ Π² свободна Ρ„ΠΎΡ€ΠΌΠ° Π΅ ΠΈΠ·Π±ΠΎΡ€ΡŠΡ‚ Π½Π° прСдизвикатСлство. Π’Π΅Π΄Π½Π°Π³Π° Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° измислим Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ всС ΠΎΡ‰Π΅ Π½Π΅ бСшС Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ сС казвашС, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π΅ дошло.

ΠšΠ°Ρ‚ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΌΠΎΠ΄Π΅Π», ΠΊΠΎΠΈΡ‚ΠΎ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π² Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° вСрсия, стигамС Π΄ΠΎ ΠΈΠ·Π²ΠΎΠ΄Π°, Ρ‡Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ тях Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½ΠΎΡ‚ΠΎ Π·Ρ€Π΅Π½ΠΈΠ΅. ОсвСн Ρ‚ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС измисли ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² областта Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½ΠΎΡ‚ΠΎ Π·Ρ€Π΅Π½ΠΈΠ΅, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π΅ΡˆΠ΅Π½ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° OpenVINO, Π° Π΄ΠΎΡ€ΠΈ ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС измислСн, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΅ Π΄Π° сС намСрят ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΡ‚ΠΎ пространство. РСшавамС Π΄Π° ΠΊΠΎΠΏΠ°Π΅ΠΌ Π² Π΄Ρ€ΡƒΠ³Π° посока – към ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ€Π΅Ρ‡ ΠΈ Π°Π½Π°Π»ΠΈΠ·. НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΅Π΄Π½Π° интСрСсна Π·Π°Π΄Π°Ρ‡Π° Π·Π° Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Π΅ΠΌΠΎΡ†ΠΈΠΈ ΠΎΡ‚ Ρ€Π΅Ρ‡Ρ‚Π°. Врябва Π΄Π° сС ΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ OpenVINO Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° ΠΌΠΎΠ΄Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ опрСдСля Π΅ΠΌΠΎΡ†ΠΈΠΈΡ‚Π΅ Π½Π° Ρ‡ΠΎΠ²Π΅ΠΊ въз основа Π½Π° Π»ΠΈΡ†Π΅Ρ‚ΠΎ ΠΌΡƒ, Π½ΠΎ:

  • На тСория Π΅ възмоТно Π΄Π° сС създадС ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ Π²ΡŠΡ€Ρ…Ρƒ Π·Π²ΡƒΠΊ, Ρ‚Π°ΠΊΠ° ΠΈ Π²ΡŠΡ€Ρ…Ρƒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° Π΄Π°Π΄Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° точността.
  • ΠšΠ°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠΌΠ°Ρ‚ тСсСн ъгъл Π½Π° видимост; Π·Π° ΠΏΠΎΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° голяма ΠΏΠ»ΠΎΡ‰ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€Π°; Π·Π²ΡƒΠΊΡŠΡ‚ няма Ρ‚Π°ΠΊΠΎΠ²Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅.

НСка Π΄Π° Ρ€Π°Π·Π²ΠΈΠ΅ΠΌ идСята: Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ Π·Π° основа идСята Π·Π° сСгмСнта Π½Π° Π΄Ρ€Π΅Π±Π½ΠΎ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ удовлСтворСността Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° касата Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°. Ако някой ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π΅ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ ΠΎΡ‚ обслуТванСто ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° повишава Ρ‚ΠΎΠ½, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° сС ΠΎΠ±Π°Π΄ΠΈΡ‚Π΅ Π½Π° администратора Π·Π° ΠΏΠΎΠΌΠΎΡ‰.
Π’ Ρ‚ΠΎΠ·ΠΈ случай трябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Ρ‡ΠΎΠ²Π΅ΡˆΠΊΠΈ глас, Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌ слуТитСлитС Π½Π° ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΈ Π΄Π° прСдоставим Π°Π½Π°Π»ΠΈΠ·ΠΈ Π·Π° всСки ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Ρ‡ΠΎΠ²Π΅ΠΊ. Π•, освСн Ρ‚ΠΎΠ²Π° Ρ‰Π΅ бъдС възмоТно Π΄Π° сС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° самитС слуТитСли Π½Π° ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, Π΄Π° сС ΠΎΡ†Π΅Π½ΠΈ атмосфСрата Π² Π΅ΠΊΠΈΠΏΠ°, Π·Π²ΡƒΡ‡ΠΈ Π΄ΠΎΠ±Ρ€Π΅!

НиС Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°ΠΌΠ΅ изискванията Π·Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

  • Малък Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΡ‚ΠΎ устройство
  • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅
  • Ниска Ρ†Π΅Π½Π°
  • ЛСсна мащабируСмост

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ Raspberry Pi 3 c ΠΊΠ°Ρ‚ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎ устройство Intel NCS 2.

Π’ΡƒΠΊ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ Π΅Π΄Π½Π° Π²Π°ΠΆΠ½Π° характСристика Π½Π° NCS - тя Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π΅ със стандартни CNN Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ, Π½ΠΎ Π°ΠΊΠΎ трябва Π΄Π° стартиратС ΠΌΠΎΠ΄Π΅Π» с пСрсонализирани слоСвС Π²ΡŠΡ€Ρ…Ρƒ Π½Π΅Π³ΠΎ, Ρ‚ΠΎΠ³Π°Π²Π° ΠΎΡ‡Π°ΠΊΠ²Π°ΠΉΡ‚Π΅ оптимизация Π½Π° ниско Π½ΠΈΠ²ΠΎ.

Има само Π΅Π΄Π½ΠΎ ΠΌΠ°Π»ΠΊΠΎ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅: трябва Π΄Π° Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½. ОбикновСн USB ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ Ρ‰Π΅ ΡΠ²ΡŠΡ€ΡˆΠΈ Ρ€Π°Π±ΠΎΡ‚Π°, Π½ΠΎ няма Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π΄ΠΎΠ±Ρ€Π΅ Π·Π°Π΅Π΄Π½ΠΎ с RPI. Но Π΄ΠΎΡ€ΠΈ ΠΈ Ρ‚ΡƒΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ β€žΡΠ΅ Π½Π°ΠΌΠΈΡ€Π° Π½Π°Π±Π»ΠΈΠ·ΠΎβ€œ. Π—Π° Π΄Π° записвамС глас, Ρ€Π΅ΡˆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠ»Π°Ρ‚ΠΊΠ°Ρ‚Π° Voice Bonnet ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Гласов ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ Google AIY, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° ΠΆΠΈΡ‡Π΅Π½ стСрСо ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½.

Π˜Π·Ρ‚Π΅Π³Π»Π΅Ρ‚Π΅ Raspbian ΠΎΡ‚ Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° AIY ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ Π³ΠΎ ΠΊΠ°Ρ‡Π΅Ρ‚Π΅ Π½Π° Ρ„Π»Π°Ρˆ устройство, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π°Π»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ΡŠΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈ, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ слСдната ΠΊΠΎΠΌΠ°Π½Π΄Π° (тя Ρ‰Π΅ запишС Π°ΡƒΠ΄ΠΈΠΎ с дълТина 5 сСкунди ΠΈ Ρ‰Π΅ Π³ΠΎ Π·Π°ΠΏΠ°Π·ΠΈ във Ρ„Π°ΠΉΠ»):

arecord -d 5 -r 16000 test.wav

Π’Π΅Π΄Π½Π°Π³Π° трябва Π΄Π° ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠ°, Ρ‡Π΅ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ΡŠΡ‚ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ чувствитСлСн ΠΈ улавя Π΄ΠΎΠ±Ρ€Π΅ ΡˆΡƒΠΌΠ°. Π—Π° Π΄Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°, Π½Π΅ΠΊΠ° ΠΎΡ‚ΠΈΠ΄Π΅ΠΌ Π½Π° alsamixer, ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ устройства Π·Π° заснСманС ΠΈ Π½Π°ΠΌΠ°Π»Π΅Ρ‚Π΅ Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° входния сигнал Π΄ΠΎ 50-60%.

OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° глас ΠΈ Π΅ΠΌΠΎΡ†ΠΈΠΈ Π½Π° Raspberry Pi
ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ тялото с ΠΏΠΈΠ»Π° ΠΈ всичко става, Π΄ΠΎΡ€ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ Π·Π°Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ с ΠΊΠ°ΠΏΠ°ΠΊ

ДобавянС Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅Π½ Π±ΡƒΡ‚ΠΎΠ½

Π”ΠΎΠΊΠ°Ρ‚ΠΎ разглобявамС AIY Voice Kit, ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Π΅ ΠΈΠΌΠ° RGB Π±ΡƒΡ‚ΠΎΠ½, чиято подсвСтка ΠΌΠΎΠΆΠ΅ Π΄Π° сС управлява софтуСрно. Π’ΡŠΡ€ΡΠΈΠΌ β€žGoogle AIY Ledβ€œ ΠΈ Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ докумСнтация: https://aiyprojects.readthedocs.io/en/latest/aiy.leds.html
Π—Π°Ρ‰ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ Π±ΡƒΡ‚ΠΎΠ½ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Ρ‚Π°Ρ‚Π° Смоция, ΠΈΠΌΠ°ΠΌΠ΅ само 7 класа, Π° Π±ΡƒΡ‚ΠΎΠ½ΡŠΡ‚ ΠΈΠΌΠ° 8 цвята, Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ!

Π‘Π²ΡŠΡ€Π·Π²Π°ΠΌΠ΅ Π±ΡƒΡ‚ΠΎΠ½Π° Ρ‡Ρ€Π΅Π· GPIO към Voice Bonnet, Π·Π°Ρ€Π΅ΠΆΠ΄Π°ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (Ρ‚Π΅ Π²Π΅Ρ‡Π΅ са инсталирани Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Π·Π° разпространСниС ΠΎΡ‚ AIY ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ)

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

НСка създадСм dict, Π² ΠΊΠΎΠΉΡ‚ΠΎ всяка Смоция Ρ‰Π΅ ΠΈΠΌΠ° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π΅Π½ цвят ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° RGB Tuple ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ ΠΎΡ‚ класа aiy.leds.Leds, Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ†Π²Π΅Ρ‚Π°:

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

И накрая, слСд всяка Π½ΠΎΠ²Π° ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π° Π·Π° Смоция, Ρ‰Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ†Π²Π΅Ρ‚Π° Π½Π° Π±ΡƒΡ‚ΠΎΠ½Π° Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с нСя (ΠΏΠΎ ΠΊΠ»ΡŽΡ‡).

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

OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° глас ΠΈ Π΅ΠΌΠΎΡ†ΠΈΠΈ Π½Π° Raspberry Pi
Π‘ΡƒΡ‚ΠΎΠ½, Π³ΠΎΡ€ΠΈ!

Π Π°Π±ΠΎΡ‚Π° с глас

Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ pyaudio Π·Π° улавянС Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΡ‚ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π° ΠΈ webrtcvad Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΡˆΡƒΠΌΠ° ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° глас. ОсвСн Ρ‚ΠΎΠ²Π° Ρ‰Π΅ създадСм опашка, към която асинхронно Ρ‰Π΅ добавямС ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅ гласови ΠΈΠ·Π²Π°Π΄ΠΊΠΈ.

Въй ΠΊΠ°Ρ‚ΠΎ webrtcvad ΠΈΠΌΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π·Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° прСдоставСния Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ - Ρ‚ΠΎΠΉ трябва Π΄Π° бъдС Ρ€Π°Π²Π΅Π½ Π½Π° 10/20/30ms, Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π·Π° Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Π΅ΠΌΠΎΡ†ΠΈΠΈ (ΠΊΠ°ΠΊΡ‚ΠΎ Ρ‰Π΅ Π½Π°ΡƒΡ‡ΠΈΠΌ ΠΏΠΎ-късно) Π΅ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ΠΎ Π½Π° 48kHz Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, Ρ‰Π΅ улавянС Π½Π° ΠΏΠ°Ρ€Ρ‡Π΅Ρ‚Π° с Ρ€Π°Π·ΠΌΠ΅Ρ€ 48000Γ—20ms/1000Γ—1(ΠΌΠΎΠ½ΠΎ)=960 Π±Π°ΠΉΡ‚Π°. Webrtcvad Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ True/False Π·Π° всяка ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ части, ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° глас Π² частта.

НСка ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ слСдната Π»ΠΎΠ³ΠΈΠΊΠ°:

  • Π©Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ към списъка ΠΎΠ½Π΅Π·ΠΈ ΠΏΠ°Ρ€Ρ‡Π΅Ρ‚Π°, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° гласуванС; Π°ΠΊΠΎ няма гласуванС, Ρ‰Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ брояча Π½Π° ΠΏΡ€Π°Π·Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Ρ‡Π΅Ρ‚Π°.
  • Ако Π±Ρ€ΠΎΡΡ‡ΡŠΡ‚ Π½Π° ΠΏΡ€Π°Π·Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Ρ‡Π΅Ρ‚Π° Π΅ >=30 (600 ms), Ρ‚ΠΎΠ³Π°Π²Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° списъка с Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ΠΈ ΠΏΠ°Ρ€Ρ‡Π΅Ρ‚Π°; Π°ΠΊΠΎ Π΅ >250, Ρ‚ΠΎΠ³Π°Π²Π° Π³ΠΎ добавямС към ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π°; Π°ΠΊΠΎ Π½Π΅, считамС, Ρ‡Π΅ Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π° ΠΎΡ‚ записа Π½Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ, Π·Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄Π°Π΄Π΅ към ΠΌΠΎΠ΄Π΅Π»Π°, Π·Π° Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° говорСщия.
  • Ако Π±Ρ€ΠΎΡΡ‡ΡŠΡ‚ Π½Π° ΠΏΡ€Π°Π·Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Ρ‡Π΅Ρ‚Π° всС ΠΎΡ‰Π΅ Π΅ < 30 ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° списъка с Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ΠΈ ΠΏΠ°Ρ€Ρ‡Π΅Ρ‚Π° надвишава 300, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° към ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° Π·Π° ΠΏΠΎ-Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€Π°Π½Π΅. (Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ΠΌΠΎΡ†ΠΈΠΈΡ‚Π΅ са склонни Π΄Π° сС промСнят с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ)

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

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

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

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

Π’Ρ€Π΅ΠΌΠ΅ Π΅ Π΄Π° ΠΏΠΎΡ‚ΡŠΡ€ΡΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΡ‚ΠΎ пространство, ΠΎΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° github, Google, Π½ΠΎ Π½Π΅ забравяйтС, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Π’ΠΎΠ²Π° Π΅ доста Ρ‚Ρ€ΡƒΠ΄Π½Π° част, Π·Π°Ρ‰ΠΎΡ‚ΠΎ трябва Π΄Π° тСстватС ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ Π²ΡŠΡ€Ρ…Ρƒ Π²Π°ΡˆΠΈΡ‚Π΅ Π²Ρ…ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ освСн Ρ‚ΠΎΠ²Π° Π΄Π° Π³ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚Π΅ във Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° OpenVINO - IR (Intermediate Representation). ΠžΠΏΠΈΡ‚Π°Ρ…ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 5-7 Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚ github ΠΈ Π°ΠΊΠΎ ΠΌΠΎΠ΄Π΅Π»ΡŠΡ‚ Π·Π° Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Π΅ΠΌΠΎΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²Π΅Π΄Π½Π°Π³Π°, Ρ‚ΠΎΠ³Π°Π²Π° с гласовото Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Ρ‡Π°ΠΊΠ°ΠΌΠ΅ ΠΏΠΎ-дълго - Ρ‚Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠΎ-слоТни Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ.

НиС сС фокусирамС Π²ΡŠΡ€Ρ…Ρƒ слСдното:

  • Π•ΠΌΠΎΡ†ΠΈΠΈ ΠΎΡ‚ гласа - https://github.com/alexmuhr/Voice_Emotion
    Π Π°Π±ΠΎΡ‚ΠΈ Π½Π° слСдния ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ: Π°ΡƒΠ΄ΠΈΠΎΡ‚ΠΎ сС нарязва Π½Π° пасаТи с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π·Π° всСки ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ пасаТи Π½ΠΈΠ΅ ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ MFCC ΠΈ слСд Ρ‚ΠΎΠ²Π° Π³ΠΈ ΠΏΡ€Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° CNN
  • Гласово Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ - https://github.com/linhdvu14/vggvox-speaker-identification
    Π’ΡƒΠΊ вмСсто MFCC Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ със спСктрограма, слСд FFT ΠΏΠΎΠ΄Π°Π²Π°ΠΌΠ΅ сигнала към CNN, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π½Π° ΠΈΠ·Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎ прСдставянС Π½Π° гласа.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠ°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с тСорията. OpenVINO Π²ΠΊΠ»ΡŽΡ‡Π²Π° няколко ΠΌΠΎΠ΄ΡƒΠ»Π°:

  • ΠžΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ Model Zoo, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ във вашия ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚
  • Model Optimzer, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠΎΠ΄Π΅Π» ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π°ΠΌΠΊΠΎΠ²ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ (Tensorflow, ONNX ΠΈ Ρ‚.Π½.) във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Intermediate Representation, с ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ
  • Inference Engine Π²ΠΈ позволява Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² IR Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° процСсори Intel, Ρ‡ΠΈΠΏΠΎΠ²Π΅ Myriad ΠΈ ускоритСли Neural Compute Stick
  • Най-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π°Ρ‚Π° вСрсия Π½Π° OpenCV (с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Inference Engine)
    ВсСки ΠΌΠΎΠ΄Π΅Π» Π² IR Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сС описва с Π΄Π²Π° Ρ„Π°ΠΉΠ»Π°: .xml ΠΈ .bin.
    ΠœΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ сС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚ Π² IR Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‡Ρ€Π΅Π· Model Optimizer, ΠΊΠ°ΠΊΡ‚ΠΎ слСдва:

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

    --data_type Π²ΠΈ позволява Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, с ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»ΡŠΡ‚. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС FP32, FP16, INT8. Π˜Π·Π±ΠΎΡ€ΡŠΡ‚ Π½Π° оптималния Ρ‚ΠΈΠΏ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄Π°Π΄Π΅ Π΄ΠΎΠ±ΡŠΡ€ Ρ‚Π»Π°ΡΡŠΠΊ Π½Π° производитСлността.
    --input_shape ΠΏΠΎΠΊΠ°Π·Π²Π° размСрността Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π° промяна ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° Π² C++ API, Π½ΠΎ Π½ΠΈΠ΅ Π½Π΅ ΠΊΠΎΠΏΠ°Ρ…ΠΌΠ΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π΄Π°Π»Π΅Ρ‡ ΠΈ просто Π³ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ Π·Π° Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅.
    Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π½Π΅ΠΊΠ° сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° Π·Π°Ρ€Π΅Π΄ΠΈΠΌ Π²Π΅Ρ‡Π΅ конвСртирания ΠΌΠΎΠ΄Π΅Π» Π² IR Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‡Ρ€Π΅Π· DNN ΠΌΠΎΠ΄ΡƒΠ»Π° Π² OpenCV ΠΈ Π΄Π° Π³ΠΎ ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΈΠΌ към Π½Π΅Π³ΠΎ.

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

    ΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ‚ Ρ€Π΅Π΄ Π² Ρ‚ΠΎΠ·ΠΈ случай Π²ΠΈ позволява Π΄Π° прСнасочитС изчислСнията към Neural Compute Stick, основнитС изчислСния сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π½Π° процСсора, Π½ΠΎ Π² случая Π½Π° Raspberry Pi Ρ‚ΠΎΠ²Π° няма Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ, Ρ‰Π΅ Π²ΠΈ трябва стик.

    Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π΅ слСдната: раздСлямС Π½Π°ΡˆΠ΅Ρ‚ΠΎ Π°ΡƒΠ΄ΠΈΠΎ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ (Π·Π° нас Ρ‚ΠΎΠ²Π° Π΅ 0.4 s), ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°ΠΌΠ΅ всСки ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ Π² MFCC, ΠΊΠΎΠΉΡ‚ΠΎ слСд Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ΄Π°Π²Π°ΠΌΠ΅ към ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°:

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

    Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π½Π΅ΠΊΠ° Π²Π·Π΅ΠΌΠ΅ΠΌ Π½Π°ΠΉ-чСсто срСщания клас Π·Π° всички ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π·Π° Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½ Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° измислятС Π½Π΅Ρ‰ΠΎ Ρ‚Π²ΡŠΡ€Π΄Π΅ нСясно, само Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅. ИмамС ΠΎΡ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΠΌ - Ρ‰Π΅ сС Π·Π°Π΅ΠΌΠ΅ΠΌ с гласовото Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅. НСобходимо Π΅ Π΄Π° сС създадС някаква Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π² която Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ спСктрограми Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ записани гласовС. Въй ΠΊΠ°Ρ‚ΠΎ остава ΠΌΠ°Π»ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅, Ρ‰Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ възмоТно Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π΅.

    А ΠΈΠΌΠ΅Π½Π½ΠΎ, Π½ΠΈΠ΅ създавамС скрипт Π·Π° запис Π½Π° гласов ΠΎΡ‚ΠΊΡŠΡ (Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ описано ΠΏΠΎ-Π³ΠΎΡ€Π΅, само ΠΊΠΎΠ³Π°Ρ‚ΠΎ бъдС ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ ΠΎΡ‚ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°Ρ‚Π°, Ρ‚ΠΎΠΉ Ρ‰Π΅ Π·Π°ΠΏΠ°Π·ΠΈ гласа във Ρ„Π°ΠΉΠ»).

    Π”Π° ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅:

    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 ΠΏΡ€Π΅Π· tcp ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»).

    ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π΅Ρ‚Π°ΠΏ Π΅ Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° информация ΠΎΡ‚ raspberry, тоСст ΠΏΡ€Π΅Π΄ΠΈΠΊΡ‚ΠΎΡ€ΠΈ, ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈ Π² json, ΠΊΠΎΠΈΡ‚ΠΎ сС записват Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ срСдата Π½Π° тяхното ΠΏΡŠΡ‚ΡƒΠ²Π°Π½Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° статистика Π·Π° Смоционалния Ρ„ΠΎΠ½ Π½Π° потрСбитСля Π·Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π΄ΠΎ интСрфСйса, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ‚ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° websocket. ЦСлият Π±Π΅ΠΊΠ΅Π½Π΄ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° golang; Ρ‚ΠΎΠΉ Π΅ ΠΈΠ·Π±Ρ€Π°Π½, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ подходящ Π·Π° асинхронни Π·Π°Π΄Π°Ρ‡ΠΈ, с ΠΊΠΎΠΈΡ‚ΠΎ goroutines сС справят Π΄ΠΎΠ±Ρ€Π΅.
    ΠŸΡ€ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° потрСбитСлят сС рСгистрира ΠΈ въвСТда Π² структурата, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅. И потрСбитСлят, ΠΈ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ сС Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Ρ‚ Π² ΠΎΠ±Ρ‰ Ρ…ΡŠΠ±, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° Π²Π΅Ρ‡Π΅ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ (към абонирания Ρ„Ρ€ΠΎΠ½Ρ‚), ΠΈ Π°ΠΊΠΎ потрСбитСлят Π·Π°Ρ‚Π²ΠΎΡ€ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° (ΠΌΠ°Π»ΠΈΠ½Π° ΠΈΠ»ΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚), Ρ‚ΠΎΠ³Π°Π²Π° нСговият Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ‚ сС Π°Π½ΡƒΠ»ΠΈΡ€Π° ΠΈ Ρ‚ΠΎΠΉ сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° ΠΎΡ‚ Π³Π»Π°Π²ΠΈΠ½Π°Ρ‚Π°.

    OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° глас ΠΈ Π΅ΠΌΠΎΡ†ΠΈΠΈ Π½Π° Raspberry Pi
    Π§Π°ΠΊΠ°ΠΌΠ΅ Π²Ρ€ΡŠΠ·ΠΊΠ° ΠΎΡ‚Π·Π°Π΄

    Front-end Π΅ ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написано Π½Π° JavaScript, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° React Π·Π° ускоряванС ΠΈ опростяванС Π½Π° процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π¦Π΅Π»Ρ‚Π° Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π° Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π² Π·Π°Π΄Π½Π°Ρ‚Π° част ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° Raspberry Pi. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π°Ρ‚Π° ΠΈΠΌΠ° сСкционно ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€Π°Π½Π΅, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° react-router, Π½ΠΎ основната страница, която прСдставлява интСрСс, Π΅ Π³Π»Π°Π²Π½Π°Ρ‚Π° страница, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° тСхнологията WebSocket. Raspberry Pi ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° глас, опрСдСля Π΄Π°Π»ΠΈ Ρ‚ΠΎΠΉ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π»ΠΈΡ†Π΅ ΠΎΡ‚ рСгистрираната Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° списък с вСроятности Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π°ΠΉ-Π°ΠΊΡ‚ΡƒΠ°Π»Π½ΠΈΡ‚Π΅ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΠΊΠ°Π·Π²Π° Π°Π²Π°Ρ‚Π°Ρ€Π° Π½Π° Ρ‡ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π°ΠΉ-вСроятно Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π² ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Смоцията, с която Ρ‚ΠΎΠΉ произнася Π΄ΡƒΠΌΠΈΡ‚Π΅.

    OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° глас ΠΈ Π΅ΠΌΠΎΡ†ΠΈΠΈ Π½Π° Raspberry Pi
    Начална страница с Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈ

    Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

    НС бСшС възмоТно Π΄Π° Π·Π°Π²ΡŠΡ€ΡˆΠΈΠΌ всичко, ΠΊΠ°ΠΊΡ‚ΠΎ бСшС ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ, просто нямахмС Π²Ρ€Π΅ΠΌΠ΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ основната Π½Π°Π΄Π΅ΠΆΠ΄Π° бСшС Π² Π΄Π΅ΠΌΠΎΡ‚ΠΎ, Ρ‡Π΅ всичко Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ. Π’ прСзСнтацията Ρ‚Π΅ Ρ€Π°Π·ΠΊΠ°Π·Π°Ρ…Π° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ всичко, ΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ са Π²Π·Π΅Π»ΠΈ, ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ са срСщнали. БлСдвашС дСмонстрационната част - СкспСрти обикаляха стаята Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Ρ€Π΅Π΄ ΠΈ сС ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°Π²Π°Ρ…Π° Π΄ΠΎ всСки Π΅ΠΊΠΈΠΏ, Π·Π° Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°Ρ‚ работСщия ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ. Π’Π΅ ΡΡŠΡ‰ΠΎ Π½ΠΈ Π·Π°Π΄Π°Π΄ΠΎΡ…Π° Π²ΡŠΠΏΡ€ΠΎΡΠΈ, всСки ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π½Π° своята част, оставиха ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° Π½Π° Π»Π°ΠΏΡ‚ΠΎΠΏΠ° ΠΈ всичко наистина Ρ€Π°Π±ΠΎΡ‚ΠΈ спорСд очакванията.

    НСка ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠ°, Ρ‡Π΅ ΠΎΠ±Ρ‰Π°Ρ‚Π° Ρ†Π΅Π½Π° Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ бСшС $150:

    • Raspberry Pi 3 ~ $35
    • Google AIY Voice Bonnet (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ такса Π·Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅Π») ~ 15 $
    • Intel NCS 2 ~ 100$

    Как Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠΌ:

    • Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ рСгистрация ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° - поискайтС Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ тСкста, ΠΊΠΎΠΉΡ‚ΠΎ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π½Π° случаСн ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ
    • Π”ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ ΠΎΡ‰Π΅ няколко ΠΌΠΎΠ΄Π΅Π»Π°: ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π° ΠΈ Π²ΡŠΠ·Ρ€Π°ΡΡ‚Ρ‚Π° ΠΏΠΎ глас
    • РаздСлянС Π½Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π²ΡƒΡ‡Π°Ρ‰ΠΈ гласовС (диаризация)

    Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅: https://github.com/vladimirwest/OpenEMO

    OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° глас ΠΈ Π΅ΠΌΠΎΡ†ΠΈΠΈ Π½Π° Raspberry Pi
    Π£ΠΌΠΎΡ€Π΅Π½ΠΈ, Π½ΠΎ щастливи смС

    Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ искам Π΄Π° благодаря Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΈ участницитС. Π‘Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΅ΠΊΠΈΠΏΠΈ Π»ΠΈΡ‡Π½ΠΎ Π½Π° нас Π½ΠΈ Π΄ΠΎΠΏΠ°Π΄Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° слСдСнС Π½Π° свободнитС мСста Π·Π° ΠΏΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅. Π—Π° нас Ρ‚ΠΎΠ²Π° бСшС ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π³ΠΎΡ‚ΠΈΠ½ΠΎ изТивяванС Π½Π° потапянС Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°. Надявам сС, Ρ‡Π΅ всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ интСрСсни ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Ρ‰Π΅ сС ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Ρ‚ Π² Ρ€Π΅Π³ΠΈΠΎΠ½ΠΈΡ‚Π΅, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ИИ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€