Π Π°Π±ΠΎΡΠ° ΠΌΠ΅ΡΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΊ πΌ

πΠΠ΅ΡΡΠ°Π΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π‘Π±Π΅ΡΠ΅, Π½ΠΎ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ Π΄Π΅ΡΡΡΡ ΠΊΡΡΠ³ΠΎΠ² 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.
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡ.
- ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΠΎΠ²ΠΎΡΡΡΠ΅Π³ΠΎ.
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠΎΠ½ΡΡΠΈΠ±ΡΡΡΠΈΡΡΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ Π°ΡΠ΄ΠΈΠΎ Π² ΡΠ΅ΠΊΡΡ
Π§ΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½ΡΠΊΡΠΈΠ±Π°ΡΠΈΡ ΠΈΠ· Π°ΡΠ΄ΠΈΠΎ Π² ΡΠ΅ΠΊΡΡ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅ΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ:
- ΠΡΡΠ°ΡΠΈΡΡ ΡΠ°ΡΡΠΈ ΡΠ΅ΡΠΈ ΠΈΠ· Π°ΡΠ΄ΠΈΠΎ.
- Π Π°ΡΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ Π½Π° ΠΏΠ°ΡΠ·Π°Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΡΡΡΠΌΠΈ ΡΠ΅ΡΠΈ.
- ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠ½ΠΊΡΡΠ°ΡΠΈΡ Π² ΡΠ΅ΠΊΡΡ.
ΠΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ΄Ρ Π΄Π΅Π»Π°ΡΡ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅ Ρ 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 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎ Π²ΡΠ΅ΠΌ ΡΡΠΈΠΌ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ. ΠΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π΄ΡΡΠ³Π°Ρ ΠΈΡΡΠΎΡΠΈΡ :)
ΠΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
- π NLP ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ²ΠΈΡΠΎΠ² ΠΎ ΠΏΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΡΠΊΠΈΡ Π²ΡΠ±ΠΎΡΠ°Ρ Π² Π‘Π¨Π
- π€ ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ NLP: ΠΈΠ·ΡΡΠ°Π΅ΠΌ ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ fastText
- ΠΠ±Π·ΠΎΡ ΡΠ΅ΡΡΡΡΡ
ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
NLP-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ π π¬
- NLP β ΡΡΠΎ Π²Π΅ΡΠ΅Π»ΠΎ! ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π½Π° Python
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ.
ΠΠ‘ 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 ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ. Π§Π΅ Π½Π΅ ΡΠ°ΠΊ? Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² 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
ΠΠΎΡ ΡΡΠΎ Π² ΠΈΡΠΎΠ³Π΅...
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
Command 'recasepunc/recasepunc.py predict recasepunc/checkpoint' returned non-zero exit status 1. ΠΊΡΠ΄Π° ΠΊΠΎΠΏΠ°ΡΡ Ρ ΡΡΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ Π½Π° Π²ΠΈΠ½Π΄Π΅
ΠΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠ΅ΡΠΈΠ»ΠΎΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ 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
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ vosk-recasepunc-ru-0.22 ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» Π² recasepunc ΡΠ°ΠΌ Π²ΡΠ΅ ΠΏΡΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠ°ΡΡΠ΅
Vosk Ρ ΠΎΡΠΎΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π½ΠΎ Π΅ΡΡΡ Π»ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π°ΡΠ΄ΠΈΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ΅ΠΊΡΡ ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Whisper. Wisper ΡΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ·ΡΠΊ ΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΡ ΡΠ΅ΡΡ Π² ΠΏΠ΅ΡΠ½ΡΡ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΡΡΠΌΠ½ΡΡ Π·Π°ΠΏΠΈΡΡΡ . Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ https://github.com/openai/whisper
ΠΡΠΈΠ²Π΅Ρ, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΡΠ΅ΡΠ΅Π½Ρ. ΠΠ»ΡΠ½Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ.
Π£ ΠΠ°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ diarization? ΠΈΠ΄Π΅Ρ Π·Π²ΠΎΠ½ΠΎΠΊ, Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΠΊΠΈΠ΄Π°ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΏΠΎ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡΠ°. Π² ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π£ΡΠ°ΡΡΠ½ΠΈΠΊ 2: ΠΠ±ΡΠ°ΡΠ°Π΅ΠΌ Π²Π°ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½.... ΡΡΡ ΠΊΡΡΠ° ΡΠ΅ΠΊΡΡΠ° Π₯ΠΎΡΠΎΡΠΎ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ. Π£ΡΠ°ΡΡΠ½ΠΈΠΊ 1: Π£ΡΠ°ΡΡΠ½ΠΈΠΊ 2: Π£ΡΠ°ΡΡΠ½ΠΈΠΊ 1: Π£ΡΠ°ΡΡΠ½ΠΈΠΊ 2: Π£ΡΠ°ΡΡΠ½ΠΈΠΊ 0:
ΠΠΎΡΠ»Π΅ ΡΡΡΠΎΠΊΠΈ mp3 = AudioSegment.from_mp3('Song.mp3') Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] ΠΠ΅ ΡΠ΄Π°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»
Π’Π°ΠΊΠ°Ρ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°, Π²Ρ Π½Π°ΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅?
ΠΡ Π·Π°Π±ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ pip install ffprobe
ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΏΠ°ΠΊΠ΅Ρ ffmpeg. apt install ffmpeg