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进行一些简单的自然语言处理的教程
Mar 31 Python
Python 功能和特点(新手必学)
Dec 30 Python
Python中的TCP socket写法示例
May 11 Python
pandas中去除指定字符的实例
May 18 Python
python删除本地夹里重复文件的方法
Nov 19 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
Python基于Tkinter模块实现的弹球小游戏
Dec 27 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
django 前端页面如何实现显示前N条数据
Mar 16 Python
详解Pandas 处理缺失值指令大全
Jul 30 Python
python -v 报错问题的解决方法
Sep 15 Python
python 使用pandas读取csv文件的方法
Dec 24 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
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
PHP DB 数据库连接类定义与用法示例
2019/03/11 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
js 提交和设置表单的值
2008/12/19 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
Jquery图形报表插件 jqplot简介及参数详解
2012/10/10 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
2017/12/18 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
python利用beautifulSoup实现爬虫
2014/09/29 Python
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
自动一体化专业求职信
2014/03/15 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
环保倡议书范文
2014/05/12 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
关于环保的活动方案
2014/08/25 职场文书
2015新学期开学寄语
2015/02/26 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
结婚纪念日感言
2015/08/01 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL