ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ! ΠΠ° ΡΠ²ΡΠ·ΠΈ Π΅Π½ΠΎΡΠΈΠΊ π¦ Π ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π² ΡΡΠΎΠΉ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΡΡΠ°ΡΡΠ΅ (Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°) Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ π¬ ΡΠ°ΡΠ° Π½Π° Python. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΊΠ°ΠΊ Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π·Π²ΡΠΊ Π² Python ΠΈ ΡΠΆΠΈΠΌΠ°ΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Opus.
Π‘ΠΏΠ΅ΡΠ²Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅ π« Π― Ρ ΠΎΡΠ΅Π» Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ°ΡΠΈ ΠΎΠΏΠΈΡΠ°ΡΡ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΏΠΈΡΠΈ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π°ΡΠ΄ΠΈΠΎ. ΠΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ Π² ΠΎΠ΄Π½Ρ ΡΡΠΎ Π²ΡΡ Π½Π΅ Π²Π»Π΅Π·Π΅Ρ Π΄Π° ΠΈ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π±ΡΠ΄Π΅Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ π«£ Π’Π°ΠΊ ΡΡΠΎ Π² ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π·Π°ΠΏΠΈΡΡ ΠΈ ΡΠΆΠ°ΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π·Π²ΡΠΊΠ°.
πΠ²ΠΠΎΠ΄Π½Π°Ρ ΡΠ°ΡΡΡ
Π ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Π½Π°ΡΠ°Π» ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°ΡΠ° Ρ Π½ΡΠ»Ρ Π½Π° Python. Π Π½Π΅ΠΉ Ρ ΠΊΠΎΡΠΎΡΠΊΠΎ ΠΎΠΏΠΈΡΠ°Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°ΡΠ° ΠΈ ΡΠ΅Π³ΠΎ Π²ΡΡ Π½Π°ΡΠ°Π»ΠΎΡΡ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Π±Ρ Ρ ΠΎΡΠ΅Π» ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π½Π° Π°ΡΠ΄ΠΈΠΎΠ·Π²ΠΎΠ½ΠΊΠ°Ρ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΡΠ»ΠΎ Ρ ΠΌΠ΅Π½Ρ Π»ΡΠ²ΠΈΠ½ΡΡ Π΄ΠΎΠ»Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠ±ΠΎΠΉ ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΏΡΠΎΡΠΈΡΠ°Π² ΡΠΎ, ΠΊΠ°ΠΊ Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π·Π²ΠΎΠ½ΠΊΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°ΡΠ΄ΠΈΠΎ, Π·Π°ΠΊΠΈΠ΄Π°Π΅Ρ ΠΌΠ΅Π½Ρ ΠΊΠ°ΠΌΠ½ΡΠΌΠΈ. ΠΠ΅ Π½Π°Π΄ΠΎ, ΠΏΠΎΠ·ΡΠ»ΡΠ²ΡΡΠ°, Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΡΡ π
ΠΠ΅ΡΠ΅Π΄ΠΎ ΠΌΠ½ΠΎΠΉ ΡΡΠΎΡΠ»Π° Π·Π°Π΄Π°ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π³ΠΎΠ»ΠΎΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python, Π΄Π° Π΅ΡΡ ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±ΡΠ΅ Π² ΡΠ΅ΠΎΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π°ΡΠ΄ΠΈΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠ΄ΠΈΠΎΠ·Π²ΠΎΠ½ΠΎΠΊ (ΠΈΠ»ΠΈ Π°ΡΠ΄ΠΈΠΎΠΏΠΎΡΠΎΠΊ) - ΡΡΠΎ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊΡΠΎΡΠ΅ΡΠ½ΡΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠ² Π°ΡΠ΄ΠΈΠΎ ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΊ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ. ΠΡΠΎΡΠ΅ΡΠ½ΡΠ΅ ΠΎΡΡΠ΅Π·ΠΊΠΈ Π΅ΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°Π½ΠΊΠ°ΠΌΠΈ, Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π°ΡΠ΄ΠΈΠΎΠ·Π²ΠΎΠ½ΠΊΠ° - Π°ΡΠ΄ΠΈΠΎΡΠ°Π½ΠΊΠ°ΠΌΠΈ. ΠΡΠ΄ΠΈΠΎΡΠ°Π½ΠΊ - ΡΡΠΎ ΠΊΡΠΎΡΠ΅ΡΠ½ΡΠΉ ΠΎΡΡΠ΅Π·ΠΎΠΊ Π·Π²ΡΠΊΠ° (ΠΎΠ±ΡΡΠ½ΠΎ 20 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄).
π‘ Π Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ΄ΠΈΠΎΡΠ°Π½ΠΊ ΡΡΠΎ 20 ΠΌΡ, ΡΠΎ 1 ΡΠ΅ΠΊΡΠ½Π΄Π° Π°ΡΠ΄ΠΈΠΎ ΡΡΠΎ 50 ΡΠ°ΠΊΠΈΡ ΡΠ°Π½ΠΊΠΎΠ².
ΠΡ, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅. Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠΈ ΠΊΡΠΎΡΠ΅ΡΠ½ΡΠ΅ ΠΎΡΡΠ΅Π·ΠΊΠΈ Π°ΡΠ΄ΠΈΠΎ Π² Python.
πΠΠ°ΠΊ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π³ΠΎΠ»ΠΎΡ Π² Python?
ΠΠ΄Π΅ΡΡ Π½Π°ΠΌ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° PyAudio, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π°Ρ ΠΌΠΈΠΊΡΠΎΡΠΎΠ½ Π² ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ.
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ΅ΡΠ΅Π· PIP:
pip install pyaudio
ΠΠ°Π»Π΅Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ PyAudio:
import pyaudio
pa = pyaudio.PyAudio()
ΠΠΎΡΠ»Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎΡΠΎΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ:
input_stream = pa.open(
format=pyaudio.paInt16,
channels=1,
rate=16000,
input=True,
frames_per_buffer=960,
stream_callback=record_chunk
)
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ ΡΡΠΎ Π·Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ:
- format β ΡΡΠΎ ΡΠΎΡΠΌΠ°Ρ Π·Π²ΡΠΊΠ°. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠΎΠ½ΠΎ Π°ΡΠ΄ΠΈΠΎ 16 Π±ΠΈΡ.
- channels β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ΄ΠΈΠΎΠΊΠ°Π½Π°Π»ΠΎΠ². Π£ Π½Π°Ρ ΡΡΠΎ ΠΌΠΎΠ½ΠΎ, ΡΠΎ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Π½Π°Π».
- rate β ΡΠ°ΡΡΠΎΡΠ° Π΄ΠΈΡΠΊΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ±ΠΎΡΠΎΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ 16000 Π²ΡΠ±ΠΎΡΠΎΠΊ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π§Π΅ΠΌ Π²ΡΡΠ΅ ΡΡΠΎΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π·Π²ΡΠΊΠ°.
- input = True β ΠΏΠΎΡΠΎΠΊ Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° Π·Π°ΠΏΠΈΡΡ Π·Π²ΡΠΊΠ°.
- frames_per_buffer β ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π½ΠΊΠ° Π² Π±Π°ΠΉΡΠ°Ρ .
- stream_callback β ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΠΈΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π½ΠΊΠ°.
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ ΠΊΠ°ΠΊΠ°Ρ Π±ΡΠ΄Π΅Ρ Π΄Π»ΠΈΠ½Π½Π° Ρ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½ΠΊΠ°? ΠΡ Π·Π½Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π½ΠΊΠ° ΠΈ ΡΠ°ΡΡΠΎΡΡ Π΄ΠΈΡΠΊΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ. Π§ΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π΄Π»ΠΈΠ½Ρ ΡΠ°Π½ΠΊΠ°, Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΡΡΠΎΡΡ Π΄ΠΈΡΠΊΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°Π½ΠΊΠ°.
Π£ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π΄Π»ΠΈΠ½Π°:
16000/960=16.6 ΠΌΡ.
ΠΡΠΈΠ²Π΅Π΄Ρ ΡΠΊΡΠΈΠ½ΡΠΎΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π·Π°ΠΏΠΈΡΠΈ Π·Π²ΡΠΊΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π΄Π»ΠΈΠ½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π½ΠΊΠ°, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ΄Ρ ΡΡΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΠ°Π½ΠΊΠΎΠ² (ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ).
Π§ΡΠΎ Π² ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ? Π― Π·Π°ΠΏΡΡΠΊΠ°Ρ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠΈ Π·Π²ΡΠΊΠ° Ρ ΠΌΠΈΠΊΡΠΎΡΠΎΠ½Π° ΠΈ ΠΏΠΎΠ»ΡΡΠ°Ρ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ Callback ΡΠ°Π½ΠΊΠΈ Ρ ΠΌΠΈΠΊΡΠΎΡΠΎΠ½Π° ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ ΠΈΡ Π² ΠΌΠ°ΡΡΠΈΠ² record_data. Π Π² Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ Π²ΡΠ²ΠΎΠΆΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° record_data Π² Π±Π°ΠΉΡΠ°Ρ .
ΠΠΎΡ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ Π·Π° 12 ΡΠ΅ΠΊΡΠ½Π΄ Π·Π°ΠΏΠΈΡΠΈ Ρ Π½Π°Ρ Π²ΡΡΠ»ΠΎ 382 ΡΡΡΡΡΠΈ Π±Π°ΠΉΡ ΠΈΠ»ΠΈ 382 ΠΠ±. ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π²Π½ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΏΠΎ ΡΠ΅ΡΠΈ, ΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ, Π½ΠΎ ΠΈ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ Π² ΡΠ°ΠΌΠΎΠΌ Π°ΡΠ΄ΠΈΠΎ. ΠΠ° ΠΈ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° ΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΈΠ»ΡΠ½Π°Ρ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΡΠΈ ΡΠ°Π½ΠΊΠΈ ΡΠΆΠΈΠΌΠ°ΡΡ, Π±Π»Π°Π³ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Π΅ΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π΅ΠΊΠ° Opus.
πΠ§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Opus ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠΆΠΈΠΌΠ°Π΅Ρ Π°ΡΠ΄ΠΈΠΎ?
Opus (ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΊΠ°ΠΊ Harmony) β ΡΡΠΎ Π°ΡΠ΄ΠΈΠΎΠΊΠΎΠ΄Π΅ΠΊ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ Π·Π²ΡΠΊΠ° Ρ ΠΏΠΎΡΠ΅ΡΡΠΌΠΈ. ΠΠ½ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π΄Π»Ρ Π°ΡΠ΄ΠΈΠΎΡΠ²ΡΠ·ΠΈ.
ΠΡΠΎΡ ΠΊΠΎΠ΄Π΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠΎΠ² Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π²ΠΎΠ½ΠΊΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Telegram. Π Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°ΡΠ΄ΠΈΠΎΠ·Π²ΠΎΠ½ΠΊΠΎΠ² Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ°ΡΠ΅ Ρ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΅ΡΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Opus. ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄Π΅ΠΊ ΡΠΌΠ΅Π΅Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ ΡΡΠ»ΠΎΠ²ΠΈΡ ΡΠ΅ΡΠΈ: Π΅ΡΠ»ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠ΅Π΅, ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π·Π²ΡΠΊ Π² Π²ΡΡΠΎΠΊΠΎΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅, Π° Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π° β ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ.
ΠΠ°ΠΊ ΠΆΠ΅ Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π΅ΠΊΠ° Opus Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° Python. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°-ΠΌΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Opus ΠΈ Python opuslib-next. Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΅ΡΠ΅Π· PIP:
pip install opuslib-next
ΠΠ°Π»Π΅Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Opus
encoder = opuslib_next.Encoder(
fs=16000, # Π§Π°ΡΡΠΎΡΠ° Π·Π°ΠΏΠΈΡΠΈ (16 ΠΊΠΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠΈ)
channels=1, # ΠΠ΄ΠΈΠ½ ΠΊΠ°Π½Π°Π» (ΠΌΠΎΠ½ΠΎ)
application='voip' # Π Π΅ΠΆΠΈΠΌ Π΄Π»Ρ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ
)
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π°ΠΌ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ:
- sample_rate - ΡΠ°ΡΡΠΎΡΠ° Π΄ΠΈΡΠΊΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ (ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π·Π²ΡΠΊΠ°, Ρ Π½Π°Ρ ΡΡΠΎ 16000)
- channels - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π·Π°ΠΏΠΈΡΠΈ (ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠΌΡ Π·Π²ΡΠΊΡ, Ρ Π½Π°Ρ ΠΌΠΎΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ 1)
- application - ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΡΠ΅ΠΆΠΈΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π·Π²ΡΠΊΠ° (Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ voip ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π³ΠΎΠ»ΠΎΡΠ° Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ)
ΠΠ΅ Π·ΡΡ Ρ Π½Π°ΠΏΠΈΡΠ°Π» Π²ΡΡΠ΅, ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° opuslib-next ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΡΡΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Python ΠΈ Opus. ΠΠ»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ΄Π΅ΠΊΠΎΠΌ Opus Π½Π°ΠΌ Π΅ΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° opus.dll. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ², Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π½Π°ΠΉΡΠΈ Π΅Ρ Π² ΡΠ΅ΡΠΈ Π² ΡΠΆΠ΅ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π― ΠΊΠ°ΠΊ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π»ΡΠ±ΡΡΠΈΠΉ, Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠΎΠ±ΡΠ°Π» Π΅Ρ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ².
ΠΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π΄Π° ΠΈ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅ΠΌΡ, ΠΎΠΏΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Opus Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΠ‘. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ°ΡΠ° Π΄Π»Ρ Windows, Linux ΠΈ macOS Ρ ΡΠΎΠ±ΠΈΡΠ°Π» ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΠ‘ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
ΠΠΎΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ΄ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π»Π΅ΠΆΠΈΡ ΡΡΠ΄ΠΎΠΌ Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ. ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Encoder ΠΎΡ Opus ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ°Π½ΠΊΠΈ Π² record_data ΠΌΡ ΠΈΡ ΡΠΆΠΈΠΌΠ°Π΅ΠΌ ΡΠ΅ΡΠ΅Π· Opus. ΠΠ΅ΡΠΎΠ΄ encoder.encode() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° Π°Π³ΡΡΠΌΠ΅Π½ΡΠ°: Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΆΠ°ΡΡ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ (Ρ. Π΅. ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π½ΠΊΠ°). Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Π²Π΅ΡΡΠΌΠ° Π²ΠΏΠ΅ΡΠ°ΡΠ»ΡΡΡ.
ΠΠ° ΡΠ΅ ΠΆΠ΅ 12 ΡΠ΅ΠΊΡΠ½Π΄ ΡΠ°Π±ΠΎΡΡ Π²ΡΡΠ»ΠΎ 19,7 ΠΠ±, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 20 ΡΠ°Π· ΠΌΠ΅Π½ΡΡΠ΅!
ΠΡΠΎ Π»ΠΈΡΡ ΠΊΡΠΎΡΠ΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π°ΡΠ΄ΠΈΠΎΠ·Π²ΠΎΠ½ΠΊΠΎΠ². ΠΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠ΅ΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠΏΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ. Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΈ ΡΠΆΠ°ΡΠΈΠ΅ Π°ΡΠ΄ΠΈΠΎΡΠ°Π½ΠΊΠΎΠ². ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ ΠΈΡ Π² ΠΏΠ°ΠΊΠ΅Ρ, ΡΠΊΠ°Π·Π°Π² ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ, ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ-ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ (ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡ - ΡΠ°ΡΡΠΊΠ°ΠΆΡ Π² Π±ΡΠ΄ΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ ). Π’Π°ΠΊΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ Π°ΡΠ΄ΠΈΠΎΡΠ°Π½ΠΊΠ°ΠΌΠΈ, Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΈ ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»ΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:
- β ΡΡΠΈΠ»Π΅Π½ΠΈΡ Π³ΡΠΎΠΌΠΊΠΎΡΡΠΈ (ΡΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ),
- β ΡΡΠΌΠΎΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΡ (ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ),
- β³ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎΠΉ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ (Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ),
- π Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΡ Π° (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ AEC ΡΠΈΠ»ΡΡΡ, ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ).
Π Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π²ΡΡ! Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Π°ΡΠ΄ΠΈΠΎΠ·Π²ΠΎΠ½ΠΊΠΎΠ² π Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΡ , Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΎΠΏΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°ΠΌΠΈ (Π½Π΅Π΄Π°Π²Π½ΠΎ Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠ°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ).