AI人工智能 可视化音频信号 - 从文件读取并进行处理

2026-02-26 16:43 更新

这是构建语音识别系统的第一步,因为它有助于理解音频信号的结构。处理音频信号可以遵循以下一些常见步骤:

录制

当您需要从文件中读取音频信号时,首先使用麦克风录制它。

采样

使用麦克风录制时,信号以数字化形式存储。但要对其进行处理,机器需要将其转换为离散的数值形式。因此,我们应该以一定的频率进行采样,并将信号转换为离散的数值形式。选择高采样频率意味着当人类聆听信号时,会感觉它是连续的音频信号。

示例

以下示例展示了使用 Python 分析存储在文件中的音频信号的分步方法。此音频信号的频率为 44,100 Hz。

导入必要的包,如下所示:

import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile

现在,读取存储的音频文件。它将返回两个值:采样频率和音频信号。提供音频文件存储的路径,如下所示:

frequency_sampling, audio_signal = wavfile.read("/Users/admin/audio_file.wav")

使用以下命令显示音频信号的采样频率、信号的数据类型及其持续时间等参数:

print('\nSignal shape:', audio_signal.shape)
print('Signal Datatype:', audio_signal.dtype)
print('Signal duration:', round(audio_signal.shape[0] /
float(frequency_sampling), 2), 'seconds')

这一步涉及对信号进行归一化,如下所示:

audio_signal = audio_signal / np.power(2, 15)

在这一步中,我们从这个信号中提取前 100 个值进行可视化。为此,使用以下命令:

audio_signal = audio_signal[:100]
time_axis = 1000 * np.arange(0, len(audio_signal), 1) / float(frequency_sampling)

现在,使用以下命令可视化信号:

plt.plot(time_axis, audio_signal, color='blue')
plt.xlabel('Time (milliseconds)')
plt.ylabel('Amplitude')
plt.title('Input audio signal')
plt.show()

您将能够看到输出图表和为上述音频信号提取的数据,如下所示:

Signal shape: (132300,)
Signal Datatype: int16
Signal duration: 3.0 seconds
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号