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 02 Python
linux下python抓屏实现方法
May 22 Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
linux环境下python中MySQLdb模块的安装方法
Jun 16 Python
深入浅析python 中的匿名函数
May 21 Python
Python中py文件转换成exe可执行文件的方法
Jun 14 Python
Python笔记之观察者模式
Nov 20 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
Python参数传递实现过程及原理详解
May 14 Python
解决Python中的modf()函数取小数部分不准确问题
May 28 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 Smarty date_format [格式化时间日期]
2010/03/15 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
实例讲解jquery与json的结合
2016/01/07 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
2016/03/14 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
详解axios在node.js中的post使用
2017/04/27 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
python 搜索大文件的实例代码
2019/07/08 Python
python脚本后台执行方式
2019/12/21 Python
如何利用Python 进行边缘检测
2020/10/14 Python
护士自荐信范文
2013/12/15 职场文书
成考报名单位证明范本
2014/01/16 职场文书
《寓言两则》教学反思
2014/02/27 职场文书
支部组织生活会方案
2014/06/10 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
一年级数学下册复习计划
2015/01/17 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
Python pygame实现中国象棋单机版源码
2021/06/20 Python