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入门教程
Feb 08 Python
详解C++编程中一元运算符的重载
Jan 19 Python
使用Python从零开始撸一个区块链
Mar 14 Python
Python pymongo模块用法示例
Mar 31 Python
python学习之hook钩子的原理和使用
Oct 25 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
python取余运算符知识点详解
Jun 27 Python
softmax及python实现过程解析
Sep 30 Python
python图形界面开发之wxPython树控件使用方法详解
Feb 24 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
基于Python的OCR实现示例
Apr 03 Python
Python实现EM算法实例代码
Oct 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
2020最新CPU的性能排名
2020/04/02 数码科技
PHP 分页类(模仿google)-面试题目解答
2009/09/13 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
JS实现放烟花效果
2020/03/10 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
深入理解python对json的操作总结
2017/01/05 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
python自动12306抢票软件实现代码
2018/02/24 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
Python列表元素常见操作简单示例
2019/10/25 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
python中字符串的编码与解码详析
2020/12/03 Python
心理学专业毕业生推荐信范文
2013/11/21 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
终止劳动合同通知书
2015/04/16 职场文书
如何做好工作总结!
2019/04/10 职场文书
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers