ПочатиПочніть безкоштовно

Пошук часових міток

Ми знаємо, що частота нашої звукової хвилі — 48 кГц. А що, якби ми цього не знали? Її можна знайти, поділивши довжину масиву звукової хвилі на тривалість звуку. Однак модуль Python wave пропонує кращий спосіб. Виклик getframerate() для об'єкта wave повертає частоту дискретизації цього об'єкта.

Потім ми можемо скористатися методом NumPy linspace(), щоб знайти часову мітку для кожного цілого числа в нашому масиві звукової хвилі. Це допоможе нам у подальшій візуалізації звукової хвилі.

Метод linspace() приймає параметри start, stop і num та повертає num рівновіддалених значень між start і stop.

У нашому випадку start дорівнюватиме нулю, stop — це довжина нашого масиву звукової хвилі, поділена на частоту дискретизації (тобто тривалість аудіофайла), а num — довжина нашого масиву звукової хвилі.

Ця вправа є частиною курсу

Обробка усного мовлення в Python

Переглянути курс

Інструкції до вправи

  • Перетворіть байти звукової хвилі на цілі числа.
  • Отримайте частоту дискретизації аудіофайла «good morning» за допомогою getframerate().
  • Встановіть stop як довжину soundwave_gm, поділену на частоту дискретизації.
  • Встановіть num як довжину soundwave_gm.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Read in sound wave and convert from bytes to integers
good_morning = wave.open('good_morning.wav', 'r')
signal_gm = good_morning.readframes(-1)
soundwave_gm = np.frombuffer(____, dtype='int16')

# Get the sound wave frame rate
framerate_gm = good_morning.____

# Find the sound wave timestamps
time_gm = np.linspace(start=0,
                      stop=____/____,
					  num=____)

# Print the first 10 timestamps
print(time_gm[:10])
Редагувати та запускати код