1. 音频信号的本质与数字化基础
声音本质上是一种机械波,通过空气分子振动传播。当声波到达人耳时,鼓膜随之振动,经听觉神经传导至大脑形成听觉感知。在物理层面,声波可以用三个关键参数描述:
- 频率:决定音高,单位赫兹(Hz)
- 振幅:决定响度,单位分贝(dB)
- 波形:决定音色,由基频和泛音组成
模拟信号转换为数字信号需要经过两个关键步骤:
1.1 采样与量化原理
采样过程遵循奈奎斯特采样定理:采样频率必须至少是信号最高频率的2倍。例如:
- 电话语音(8kHz带宽)采用16kHz采样率
- CD音质(20kHz带宽)采用44.1kHz采样率
- 高清音频采用192kHz采样率
量化过程将连续振幅离散化,常见位深度:
python复制# 量化示例代码
def quantize(sample, bit_depth):
max_val = 2**(bit_depth-1)-1
return round(sample * max_val) / max_val
关键提示:采样率决定频率上限,位深度决定动态范围。16bit/44.1kHz已能满足大多数场景需求。
1.2 数字音频的数学表示
离散音频信号可表示为:
x[n] = A·sin(2πfn/fs + φ)
其中:
- A:振幅
- f:信号频率
- fs:采样频率
- φ:相位偏移
时域波形与频域表示的转换通过傅里叶变换实现:
python复制import numpy as np
fft_result = np.fft.fft(audio_signal)
frequencies = np.fft.fftfreq(len(audio_signal), 1/sample_rate)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心处理技术与实践
2.1 时频分析技术
短时傅里叶变换(STFT)将信号分段处理:
python复制import librosa
D = librosa.stft(audio, n_fft=2048, hop_length=512)
magnitude = np.abs(D)
phase = np.angle(D)
梅尔频谱计算流程:
- 预加重:增强高频成分
- 分帧加窗:通常25ms帧长,10ms帧移
