如何正确处理音频数据:16位整数与32位浮点数

在音频处理领域,音频数据的格式对后续的分析和处理至关重要。常见的音频格式包括16位整数和32位浮点数。本文将介绍如何正确处理这两种格式的音频数据,包括使用 scipy.io.wavfile 读取音频、使用 librosa 进行处理,以及使用 soundfilesf)写入音频文件。

1. 16位整数音频

1.1 读取音频

16位整数音频通常以 int16 格式存储。使用 scipy.io.wavfile 读取音频文件时,返回的数据类型为 numpy.int16

python 复制代码
import numpy as np
from scipy.io import wavfile

# 读取 WAV 文件
sample_rate, audio_data = wavfile.read('your_audio_file_16bit.wav')

# 打印数据类型和范围
print(f'Data type: {audio_data.dtype}')
print(f'Data range: {audio_data.min()} to {audio_data.max()}')

1.2 处理音频

在使用 librosa 处理音频数据之前,需要将16位整数数据转换为浮点数格式,并归一化到 [-1, 1] 的范围。

python 复制代码
import librosa

# 如果数据是整数格式(例如 int16),则需要归一化
if audio_data.dtype == np.int16:
    audio_data = audio_data.astype(np.float32) / 32768.0  # 归一化到 [-1, 1]

# 使用 librosa 进行处理
audio_data_processed = librosa.effects.preemphasis(audio_data)

1.3 写入音频

使用 soundfile 库将处理后的音频数据写入文件时,需要将浮点数数据转换回16位整数格式(如果需要)。

python 复制代码
import soundfile as sf

# 将浮点数数据转换为 int16
audio_data_int16 = (audio_data_processed * 32768).astype(np.int16)

# 写入 WAV 文件
sf.write('output_16bit.wav', audio_data_int16, sample_rate)

2. 32位浮点音频

2.1 读取音频

32位浮点音频通常以 float32 格式存储。使用 scipy.io.wavfile 读取音频文件时,返回的数据类型为 numpy.float32

python 复制代码
# 读取 WAV 文件
sample_rate, audio_data = wavfile.read('your_audio_file_32bit.wav')

# 打印数据类型和范围
print(f'Data type: {audio_data.dtype}')
print(f'Data range: {audio_data.min()} to {audio_data.max()}')

2.2 处理音频

32位浮点音频数据通常已经在 [-1, 1] 的范围内,因此可以直接使用 librosa 进行处理。

python 复制代码
# 使用 librosa 进行处理
audio_data_processed = librosa.effects.preemphasis(audio_data)

2.3 写入音频

使用 soundfile 库将处理后的音频数据写入文件时,可以直接写入浮点数数据。

python 复制代码
# 写入 WAV 文件
sf.write('output_32bit.wav', audio_data_processed, sample_rate)
相关推荐
王江奎2 小时前
FFmpeg 视频旋转信息处理:3.4 vs 7.0.2
ffmpeg·音视频
EasyGBS4 小时前
20250808:EasyGBS 对接大华 ICC 平台问题处理
服务器·音视频·技术分享
音视频牛哥14 小时前
音视频直播全链路技术手册:核心术语与实战应用解析
音视频·大牛直播sdk·音视频直播全链路技术手册·音视频术语·音视频专业术语·音视频名词解释·音视频直播术语
aqi0016 小时前
FFmpeg开发笔记(七十九)专注于视频弹幕功能的国产弹弹播放器
android·ffmpeg·音视频·直播·流媒体
dlraba80219 小时前
OpenCV 入门实战:从环境配置到图像 / 视频处理
opencv·计算机视觉·音视频
无线图像传输研究探索20 小时前
无人机图传的得力助手:5G 便携式多卡高清视频融合终端的协同应用
5g·音视频·无人机·无线图传·5g单兵图传·单兵图传·无人机图传
DogDaoDao20 小时前
深入理解VideoToolbox:iOS/macOS视频硬编解码实战指南
macos·ios·音视频·实时音视频·视频编解码·videotoolbox·硬编码
2zcode21 小时前
基于Matlab融合深度学习的视频电梯乘客人数检测平台研究
深度学习·matlab·音视频
ShiMetaPi1 天前
BM1684X平台:Qwen-2-5-VL图像/视频识别应用
人工智能·音视频·边缘计算·bm1684x·shimetapi
melonbo1 天前
正向矩阵(DCT)变换后还是一个矩阵,怎么减少存储空间
音视频·h.264