惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
小众软件
小众软件
The Cloudflare Blog
S
SegmentFault 最新的问题
美团技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
博客园 - 聂微东
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网
WordPress大学
WordPress大学
T
Tailwind CSS Blog
腾讯CDC
人人都是产品经理
人人都是产品经理
月光博客
月光博客
Microsoft Azure Blog
Microsoft Azure Blog
M
MIT News - Artificial intelligence
D
DataBreaches.Net
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
J
Java Code Geeks
宝玉的分享
宝玉的分享

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录
修改 wav 音频采样率
Yiwei Zhang · 2023-06-20 · via 又见苍岚

语音识别时指定采样率 16k,本文记录使用 python 实现音频采样率改变的过程。

读取wav文件

1
2
3
4
import scipy.io.wavfile as wav

# 打开音频文件
sample_rate, data = wav.read('test.wav')

  • 其中 sample_rate 为当前音频采样率,data 为音频数据。

例如我当前测试音频,sample_rate 为 : 48000

我的目标是将其转换为 16000

转换采样率

scipy.signal 模块的 resample() 函数可以转换采样率。

1
2
3
4
5
from scipy.signal import resample

# 将采样率转换为 16K
new_rate = 16000
resampled_data = resample(data, int(len(data) * new_rate / sample_rate))

写入音频文件

1
2
resampled_data = resampled_data.astype('int16')
wav.write('audio_resampled.wav', new_rate, resampled_data)

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
from scipy.signal import resample
import scipy.io.wavfile as wav
# 将采样率转换为 16K
new_rate = 16000

# 打开音频文件
sample_rate, data = wav.read('test.wav')
resampled_data = resample(data, int(len(data) * new_rate / sample_rate))

resampled_data = resampled_data.astype('int16')
wav.write('audio_resampled.wav', new_rate, resampled_data)

文章链接:
https://www.zywvvd.com/notes/study/audio/change-audio-frame-rate/change-audio-frame-rate/