Bajty na liczby całkowite
Wiesz już, jak importować i odczytywać plik audio za pomocą modułu wave w Pythonie oraz metody readframes(). Wynikiem tego działania jest jednak tablica bajtów.
Aby przekształcić bajty w coś bardziej użytecznego, skorzystamy z metody frombuffer() z biblioteki NumPy.
Przekazując do frombuffer() bajty fali dźwiękowej i wskazując dtype równy 'int16', możemy zamienić bajty na liczby całkowite. Z liczbami całkowitymi pracuje się o wiele wygodniej niż z bajtami.
Biblioteka wave w Pythonie została już zaimportowana wraz z plikiem audio good_morning.wav.
To ćwiczenie jest częścią kursu
Przetwarzanie mowy w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj pakiet
numpyz jego popularnym aliasemnp. - Otwórz i odczytaj plik audio z pozdrowieniem "dzień dobry".
- Przekształć bajty zmiennej
signal_gmna liczby całkowite typuint16. - Wyświetl pierwsze 10 wartości fali dźwiękowej.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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[:____])