字节到整数
您已经了解了如何使用 Python 的 wave 模块和 readframes() 方法来导入并读取音频文件。但这样得到的是一个字节数组。
要把字节转换成更易用的形式,我们将使用 NumPy 的 frombuffer() 方法。
将声波的字节数据传给 frombuffer(),并指定 dtype 为 'int16',就能把字节转换为整数。相比字节,整数更易于处理。
Python 的 wave 库和 good_morning.wav 音频文件已为您导入。
本练习是课程的一部分
Python 语音语言处理
练习说明
- 以常用别名
np导入numpy包。 - 打开并读取早安音频文件。
- 将
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[:____])