python将音频进行变速的操作方法


Posted in Python onApril 08, 2020

有的时候需要手里的音频文件变速听,或可能变慢或可能变快

这里使用的python进行操作,我的目标是将文件转成2倍速

首先需要安装插件

pip install ffmpeg

然后再执行:

from ffmpeg import audio
audio.a_speed("D:\\1505.mp3", "2", "D:\\1505_2x.mp3")

如果执行不出错,会返回一个true

运行结果

python将音频进行变速的操作方法

我可以看到这里的音频速度提升以后音频小了

这里我是将目标路径下的MP3音频转成了2倍速的,设立不局限于MP3。其他格式的音频文件也是可以进行处理的。

当然这里还可以进行批量操作

import os
import sys
from ffmpeg import audio
audio_path = "D:\\audio\\" 
finish_path = "D:\\2x_audio\\"
 
def run():
 audio_file = os.listdir(audio_path)
 for i, audio1 in enumerate(audio_file):
  print(audio_path+audio1)
  audio.a_speed(audio_path+audio1, "2", finish_path+"2x"+audio1)
run()

实际上这个的源码干了一件这个事情

import subprocess
 
# 调整音频播放速率
def a_speed(input_file, speed, out_file):
 try:
  cmd = "ffmpeg -y -i %s -filter_complex \"atempo=tempo=%s\" %s" % (input_file, speed, out_file)
  res = subprocess.call(cmd, shell=True)
 
  if res != 0:
   return False
  return True
 except Exception:
  return False

实际可以看到,使用的f调用的原生的fmpeg,也就是基于fmpeg开发的

不过好像我发现,如果音频文件太大会失败,返回false

我试过原生的fmpeg是可以进行的,只是会转换很慢

D:\>ffmpeg -n -i 222.mp3 -filter:a "atempo=2" output.mp3

现在不知道是不是因为限制了大小(现在猜测可能是显示了大或者限制了响应时间大小,在源码里没有发现什么诡异的地方),音频不算大的是没问题的,我试的单个文件是100多兆的文件,会失败,但是10m是没有问题的。

实在不行就直接用原生的好了

import os
import sys
#from ffmpeg import audio
 
audio_path = "D:\\audio\\" 
finish_path = "D:\\2x_audio\\"
 
def run():
 audio_file = os.listdir(audio_path)
 for i, audio1 in enumerate(audio_file):
  #print(audio_path+audio1)
  cmd="ffmpeg -n -i "+audio_path+audio1+" -filter:a atempo=2 "+finish_path+"2x"+audio1
  #print(cmd)
  os.system(cmd)
  #audio.a_speed(audio_path+audio1, "2", finish_path+"2x"+audio1)
run()

后来发现,最好音频的文件名不要有汉字

上面另两个代码应该都是可以的

总结

到此这篇关于python将音频进行变速的操作方法的文章就介绍到这了,更多相关python 音频变速内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python通过线程实现定时器timer的方法
Mar 16 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
Dec 09 Python
Django入门使用示例
Dec 12 Python
Python基于matplotlib实现绘制三维图形功能示例
Jan 18 Python
python去掉空白行的多种实现代码
Mar 19 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
PyCharm代码提示忽略大小写设置方法
Oct 28 Python
浅谈Python中eval的强大与危害
Mar 13 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
解决Python使用列表副本的问题
Dec 19 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 21 Python
Python读取配置文件(config.ini)以及写入配置文件
Apr 08 #Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
Apr 08 #Python
在python中修改.properties文件的操作
Apr 08 #Python
python3 配置logging日志类的操作
Apr 08 #Python
python3 logging日志封装实例
Apr 08 #Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 #Python
Python 输出详细的异常信息(traceback)方式
Apr 08 #Python
You might like
说明的比较细的php 正则学习实例
2008/07/30 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
python扫描线填充算法详解
2020/02/19 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
python二维图制作的实例代码
2020/12/03 Python
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
护理自我鉴定范文
2013/10/06 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
终止劳动合同协议书
2014/10/05 职场文书
运动会加油稿
2015/07/22 职场文书
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript