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三元运算符实现方法
Dec 17 Python
Python实现多行注释的另类方法
Aug 22 Python
Python中列表元素转为数字的方法分析
Jun 14 Python
python逐行读写txt文件的实例讲解
Apr 03 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
May 29 Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
python 基于opencv实现图像增强
Dec 23 Python
Python使用tkinter实现小时钟效果
Feb 22 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 16 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函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
详解JQuery基础动画操作
2019/04/12 jQuery
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
python使用post提交数据到远程url的方法
2015/04/29 Python
Python循环语句之break与continue的用法
2015/10/14 Python
Python实现单词翻译功能
2017/06/06 Python
Python爬虫常用小技巧之设置代理IP
2018/09/13 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
Python如何将模块打包并发布
2020/08/30 Python
canvas绘制树形结构可视图形的实现
2020/04/03 HTML / CSS
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
实习教师个人的自我评价
2013/11/08 职场文书
前台领班岗位职责
2013/12/04 职场文书
《假如》教学反思
2014/04/17 职场文书
员工安全承诺书
2014/05/22 职场文书
预备党员公开承诺书
2014/05/28 职场文书
经典演讲稿开场白
2014/08/25 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
党员争先创优承诺书
2015/01/20 职场文书
岗位聘任报告
2015/03/02 职场文书
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers