Từ byte sang số nguyên
Bạn đã thấy cách nhập và đọc một tệp âm thanh bằng wave của Python và phương thức readframes(). Nhưng cách đó trả về một mảng byte.
Để chuyển các byte thành thứ hữu ích hơn, ta sẽ dùng phương thức frombuffer() của NumPy.
Truyền cho frombuffer() các byte sóng âm và chỉ định dtype là 'int16', bạn có thể chuyển các byte thành số nguyên. Làm việc với số nguyên dễ hơn nhiều so với byte.
Thư viện wave của Python đã được nhập sẵn cùng với tệp âm thanh good_morning.wav.
Bài tập này là một phần của khóa học
Xử lý Ngôn ngữ Nói bằng Python
Hướng dẫn bài tập
- Import gói
numpyvới bí danh quen thuộcnp. - Mở và đọc tệp âm thanh good morning.
- Chuyển các byte trong
signal_gmsang số nguyênint16. - Xem 10 giá trị sóng âm đầu tiên.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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[:____])