30 июня 2022

πŸ—£οΈ РСшаСм Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° русской Ρ€Π΅Ρ‡ΠΈ Π² тСкст с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Vosk

Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ @Andrey_Totshin
Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ научимся ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€ΡƒΡΡΠΊΡƒΡŽ Ρ€Π΅Ρ‡ΡŒ Π² тСкст (транскрибация) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Vosk с Π΅Ρ‘ ML-модСлями.
πŸ—£οΈ РСшаСм Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° русской Ρ€Π΅Ρ‡ΠΈ Π² тСкст с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Vosk

Π Π°Π±ΠΎΡ‚Π° ΠΌΠ΅Ρ‡Ρ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ πŸ’Ό

Π Π°Π±ΠΎΡ‚Π° Π² Π‘Π±Π΅Ρ€Π΅: ΠΏΡ€ΠΎΠΉΠ΄ΠΈ собСсСдованиС ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠΎΡ„Ρ„Π΅Ρ€ Π·Π° 15 ΠΌΠΈΠ½ΡƒΡ‚

πŸ’­ΠœΠ΅Ρ‡Ρ‚Π°Π΅ΡˆΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π‘Π±Π΅Ρ€Π΅, Π½ΠΎ Π½Π΅ Ρ…ΠΎΡ‡Π΅ΡˆΡŒ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π΅ΡΡΡ‚ΡŒ ΠΊΡ€ΡƒΠ³ΠΎΠ² HR-собСсСдований? Π’Π΅ΠΏΠ΅Ρ€ΡŒ это ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ!

πŸ’‘AI-ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ Π·Π° 15 ΠΌΠΈΠ½ΡƒΡ‚ – ΠΈ Ρ‚Ρ‹ ΡƒΠΆΠ΅ Π½Π° шаг Π±Π»ΠΈΠΆΠ΅ ΠΊ своСй Π½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ„Ρ„Π΅Ρ€?
πŸ“Œ ЗарСгистрируйся
πŸ“Œ ΠŸΡ€ΠΎΠΉΠ΄ΠΈ AI-ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ
πŸ“Œ ΠŸΠΎΠ»ΡƒΡ‡ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь сразу ΠΆΠ΅!

HR большС Π½Π΅ тянут врСмя – Ρ€Π΅ΠΊΡ€ΡƒΡ‚Π΅Ρ€Ρ‹ свяТутся с Ρ‚ΠΎΠ±ΠΎΠΉ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… Π΄Π½Π΅ΠΉ! πŸš€

Π Π΅ΠΊΠ»Π°ΠΌΠ°. ПАО Π‘Π‘Π•Π Π‘ΠΠΠš, ИНН 7707083893. Erid 2VtzquscAwp


ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ΅Ρ€ΠΈΡŽ статСй ΠΏΠΎ практичСскому ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Python. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ транскрибации записи Ρ€Π΅Ρ‡ΠΈ ΠΈΠ· Π°ΡƒΠ΄ΠΈΠΎ Π² тСкст. Π­Ρ‚ΠΎ Π½Π΅ rocket science :) Π’Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΡƒΠΆΠ΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌΠΈ Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ ΠΈ довольно Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ (Π‘Π±Π΅Ρ€, Yandex). Моя Ρ†Π΅Π»ΡŒ – Π½Π΅ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π°: достаточно Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π½Π°Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python.

НаправлСниС СстСствСнного Π°Π½Π°Π»ΠΈΠ·Π° Ρ€Π΅Ρ‡ΠΈ – цСлая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π² NLP (Natural Language Processing). Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΎΡ‡Π΅Π½ΡŒ быстро считаСт, Π½ΠΎ Π²ΠΎΡ‚ с ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ смысла Ρƒ Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ быстро ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство слов Π² ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠΈ Β«Π’ΠΎΠΉΠ½Π° ΠΈ ΠΌΠΈΡ€Β», Π½ΠΎ с Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ смысла Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. А Π²ΠΎΡ‚ NLP пытаСтся Π΄ΠΎΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ Π΄ΠΎ смыслов.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Ρ‡ΡŒ, Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ пСрСвСсти Π² тСкст, Π° ΡƒΠΆΠ΅ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΈΠ·Ρƒ. ΠΠ°ΠΏΡ€ΡΠΌΡƒΡŽ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°ΡƒΠ΄ΠΈΠΎ – Ρ‚Π°ΠΊΠΎΠ³ΠΎ я Π½Π΅ встрСчал (ΠΏΠΎΠΏΡ€Π°Π²ΡŒΡ‚Π΅, Ссли Π΅ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΎΡ‡Π΅Π½ΡŒ интСрСсно ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ). Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΊΠ°ΠΊ Ρ€Π°Π· займСмся Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΎΠΉ Π°ΡƒΠ΄ΠΈΠΎ Π² тСкст.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°ΠΌ понадобится Python 3.8+, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для распознавания Ρ€Π΅Ρ‡ΠΈ – Vosk. НСмного ΠΏΡ€ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Vosk:

  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ 20+ языков ΠΈ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΎΠ².
  • Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· доступа ΠΊ сСти Π΄Π°ΠΆΠ΅ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах – Raspberry Pi, Android, iOS.
  • УстанавливаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pip3 install vosk Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… шагов.
  • Π‘Π΄Π΅Π»Π°Π½Π° для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π²ΡƒΠΊΠ°, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько популярных языков программирования – Java, C#, Javascript, Python.
  • ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ быстро Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ распознавания для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ точности распознавания.
  • ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ говорящСго.
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΈΡ‚ΡΡ ΠΈ поддСрТиваСтся.
πŸ€– Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° data scientist’а
πŸ€– Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Data scientist’а»
πŸ€–πŸŽ“ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Data Science для собСса
ΠŸΠΎΠ΄Ρ‚ΡΠ½ΡƒΡ‚ΡŒ свои знания ΠΏΠΎ DS Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Data Science для собСса»
πŸ€–πŸ§© Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ Data Science
Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ DS для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ Data ScienceΒ»

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π°ΡƒΠ΄ΠΈΠΎ Π² тСкст

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΠΊΡ€ΠΈΠ±Π°Ρ†ΠΈΡŽ ΠΈΠ· Π°ΡƒΠ΄ΠΈΠΎ Π² тСкст, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

  1. Π’Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ части Ρ€Π΅Ρ‡ΠΈ ΠΈΠ· Π°ΡƒΠ΄ΠΈΠΎ.
  2. Π Π°ΡΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π½Π° ΠΏΠ°ΡƒΠ·Π°Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ частями Ρ€Π΅Ρ‡ΠΈ.
  3. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΡŽ Π² тСкст.

ВсС дСйствия Π±ΡƒΠ΄Ρƒ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° машинС с Ubuntu 20 (Python 3.8) со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ:

  • CPU 2vCPU.
  • RAM 12GB.
  • HDD 20GB.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° использования Ρ‚Π°ΠΊΠΎΠ³ΠΎ количСства RAM Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ распознаваниС Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 50 Мб, которая Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π² Ρ€Π°Π·Ρ‹ мСньшС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π² Ρ€Π°Π±ΠΎΡ‚Π΅, Ρ‡Π΅ΠΌ полноцСнная модСль. ΠŸΡ€Π°Π²Π΄Π°, качСство распознавания Π² этом случаС ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ speech:

        mkdir speech
cd speech
    

Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ зависимости для Python:

        apt install python3-pip
pip3 install ffmpeg
pip3 install pydub
pip3 install vosk
pip3 install torch
pip3 install transformers
    

Π’Π°ΠΊΠΆΠ΅ скачиваСм ΠΈ распаковываСм модСль для распознавания русской Ρ€Π΅Ρ‡ΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

        curl -o ./model.zip https://alphacephei.com/vosk/models/vosk-model-ru-0.22.zip
unzip model.zip
mv vosk-model-ru-0.22/ model
rm -rf model.zip
    

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этих дСйствий ΠΌΡ‹ скопировали ΠΊ сСбС модСль, Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΅Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ скачанный Π°Ρ€Ρ…ΠΈΠ². Всё-Ρ‚Π°ΠΊΠΈ ΠΎΠ½ вСсит 1.5 Π“Π±. Для расстановки ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ дСйствия: скачиваСм Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ модСль вСсом 1.5 Π“Π±.

        curl -o recasepunc.zip https://alphacephei.com/vosk/models/vosk-recasepunc-ru-0.22.zip
unzip recasepunc.zip
mv vosk-recasepunc-ru-0.22/ recasepunc
rm -rf recasepunc.zip
    

Код Ρ„Π°ΠΉΠ»Π° app.py, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π°ΡƒΠ΄ΠΈΠΎ Π² тСкст.

        from vosk import Model, KaldiRecognizer, SetLogLevel
from pydub import AudioSegment
import subprocess
import json
import os

SetLogLevel(0)

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
if not os.path.exists("model"):
    print ("Please download the model from https://alphacephei.com/vosk/models and unpack as 'model' in the current folder.")
    exit (1)

# УстанавливаСм Frame Rate
FRAME_RATE = 16000
CHANNELS=1

model = Model("model")
rec = KaldiRecognizer(model, FRAME_RATE)
rec.SetWords(True)

# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ pydub Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π°ΡƒΠ΄ΠΈΠΎ
mp3 = AudioSegment.from_mp3('Song.mp3')
mp3 = mp3.set_channels(CHANNELS)
mp3 = mp3.set_frame_rate(FRAME_RATE)

# ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ Π² json
rec.AcceptWaveform(mp3.raw_data)
result = rec.Result()
text = json.loads(result)["text"]

# ДобавляСм ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΡŽ
cased = subprocess.check_output('python3 recasepunc/recasepunc.py predict recasepunc/checkpoint', shell=True, text=True, input=text)

# ЗаписываСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ„Π°ΠΉΠ» "data.txt"
with open('data.txt', 'w') as f:
    json.dump(cased, f, ensure_ascii=False, indent=4)
    

ПослСдний ΡˆΡ‚Ρ€ΠΈΡ… – Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Song.mp3 Π² нашСй Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с исполняСмым Ρ„Π°ΠΉΠ»ΠΎΠΌ app.py. Π—Π°Ρ‚Π΅ΠΌ запускаСм app.py. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» .mp3 ΠΈ Π½Π° основС Π½Π°Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Vosk сдСлаСт Ρ‚Ρ€Π°Π½ΡΠΊΡ€ΠΈΠ±Π°Ρ†ΠΈΡŽ Π°ΡƒΠ΄ΠΈΠΎ Π² тСкст с сохранСниСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² Ρ„Π°ΠΉΠ» data.txt.

***

Наша рСализация Ρ€Π΅ΡˆΠ°Π΅Ρ‚ поставлСнныС Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Но это скорСС MVP, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π°. Если ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°ΠΌΠΈ встанут Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π°ΡƒΠ΄ΠΈΠΎ (ΠΎΡ‚ часа ΠΈ Π±ΠΎΠ»Π΅Π΅), ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ многопоточности, балансировки ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ интСрСсного. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° VOSK позволяСт со всСм этим ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ. Но это ΡƒΠΆΠ΅ другая история :)

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

 
 
24 ноября 2024

Π”ΠΎΠ±Ρ€Ρ‹ΠΉ дСнь.

ОБ Linux Mint 21.1 Cinnamon 5.6.8 Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отсутствуСт.

Π’Ρ‹Π΄Π°Π΅Ρ‚: LOG (VoskAPI:ReadDataFiles():model.cc:213) Decoding params beam=13 max-active=7000 lattice-beam=6 LOG (VoskAPI:ReadDataFiles():model.cc:216) Silence phones 1:2:3:4:5:6:7:8:9:10 LOG (VoskAPI:RemoveOrphanNodes():nnet-nnet.cc:948) Removed 1 orphan nodes. LOG (VoskAPI:RemoveOrphanComponents():nnet-nnet.cc:847) Removing 2 orphan components. LOG (VoskAPI:Collapse():nnet-utils.cc:1488) Added 1 components, removed 2 LOG (VoskAPI:ReadDataFiles():model.cc:248) Loading i-vector extractor from model/ivector/final.ie LOG (VoskAPI:ComputeDerivedVars():ivector-extractor.cc:183) Computing derived variables for iVector extractor LOG (VoskAPI:ComputeDerivedVars():ivector-extractor.cc:204) Done. LOG (VoskAPI:ReadDataFiles():model.cc:279) Loading HCLG from model/graph/HCLG.fst LOG (VoskAPI:ReadDataFiles():model.cc:297) Loading words from model/graph/words.txt LOG (VoskAPI:ReadDataFiles():model.cc:308) Loading winfo model/graph/phones/word_boundary.int LOG (VoskAPI:ReadDataFiles():model.cc:315) Loading subtract G.fst model from model/rescore/G.fst LOG (VoskAPI:ReadDataFiles():model.cc:317) Loading CARPA model from model/rescore/G.carpa LOG (VoskAPI:ReadDataFiles():model.cc:323) Loading RNNLM model from model/rnnlm/final.raw Π£Π±ΠΈΡ‚ΠΎ

Π’ ΠΏΠ°ΠΏΠΊΠ΅ Ρ„Π°ΠΉΠ» data.txt отсутствуСт. Π§Π΅ Π½Π΅ Ρ‚Π°ΠΊ? Бпасибо!

18 июня 2024

НС получаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² jupyter notebook Π²ΠΎΡ‚ такая ошибка \AppData\Local\Temp\ipykernel_14808\3286289763.py in 19 CHANNELS = 1 20 ---> 21 model = Model(model_path) 22 rec = KaldiRecognizer(model, FRAME_RATE) 23 rec.SetWords(True)

E:\anaconda\envs\ML_Udemy\lib\site-packages\vosk__init.py in init__(self, model_path, model_name, lang) 55 self._handle = _c.vosk_model_new(model_path.encode("utf-8")) 56 if self._handle == _ffi.NULL: ---> 57 raise Exception("Failed to create a model") 58 59 def del(self):

Exception: Failed to create a model

Π’ΠΎΡ‚ Π»ΠΎΠ³ΠΈ [I 17:56:58.969 NotebookApp] Saving file at /Transcribition.ipynb LOG (VoskAPI:ReadDataFiles():model.cc:213) Decoding params beam=13 max-active=7000 lattice-beam=6 LOG (VoskAPI:ReadDataFiles():model.cc:216) Silence phones 1:2:3:4:5:6:7:8:9:10 LOG (VoskAPI:RemoveOrphanNodes():nnet-nnet.cc:948) Removed 1 orphan nodes. LOG (VoskAPI:RemoveOrphanComponents():nnet-nnet.cc:847) Removing 2 orphan components. LOG (VoskAPI:Collapse():nnet-utils.cc:1488) Added 1 components, removed 2 LOG (VoskAPI:ReadDataFiles():model.cc:248) Loading i-vector extractor from E:/work/model/ivector/final.ie LOG (VoskAPI:ComputeDerivedVars():ivector-extractor.cc:183) Computing derived variables for iVector extractor LOG (VoskAPI:ComputeDerivedVars():ivector-extractor.cc:204) Done. LOG (VoskAPI:ReadDataFiles():model.cc:279) Loading HCLG from E:/work/model/graph/HCLG.fst LOG (VoskAPI:ReadDataFiles():model.cc:297) Loading words from E:/work/model/graph/words.txt LOG (VoskAPI:ReadDataFiles():model.cc:308) Loading winfo E:/work/model/graph/phones/word_boundary.int LOG (VoskAPI:ReadDataFiles():model.cc:315) Loading subtract G.fst model from E:/work/model/rescore/G.fst LOG (VoskAPI:ReadDataFiles():model.cc:317) Loading CARPA model from E:/work/model/rescore/G.carpa LOG (VoskAPI:ReadDataFiles():model.cc:323) Loading RNNLM model from E:/work/model/rnnlm/final.raw [I 18:07:49.393 NotebookApp] Saving file at /Transcribition.ipynb

15 фСвраля 2024

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅...

