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实现在无须过多援引的情况下创建字典的方法
Sep 25 Python
python中字典dict常用操作方法实例总结
Apr 04 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
python比较两个列表大小的方法
Jul 11 Python
Python编程实现删除VC临时文件及Debug目录的方法
Mar 22 Python
pygame实现弹力球及其变速效果
Jul 03 Python
Python中序列的修改、散列与切片详解
Aug 27 Python
基于Python的文件类型和字符串详解
Dec 21 Python
对Python中9种生成新对象的方法总结
May 23 Python
Python多线程的退出控制实现
Aug 10 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
python 日志模块logging的使用场景及示例
Jan 04 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实现MVC开发得最简单的方法――模型
2007/04/10 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
PHP安全下载文件的方法
2016/04/07 PHP
PHP中phar包的使用教程
2017/06/14 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
php函数式编程简单示例
2019/08/08 PHP
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
2009/01/30 Javascript
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
javascript Deferred和递归次数限制实例
2014/10/21 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
2016/05/03 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
浅谈react-router@4.0 使用方法和源码分析
2019/06/04 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
Python程序设计入门(1)基本语法简介
2014/06/13 Python
Python中关于使用模块的基础知识
2015/05/24 Python
使用python画社交网络图实例代码
2019/07/10 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
python3爬取torrent种子链接实例
2020/01/16 Python
Python3 元组tuple入门基础
2020/02/09 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
本科毕业生自荐信
2014/05/26 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
检讨书格式范文
2015/05/07 职场文书
小学生安全保证书
2015/05/09 职场文书
小平您好观后感
2015/06/09 职场文书
2015年暑期见闻
2015/07/14 职场文书
Python基础详解之描述符
2021/04/28 Python
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android