python - 如何重复音频wav文件,使其在python中至少长6秒
问题描述
我正在处理一个声音分类问题,我希望我的音频文件至少 6 秒长。如果不是,我想通过在循环中运行来扩展它。然后在python的librosa库中找到它的STFT。
解决方案
这可能会有所帮助
import math
import soundfile as sf
import numpy as np
import librosa
data, samplerate = sf.read('test1.wav')
channels = len(data.shape)
length_s = len(data)/float(samplerate)
if(length_s < 6.0):
n = math.ceil(6*samplerate/len(data))
if(channels == 2):
data = np.tile(data,(n,1))
else:
data = np.tile(data,n)
sf.write('new.wav', data, samplerate)
# now calculate stft for each channel if stereo
推荐阅读
- python - 当订阅者断开连接时,如何从发布者恢复丢弃的消息?
- ipython - 安装新包后重新启动 IPython 内核 - Hydrogen vs Jupyter
- xaml - MSBuild:UpdateDesignTimeXaml 有什么作用?
- c# - 缓存设备上下文
- angular - 将前端从 web 动态加载到 Angular:可能吗?
- python - 使用python进行多线程加密的问题
- r - 在R中的变量上选择具有特定值的每组的最后两行
- xslt - 问题:SVG
- angular - 当我使用方法填充行时,ag-grid Cell Renderer 停止工作
- sql-server - 数据库未更新