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的for和break循环结构中使用else语句的技巧
May 24 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
May 09 Python
django利用request id便于定位及给日志加上request_id
Aug 26 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 Python
python3.6生成器yield用法实例分析
Aug 23 Python
python实现人机猜拳小游戏
Feb 03 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
django美化后台django-suit的安装配置操作
Jul 12 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查找指定目录下指定大小文件的方法
2014/11/28 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
2013/06/25 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
2017/11/15 Javascript
angular2中使用第三方js库的实例
2018/02/26 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
2018/05/21 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
python字符串连接的N种方式总结
2014/09/17 Python
Python 自动补全(vim)
2014/11/30 Python
python爬取微信公众号文章
2018/08/31 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
德购商城:德国进口直邮商城
2017/06/13 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
本科生的职业生涯规划范文
2014/01/09 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript
CentOS MySql8 远程连接实战
2022/04/19 MySQL