OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: распознаСм голос ΠΈ эмоции Π½Π° Raspberry Pi

30 ноября β€” 1 дСкабря Π² НиТнСм НовгородС ΠΏΡ€ΠΎΡˆΠ΅Π» OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½. Участникам ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с использованиСм Intel OpenVINO toolkit. ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ список ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹Ρ… Ρ‚Π΅ΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π½ΠΎ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π²Π°Π»ΠΎΡΡŒ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΏΠΎΠΎΡ‰Ρ€ΡΠ»ΠΎΡΡŒ использованиС ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ входят Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: распознаСм голос ΠΈ эмоции Π½Π° Raspberry Pi

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ расскаТСм ΠΏΡ€ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ создавали свой ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π² ΠΈΡ‚ΠΎΠ³Π΅ заняли ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто.

Π’ Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π΅ участвовало Π±ΠΎΠ»Π΅Π΅ 10 ΠΊΠΎΠΌΠ°Π½Π΄. ΠŸΡ€ΠΈΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€ΠΈΠ΅Ρ…Π°Π»ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅Π³ΠΈΠΎΠ½ΠΎΠ². ΠœΠ΅ΡΡ‚ΠΎΠΌ провСдСния Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π° Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ комплСкс β€œΠšΡ€Π΅ΠΌΠ»Π΅Π²ΡΠΊΠΈΠΉ Π½Π° ΠŸΠΎΡ‡Π°ΠΈΠ½Π΅β€, Π³Π΄Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Π²Π΅ΡˆΠ°Π½Ρ‹ старинныС Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ НиТнСго Новгорода, Π°Π½Ρ‚ΡƒΡ€Π°ΠΆΠ½ΠΎ! (напоминаю, Ρ‡Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ офис ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Intel располоТСн ΠΈΠΌΠ΅Π½Π½ΠΎ Π² НиТнСм НовгородС). На написаниС ΠΊΠΎΠ΄Π° участникам ΠΎΡ‚Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ 26 часов, Π² ΠΊΠΎΠ½Ρ†Π΅ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ своё Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ плюсом Π±Ρ‹Π»ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π΅ΠΌΠΎ-сСссии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всё Π·Π°Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠ΅ ΠΏΡ€Π°Π²Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, Π° Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ идСями Π² ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. ΠœΠ΅Ρ€Ρ‡, снСки, Π΅Π΄Π°, всё Ρ‚ΠΎΠΆΠ΅ Π±Ρ‹Π»ΠΎ!

ΠšΡ€ΠΎΠΌΠ΅ этого, компания Intel ΠΏΠΎ ТСланию прСдоставляла ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, Raspberry PI, Neural Compute Stick 2.

Π’Ρ‹Π±ΠΎΡ€ Π·Π°Π΄Π°Ρ‡ΠΈ

Одной ΠΈΠ· самых слоТных частСй ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Ρƒ со свободной Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ являСтся Π²Ρ‹Π±ΠΎΡ€ Π·Π°Π΄Π°Ρ‡ΠΈ. Π‘Ρ€Π°Π·Ρƒ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅ Π΅Ρ‰Ρ‘ Π½Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² анонсС Π±Ρ‹Π»ΠΎ сказано, Ρ‡Ρ‚ΠΎ это всячСски привСтствуСтся.

ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ входят Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π΅Π»ΠΈΠ·Π΅, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠΌ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΡ‡Π΅Π½ΡŒ слоТно ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈΠ· области ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ нСльзя Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с использованиСм OpenVINO, Π° Ссли Ρ‚Π°ΠΊΡƒΡŽ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‚ΠΎ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС слоТно Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€Π΅Π΄ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ. РСшаСм ΠΊΠΎΠΏΠ°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ β€” Π² сторону ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ Ρ€Π΅Ρ‡ΠΈ. РассматриваСм ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ эмоций ΠΏΠΎ Ρ€Π΅Ρ‡ΠΈ. НуТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² OpenVINO ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ модСль, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ эмоции Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΏΠΎ Π»ΠΈΡ†Ρƒ, Π½ΠΎ:

  • Π’ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ совмСщСнный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎ Π·Π²ΡƒΠΊΡƒ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ прирост Π² точности.
  • ΠšΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ ΡƒΠ·ΠΊΠΈΠΉ ΡƒΠ³ΠΎΠ» ΠΎΠ±Π·ΠΎΡ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π·ΠΎΠ½Ρƒ, трСбуСтся Π½Π΅ ΠΎΠ΄Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€Π°, Π·Π²ΡƒΠΊ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ограничСния.

Π Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌ идСю: возьмСм Π·Π° основу идСю для retail сСгмСнта. МоТно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ покупатСля Π½Π° кассах ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ². Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Π΅ΠΉ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π΅Π½ обслуТиваниСм ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ½ β€” ΠΌΠΎΠΆΠ½ΠΎ сразу Π·Π²Π°Ρ‚ΡŒ администратора Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ.
Π’ этом случаС Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ распознаваниС Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΏΠΎ голосу, это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ сотрудников ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΎΡ‚ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Π΅ΠΉ, Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΡƒΠΌΡƒ. Ну ΠΈ ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ самих сотрудников ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°, ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ атмосфСру Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π΅, Π·Π²ΡƒΡ‡ΠΈΡ‚ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ!

Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ трСбования ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ:

  • МалСнький Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ дСвайса
  • Π Π°Π±ΠΎΡ‚Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
  • Низкая Ρ†Π΅Π½Π°
  • ЛСгкая ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π² качСствС Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ дСвайса Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Raspberry Pi 3 c Intel NCS 2.

Π’ΡƒΡ‚ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π²Π°ΠΆΠ½ΡƒΡŽ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ NCS β€” Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с стандартными CNN Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ, Ссли ΠΆΠ΅ потрСбуСтся Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π½Ρ‘ΠΌ модСль с кастомными слоями, Ρ‚ΠΎ ΠΎΠΆΠΈΠ΄Π°ΠΉΡ‚Π΅ ΜΆΡ‚ΜΆΠ°ΜΆΠ½ΜΆΡ†ΜΆΠ΅ΜΆΠ²ΜΆ ̢с̢ ΜΆΠ±ΜΆΡƒΜΆΠ±ΜΆΠ½ΜΆΠΎΜΆΠΌΜΆ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π”Π΅Π»ΠΎ Π·Π° ΠΌΠ°Π»Ρ‹ΠΌ: Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π΄ΠΎΠ±Ρ‹Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½. ΠŸΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ USB-ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½, ΠΏΡ€Π°Π²Π΄Π° ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠΎ вмСстС с RPI. Но ΠΈ Ρ‚ΡƒΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ β€œΠ»Π΅ΠΆΠΈΡ‚ ΠΏΠΎΠ΄ боком”. Для записи голоса Ρ€Π΅ΡˆΠ°Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρƒ Voice Bonnet ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Google AIY Voice Kit, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅ΡΡ‚ΡŒ распаянный стСрСо ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½.

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Raspbian ΠΈΠ· рСпозитория AIY projects ΠΈ Π·Π°Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π° Ρ„Π»Π΅ΡˆΠΊΡƒ, тСстируСм, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΎΠ½Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π°ΡƒΠ΄ΠΈΠΎ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² 5 сСкунд ΠΈ сохранит Π² Ρ„Π°ΠΉΠ»ΠΈΠΊ):

arecord -d 5 -r 16000 test.wav

Π‘Ρ€Π°Π·Ρƒ ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½ ΠΎΡ‡Π΅Π½ΡŒ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π»ΠΎΠ²ΠΈΡ‚ ΡˆΡƒΠΌΡ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это, Π·Π°ΠΉΠ΄Π΅ΠΌ Π² alsamixer, Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ Capture devices ΠΈ снизим ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ сигнала Π΄ΠΎ 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 projects)

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

CΠΎΠ·Π΄Π°Π΄ΠΈΠΌ 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/30мс, Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ для распознавания эмоций (ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄Π°Π»Π΅Π΅ ΡƒΠ·Π½Π°Π΅ΠΌ) ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π½Π° датасСтС 48ΠΊΠ“Ρ†, Π±ΡƒΠ΄Π΅ΠΌ Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‡Π°Π½ΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 48000Γ—20мс/1000Γ—1(ΠΌΠΎΠ½ΠΎ)=960 Π±Π°ΠΉΡ‚. Webrtcvad Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ True/False для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… Ρ‡Π°Π½ΠΊΠΎΠ², Ρ‡Ρ‚ΠΎ соотвСтствуСт Π½Π°Π»ΠΈΡ‡ΠΈΡŽ ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡŽ голоса Π² Ρ‡Π°Π½ΠΊΠ΅.

