เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

แปลง Bytes เป็น Integers

เราได้เห็นวิธีนำเข้าและอ่านไฟล์เสียงด้วยโมดูล wave ของ Python และเมธอด readframes() แล้ว แต่การทำเช่นนั้นจะได้ผลลัพธ์เป็น array ของ bytes

ในการแปลง bytes ให้อยู่ในรูปแบบที่ใช้งานได้สะดวกขึ้น เราจะใช้เมธอด frombuffer() ของ NumPy

โดยส่ง bytes ของคลื่นเสียงเข้าไปใน frombuffer() พร้อมระบุ dtype เป็น 'int16' เพื่อแปลง bytes เป็น integers ซึ่งทำงานได้ง่ายกว่า bytes มาก

ไลบรารี wave ของ Python ถูกนำเข้าแล้ว พร้อมกับไฟล์เสียง good_morning.wav

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Spoken Language Processing ด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • นำเข้าแพ็กเกจ numpy โดยใช้ alias ทั่วไปว่า np
  • เปิดและอ่านไฟล์เสียง good morning
  • แปลง bytes ของ signal_gm ให้เป็น integers ชนิด 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[:____])
แก้ไขและรันโค้ด