LOG (VoskAPI:ReadDataFiles():model.cc:213) Decoding params beam=13 max-active=7000 lattice-beam=6 LOG (VoskAPI:ReadDataFiles():model.cc:216) Silence phones 1:2:3:4:5:6:7:8:9:10 LOG (VoskAPI:RemoveOrphanNodes():nnet-nnet.cc:948) Removed 1 orphan nodes. LOG (VoskAPI:RemoveOrphanComponents():nnet-nnet.cc:847) Removing 2 orphan components. LOG (VoskAPI:Collapse():nnet-utils.cc:1488) Added 1 components, removed 2 LOG (VoskAPI:ReadDataFiles():model.cc:248) Loading i-vector extractor from ./model/ivector/final.ie LOG (VoskAPI:ComputeDerivedVars():ivector-extractor.cc:183) Computing derived variables for iVector extractor LOG (VoskAPI:ComputeDerivedVars():ivector-extractor.cc:204) Done. LOG (VoskAPI:ReadDataFiles():model.cc:279) Loading HCLG from ./model/graph/HCLG.fst LOG (VoskAPI:ReadDataFiles():model.cc:297) Loading words from ./model/graph/words.txt LOG (VoskAPI:ReadDataFiles():model.cc:308) Loading winfo ./model/graph/phones/word_boundary.int LOG (VoskAPI:ReadDataFiles():model.cc:315) Loading subtract G.fst model from ./model/rescore/G.fst LOG (VoskAPI:ReadDataFiles():model.cc:317) Loading CARPA model from ./model/rescore/G.carpa LOG (VoskAPI:ReadDataFiles():model.cc:323) Loading RNNLM model from ./model/rnnlm/final.raw Traceback (most recent call last): File "c:\Users\kolde\Documents\TtS\main.py", line 21, in model = Model("./model") File "C:\Users\kolde\Documents\TtS\venv\lib\site-packages\vosk__init.py", line 57, in init__ raise Exception("Failed to create a model") Exception: Failed to create a model

06 фСвраля 2024

Command 'recasepunc/recasepunc.py predict recasepunc/checkpoint' returned non-zero exit status 1. ΠΊΡƒΠ΄Π° ΠΊΠΎΠΏΠ°Ρ‚ΡŒ с этой ошибкой, ΠΊΠΎΠ΄ исполнСн Π½Π° Π²ΠΈΠ½Π΄Π΅

24 ΠΌΠ°Ρ€Ρ‚Π° 2024

Π‘Ρ‹Π»Π° такая ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ€Π΅ΡˆΠΈΠ»ΠΎΡΡŒ установкой ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии transformers:
pip install transformers==4.16.2

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚ ΠŸΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡ‚Π΅ Π²ΠΎΡ‚ такая ошибка появляСтся

Traceback (most recent call last): File "/Users/dmitribernackij/pythonProject/main_2.py", line 33, in cased = subprocess.check_output('python3 recasepunc/recasepunc.py predict recasepunc/checkpoint', shell=True, text=True, input=text) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py", line 466, in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py", line 571, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command 'python3 recasepunc/recasepunc.py predict recasepunc/checkpoint' returned non-zero exit status 2.

Process finished with exit code 1

24 ноября 2023

Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ vosk-recasepunc-ru-0.22 ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² recasepunc Ρ‚Π°ΠΌ всС прописано Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅

10 фСвраля 2023

Vosk Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для прСобразования Π°ΡƒΠ΄ΠΈΠΎ записСй Π² тСкст это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Whisper. Wisper ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ язык ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Ρ‡ΡŒ Π² пСснях ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡˆΡƒΠΌΠ½Ρ‹Ρ… записях. Бсылка Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ https://github.com/openai/whisper

07 июня 2023

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, интСрСсный рСфСрСнс. Гляну ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

05 дСкабря 2024

Π£ Вас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ diarization? ΠΈΠ΄Π΅Ρ‚ Π·Π²ΠΎΠ½ΠΎΠΊ, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΊΠΈΠ΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ ΠΏΠΎ участникам Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°. Π² ΠΈΡ‚ΠΎΠ³Π΅ получаСтся Участник 2: ΠžΠ±Ρ€Π°Ρ‰Π°Π΅ΠΌ вашС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записан.... Ρ‚ΡƒΡ‚ ΠΊΡƒΡ‡Π° тСкста Π₯ΠΎΡ€ΠΎΡˆΠΎ. Бпасибо. Участник 1: Участник 2: Участник 1: Участник 2: Участник 0:

ПослС строки mp3 = AudioSegment.from_mp3('Song.mp3') Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ hp, ht, pid, tid = _winapi.CreateProcess(executable, args,

FileNotFoundError: [WinError 2] НС удаСтся Π½Π°ΠΉΡ‚ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

17 апрСля 2024

Вакая ΠΆΠ΅ ошибка, Π²Ρ‹ нашли Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅?

18 июля 2022

ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ локально ΠΏΠ°ΠΊΠ΅Ρ‚ ffmpeg. apt install ffmpeg

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

LIVE >

Подпишись

Π½Π° push-увСдомлСния