Π Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ:

  • Π‘ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² list Ρ‚Π΅ Ρ‡Π°Π½ΠΊΠΈ, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ голос, Ссли голоса Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ счСтчик пустых Ρ‡Π°Π½ΠΊΠΎΠ².
  • Если счСтчик пустых Ρ‡Π°Π½ΠΊΠΎΠ² >=30 (600 мс), Ρ‚ΠΎ смотрим Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ листа Π½Π°ΠΊΠΎΠΏΠΈΠ²ΡˆΠΈΡ…ΡΡ Ρ‡Π°Π½ΠΊΠΎΠ², Ссли ΠΎΠ½ >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, Π³ΡƒΠ³Π»ΠΈΠΌ, Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ. Π­Ρ‚ΠΎ довольно слоТная Ρ‡Π°ΡΡ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ приходится Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° своих Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π° ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ 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 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ:

  • Open Model Zoo, ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² свой ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚
  • Model Optimzer, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ модСль ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² (Tensorflow, ONNX e.t.c) Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ 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 ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ forward Π½Π° Π½Π΅Ρ‘.

    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с), ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· этих ΠΎΠΊΠΎΠ½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ Π² MFCC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄Π°Π΄ΠΈΠΌ Π½Π° сСтку:

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

    ПослС возьмСм Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ класс для всСх ΠΎΠΊΠΎΠ½. ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ для Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π° ΠΈ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ слишком Π·Π°ΡƒΠΌΠ½ΠΎΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π΅ΡΡ‚ΡŒ врСмя. Π£ нас Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ, поэтому ΠΈΠ΄Π΅ΠΌ дальшС β€” разбираСмся с распознаваниСм ΠΏΠΎ голосу. НуТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ΠΊΡƒΡŽ Π±Π°Π·Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ спСктрограммы Π·Π°Ρ€Π°Π½Π΅Π΅ записанных голосов. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Ρ€Π΅ΡˆΠ°Π΅ΠΌ этот вопрос ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ.

    А ΠΈΠΌΠ΅Π½Π½ΠΎ, создаСм скрипт для записи ΠΎΡ‚Ρ€Ρ‹Π²ΠΊΠ° голоса (Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠ½ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ описано Π²Ρ‹ΡˆΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ голос Π² Ρ„Π°ΠΉΠ»ΠΈΠΊ).

    ΠŸΡ€ΠΎΠ±ΡƒΠ΅ΠΌ.:

    python3 voice_db/record_voice.py test.wav

    ЗаписываСм голоса Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ (Π² нашСм случаС Ρ‚Ρ€ΠΎΠΈΡ… Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹)
    Π”Π°Π»Π΅Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ записанного голоса выполняСм fast fourier transform, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ спСктрограмму ΠΈ сохраняСм Π² Π²ΠΈΠ΄Π΅ numpy array (.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)

    ПослС получСния эмбСддинга ΠΈΠ· ΠΏΡ€ΠΎΠ·Π²ΡƒΡ‡Π°Π²ΡˆΠ΅Π³ΠΎ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° смоТСм ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠΎΠΌΡƒ ΠΎΠ½ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚, взяв cosine distance ΠΎΡ‚ ΠΎΡ‚Ρ€Ρ‹Π²ΠΊΠ° Π΄ΠΎ всСх голосов Π² Π±Π°Π·Π΅ (Ρ‡Π΅ΠΌ мСньшС, Ρ‚Π΅ΠΌ вСроятнСС) β€” для Π΄Π΅ΠΌΠΎ ΠΌΡ‹ выставили ΠΏΠΎΡ€ΠΎΠ³ 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).

    ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ этапом являСтся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с распбСрри, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² json ΠΏΡ€Π΅Π΄ΠΈΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° сСрСдинС своСго ΠΏΡƒΡ‚ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π΄Π°Π±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ статистику ΠΎΠ± ΡΠΌΠΎΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΠ½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π·Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄. Π”Π°Π»Π΅Π΅ этот ΠΏΠ°ΠΊΠ΅Ρ‚ отправляСтся Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ подписку ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с эндпоинта вСбсокСта. Π’Π΅ΡΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ бэкСнд построСн Π½Π° языкС golang, Π²Ρ‹Π±ΠΎΡ€ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠ°Π» Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для асинхронных Π·Π°Π΄Π°Ρ‡, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π³ΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ.
    ΠŸΡ€ΠΈ доступС ΠΊ эндпоинту ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ рСгистрируСтся ΠΈ заносится Π² структуру, Π·Π°Ρ‚Π΅ΠΌ происходит ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ сообщСния. И ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΈ сообщСниС заносятся Π² ΠΎΠ±Ρ‰ΠΈΠΉ hub, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сообщСния ΡƒΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ дальшС (Π½Π° подписанный Ρ„Ρ€ΠΎΠ½Ρ‚), Π° Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ соСдинСниС (распбСрри ΠΈΠ»ΠΈ Ρ„Ρ€ΠΎΠ½Ρ‚), Ρ‚ΠΎ Π΅Π³ΠΎ подписка аннулируСтся, ΠΈ ΠΎΠ½ удаляСтся ΠΈΠ· hub.

    OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: распознаСм голос ΠΈ эмоции Π½Π° Raspberry Pi
    ОТидаСм ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ с бэка

    Front-end прСдставляСт собой web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС Π½Π° JavaScript с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ React для ускорСния ΠΈ упрощСния процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ЦСлью Π΄Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния являСтся визуализация Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π½Π° back-end сторонС ΠΈ нСпосрСдствСнно Raspberry Pi. На страницС имССтся Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³ ΠΏΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ react-router, Π½ΠΎ основной интСрСс прСдставляСт главная страница, Π³Π΄Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ поступаСт Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… с сСрвСра ΠΏΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ WebSocket. Raspberry Pi Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ голос, опрСдСляСт ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ ΠΈΠ· зарСгистрированной Π±Π°Π·Ρ‹ ΠΈ высылаСт список probability ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ послСдниС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π°Π²Π°Ρ‚Π°Ρ€ΠΊΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ с наибольшСй Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π² ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΌΠΎΡ†ΠΈΡŽ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ произносит слова.

    OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: распознаСм голос ΠΈ эмоции Π½Π° Raspberry Pi
    Главная страница с обновляСмыми ΠΏΡ€Π΅Π΄ΠΈΠΊΡ‚Π°ΠΌΠΈ

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

    НС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π΄ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ всё Π΄ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½Π½ΠΎΠ³ΠΎ, банально Π½Π΅ успСли, поэтому главная Π½Π°Π΄Π΅ΠΆΠ΄Π° Π±Ρ‹Π»Π° Π½Π° Π΄Π΅ΠΌΠΎ, Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всё Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π’ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΈ рассказали ΠΏΡ€ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ всё устроСно, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ взяли, с ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ. Π”Π°Π»Π΅Π΅ Π±Ρ‹Π»Π° Ρ‡Π°ΡΡ‚ΡŒ Π΄Π΅ΠΌΠΎ β€” экспСрты Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ ΠΏΠΎ Π·Π°Π»Ρƒ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ. Π—Π°Π΄Π°Π²Π°Π»ΠΈ вопросы ΠΈ Π½Π°ΠΌ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π» ΠΏΠΎ своСй части, Π½Π° Π½ΠΎΡƒΡ‚Π΅ оставили Π²Π΅Π±, ΠΈ всё Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, ΠΊΠ°ΠΊ ΠΈ оТидалось.

    ΠžΡ‚ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ общая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ нашСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ составила 150$:

    • Raspberry Pi 3 ~ 35$
    • Google AIY Voice Bonnet (ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρƒ respeaker) ~ 15$
    • Intel NCS 2 ~ 100$

    Как ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ:

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

    Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ: https://github.com/vladimirwest/OpenEMO

    OpenVINO Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½: распознаСм голос ΠΈ эмоции Π½Π° Raspberry Pi
    Π£ΡΡ‚Π°Π²ΡˆΠΈΠ΅, Π½ΠΎ счастливыС ΠΌΡ‹

    Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ хочСтся ΡΠΊΠ°Π·Π°Ρ‚ΡŒ спасибо ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌ ΠΈ участникам. Из ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π»ΠΈΡ‡Π½ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° свободных ΠΏΠ°Ρ€ΠΊΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… мСст. Для нас это Π±Ρ‹Π» Π΄ΠΈΠΊΠΎ ΠΊΡ€ΡƒΡ‚ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚ погруТСния Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НадСюсь, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π³ΠΈΠΎΠ½Π°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ всё большС интСрСсных мСроприятий, Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΏΠΎ AI Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅.

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