Из байтов в целые числа
Вы уже знаете, как импортировать и считывать аудиофайл с помощью модуля wave и метода readframes(). Однако результатом является массив байтов.
Чтобы преобразовать байты в более удобный формат, воспользуемся методом frombuffer() из библиотеки NumPy.
Передав в frombuffer() байты звуковой волны и указав dtype равным 'int16', можно получить массив целых чисел. Работать с целыми числами значительно проще, чем с байтами.
Библиотека wave уже импортирована вместе с аудиофайлом good_morning.wav audio file.
Это упражнение является частью курса
Обработка устной речи на Python
Инструкции к упражнению
- Импортируйте пакет
numpyс общепринятым псевдонимомnp. - Откройте и считайте аудиофайл с приветствием.
- Преобразуйте байты
signal_gmв целые числа типаint16. - Выведите первые 10 значений звуковой волны.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
import ____ as ____
# Open good morning sound wave and read frames as bytes
good_morning = wave.open(____, 'r')
signal_gm = good_morning.readframes(-1)
# Convert good morning audio bytes to integers
soundwave_gm = np.frombuffer(____, dtype=_____)
# View the first 10 sound wave values
print(soundwave_gm[:____])