import ffmpeg
ffmpeg.input('input.mp3').output('output.mp3', ar=16000).run()
二、librosa库
import librosa
filename = 'ClapSound.wav'
newFilename = 'ClapSound_8k.wav'
y, sr = librosa.load(filename, sr=48000)
y_8k = librosa.resample(y,sr,8000)
librosa.output.write_wav(newFilename, y_8k, 8000)
参考:
https://blog.csdn.net/u010070526/article/details/85218613
https://www.v2ex.com/t/561239
https://www.cnblogs.com/xingshansi/p/6799994.html
一、ffmpegpip install python-ffmpeg简单代码:import ffmpegffmpeg.input('input.mp3').output('output.mp3', ar=16000).run()二、librosa库import librosa# to install librosa package# > conda install -c conda-forge librosa filename = 'ClapSound.wav'newFile
#name = "LJ001-"+str( "%04d"%(i) )+".wav"
name = ""
src_sig,sr = sf.read(name) #name是要 输入的wav 返回 src_sig:音频数据 sr:原采样频率
因为工作中会经常遇到不同采样率的声音文件的问题,特意写了一下重采样的程序。
原理就是把采样点转换到时间刻度之后再进行插值,经过测试,是没有问题的。#!/usr/bin/env python
# -*- coding: utf-8 -*-# @Time : 17-7-21 下午2:32
# @Author : Lei.Jinggui
# @Site : http://blog.csdn
python中的librosa库让我们可以非常方便的对音频文件进行重采样。
目标是一个48kHz的音频,利用librosa库中中的resample将这段音频下采样到8kHz。
import librosa
# to install librosa package
# > conda install -c conda-forge librosa
filename = 'ClapSound....
在 Python 中,你可以使用 pandas 库中的 resample() 函数来对时间序列数据进行重采样。例如,假设你有一个包含时间戳的数据帧 df,你可以这样使用 resample() 函数来将它重采样为每分钟的数据:
df_resampled = df.resample('1T').mean()
这里的 '1T' 代表的是每分钟('T' 表示分钟),'.mean()' 则表示在重采样过程...
resample(self, rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention=‘start’, kind=None, loffset=None, limit=None, base=0, on=None, level=None)
比较关键的是rule,closed,label下面会随...
PCM数据 -->
重采样数据输入缓冲区 --> 进行重采样 -->重采样数据输出缓冲区 -->
AVFrame编码器输入数据缓冲区 --->AAC编码器 ----> AVPacket码器输出数据缓冲区 --->AAC数据文件
#include <stdio.h>
#include <string.h>
#include "libavutil/avutil.h"
音频重采样作为一个独立模块蕴含了数字信号处理理论的多方面内容,综合起来其物理原理及滤波器的实现优化可以作为一个独立的项目做较深入的研究,可谓是一门学问。推荐大家研读国外作者的理论研究工作,从数学模型到信号处理细节讲述的非常详尽(需要具备一定的数字信号处理基础)。
言归正传,音频重采样分为上采样和下采样,即插值和抽取。在实现有理数级重采样时,则是将上采样和下采样做结合(
这篇文章介绍如何使用python对音频进行降采样。
手上有一批48k采样率的音频,需要将到16k。这里使用python的librosa库来完成。一行代码搞定:
y_48k, sr = librosa.load(wav_filename, 48000) # 读取原音频
y_16k = librosa.resample(y=y_48k, orig_sr=48000, targe_sr=16000) #...
在Python中,你可以使用一些库来进行声音重采样。其中一个常用的库是librosa。下面是一个使用librosa进行声音重采样的示例代码:
```pythonimport librosa#读取原始音频文件audio_path = 'path_to_audio_file.wav'
y, sr = librosa.load(audio_path)
# 设置目标采样率target_sr =44100# 进行重采样y_resampled = librosa.resample(y, sr, target_sr)
#保存重采样后的音频文件resampled_audio_path = 'path_to_resampled_audio_file.wav'
librosa.output.write_wav(resampled_audio_path, y_resampled, target_sr)
在这个示例中,我们首先使用librosa的`load`函数读取原始音频文件,返回音频数据(`y`)和采样率(`sr`)。然后,我们设置目标采样率(`target_sr`),并使用`resample`函数对音频数据进行重采样。最后,我们使用`write_wav`函数将重采样后的音频数据保存为新的音频文件。
除了librosa,还有一些其他的Python库可以进行声音重采样,如soundfile、pydub等。你可以根据自己的需求选择合适的库来实现声音重采样功能。
电通小蓝:
Montreal Forced Aligner (MFA)安装教程及异常处理
Zero_to_zero1234:
Montreal Forced Aligner (MFA)安装教程及异常处理
电通小蓝: