πŸ”Š Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со Π·Π²ΡƒΠΊΠΎΠΌ Π² Python: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ инструмСнты ΠΈ совСты

Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со Π·Π²ΡƒΠΊΠΎΠΌ Π² Python

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со Π·Π²ΡƒΠΊΠΎΠΌ Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ pydub. Π’ΠΎΡ‚ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ΄Π°:


# Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pydub
from pydub import AudioSegment

# Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
sound = AudioSegment.from_file("path/to/file.wav", format="wav")

# ВоспроизвСдСниС Π·Π²ΡƒΠΊΠ°
sound.play()

# ИзмСнСниС громкости Π·Π²ΡƒΠΊΠ°
sound = sound + 10

# Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°
sound.export("path/to/new_file.wav", format="wav")

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ sounddevice для записи ΠΈ воспроизвСдСния Π·Π²ΡƒΠΊΠ°:


# Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ sounddevice
import sounddevice as sd

# Π—Π°ΠΏΠΈΡΡŒ Π·Π²ΡƒΠΊΠ°
duration = 10  # Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ записи Π² сСкундах
sample_rate = 44100  # Частота дискрСтизации
recording = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=2)
sd.wait()  # ОТиданиС окончания записи

# ВоспроизвСдСниС записанного Π·Π²ΡƒΠΊΠ°
sd.play(recording, sample_rate)
sd.wait()  # ОТиданиС окончания воспроизвСдСния

НадСюсь, эти ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ со Π·Π²ΡƒΠΊΠΎΠΌ Π² Python!

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со Π·Π²ΡƒΠΊΠΎΠΌ Π² Python

Π Π°Π±ΠΎΡ‚Π° со Π·Π²ΡƒΠΊΠΎΠΌ Π² Python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ интСрСсной ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим основныС способы Ρ€Π°Π±ΠΎΡ‚Ρ‹ со Π·Π²ΡƒΠΊΠΎΠΌ Π² Python ΠΈ прСдоставим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ способа.

1. ВоспроизвСдСниС Π·Π²ΡƒΠΊΠ°

Для воспроизвСдСния Π·Π²ΡƒΠΊΠ° Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ pygame. Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ воспроизводит Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Ρ„Π°ΠΉΠ»:

import pygame

pygame.mixer.init()
pygame.mixer.music.load('sound.mp3')
pygame.mixer.music.play()

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ pygame.mixer, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° load() ΠΈ воспроизводим Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° play().

2. Π—Π°ΠΏΠΈΡΡŒ Π·Π²ΡƒΠΊΠ°

Для записи Π·Π²ΡƒΠΊΠ° Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ sounddevice. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записываСт Π·Π²ΡƒΠΊ с ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π° ΠΈ сохраняСт Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ»:

import sounddevice as sd
import soundfile as sf

duration = 5  # Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ записи Π² сСкундах
filename = 'recorded_sound.wav'

# Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Π²ΡƒΠΊ с ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π°
recording = sd.rec(int(duration * 44100), samplerate=44100, channels=2)
sd.wait()

# Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ записанный Π·Π²ΡƒΠΊ Π² Ρ„Π°ΠΉΠ»
sf.write(filename, recording, 44100)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ sounddevice для записи Π·Π²ΡƒΠΊΠ° с ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π°. ΠœΡ‹ Π·Π°Π΄Π°Π΅ΠΌ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ записи Π² сСкундах ΠΈ имя Ρ„Π°ΠΉΠ»Π° для сохранСния. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ rec() для записи Π·Π²ΡƒΠΊΠ° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ write() для сохранСния записи Π² Ρ„Π°ΠΉΠ».

3. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π²ΡƒΠΊΠ°

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π²ΡƒΠΊΠ° Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ librosa. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Ρ„Π°ΠΉΠ», примСняСт эффСкт ΠΈ сохраняСт ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Π·Π²ΡƒΠΊ:

import librosa

# Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Ρ„Π°ΠΉΠ»
filename = 'sound.wav'
sound, sample_rate = librosa.load(filename)

# ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ эффСкт (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ скорости)
sound_with_effect = librosa.effects.time_stretch(sound, 0.8)

# Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Ρ„Π°ΠΉΠ»
output_filename = 'sound_with_effect.wav'
librosa.output.write_wav(output_filename, sound_with_effect, sample_rate)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ librosa для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π·Π²ΡƒΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° load(). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ примСняСм эффСкт (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ скорости) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° time_stretch(). НаконСц, ΠΌΡ‹ сохраняСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° write_wav().

4. Анализ Π·Π²ΡƒΠΊΠ°

Для Π°Π½Π°Π»ΠΈΠ·Π° Π·Π²ΡƒΠΊΠ° Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ librosa. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ спСктрограмму:

import librosa
import librosa.display
import matplotlib.pyplot as plt

# Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ Ρ„Π°ΠΉΠ»
filename = 'sound.wav'
sound, sample_rate = librosa.load(filename)

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ спСктрограмму
spectrogram = librosa.feature.melspectrogram(sound, sr=sample_rate)

# ВывСсти спСктрограмму
plt.figure(figsize=(10, 4))
librosa.display.specshow(librosa.power_to_db(spectrogram, ref=np.max), y_axis='mel', fmax=8000, x_axis='time')
plt.colorbar(format='%+2.0f dB')
plt.title('Π‘ΠΏΠ΅ΠΊΡ‚Ρ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°')
plt.show()

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ librosa для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π·Π²ΡƒΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° load(). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ спСктрограмму с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° melspectrogram(). НаконСц, ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ спСктрограмму с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° specshow(), colorbar() ΠΈ title().

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли основныС способы Ρ€Π°Π±ΠΎΡ‚Ρ‹ со Π·Π²ΡƒΠΊΠΎΠΌ Π² Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pygame, sounddevice ΠΈ librosa для воспроизвСдСния, записи, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π·Π²ΡƒΠΊΠ°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих способов. УспСхов Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со Π·Π²ΡƒΠΊΠΎΠΌ Π² Python!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

КАК Π’ΠžΠ‘ΠŸΠ ΠžΠ˜Π—Π’ΠžΠ”Π˜Π’Π¬ Π—Π’Π£ΠšΠ˜ НА PYTHON? ΠœΠ£Π—Π«ΠšΠ. Π­Π€Π€Π•ΠšΠ’Π«.

ЛСкция. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π·Π²ΡƒΠΊΠ°.

ДобавляСм Π·Π²ΡƒΠΊ Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ процСсс. ΠœΠΎΠ΄ΡƒΠ»ΠΈ mixer ΠΈ music | Pygame #11

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”₯ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ Π² Sublime Text: Π›Π΅Π³ΠΊΠΎΠ΅ руководство ΠΈ совСты πŸ’‘

πŸ¦– Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΈΠ½ΠΎΠ·Π°Π²Ρ€ΠΈΠΊΠ° Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅: шаг Π·Π° шагом руководство!

Π“Π΄Π΅ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΏΠΈΡ‚ΠΎΠ½? 🐍 Top 5 мСст, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Python!

πŸ”Š Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со Π·Π²ΡƒΠΊΠΎΠΌ Π² Python: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ инструмСнты ΠΈ совСты

πŸš€ Как ΡΡ‚Π°Ρ‚ΡŒ Python backend Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ: совСты ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ ΠΈΠ· строки? πŸπŸ”‘

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅: ΠΈΠ΄Π΅ΠΈ ΠΈ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… 🐍