python将音频进行变速的操作方法
作者:喝粥也会胖的唐僧 发布时间:2023-10-05 19:04:34
标签:python,音频,变速
有的时候需要手里的音频文件变速听,或可能变慢或可能变快
这里使用的python进行操作,我的目标是将文件转成2倍速
首先需要安装插件
pip install ffmpeg
然后再执行:
from ffmpeg import audio
audio.a_speed("D:\\1505.mp3", "2", "D:\\1505_2x.mp3")
如果执行不出错,会返回一个true
运行结果
我可以看到这里的音频速度提升以后音频小了
这里我是将目标路径下的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()
后来发现,最好音频的文件名不要有汉字
上面另两个代码应该都是可以的
来源:https://blog.csdn.net/zhou_438/article/details/105363879


猜你喜欢
- 这个问题非常非常重要,搞了一晚上都没解决好,但是真的很简单很简单, 如果你也 是用的numpy array, 如果你也想得到输出矩阵的全部内
- osql 工具是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件。
- 一:导入pmo.xm配置包mysql库连接、druid连接池、mybatis组件<!-- 使用MySQL数据库--> <d
- 问题我试图打印some_cell.font.color.rgb并得到各种结果。对于一些人,我得到了我想要的东西(比如“ FF000000”)
- 我完成了更新我们在 Neutron的实时收入统计。在我花了一周的时间完成并且更新了我们的PHP脚本之后,我最终认决定开始使用Py
- 场景:查找who删了我,直接copy代码保存到一个python文件who.py,在python环境下运行此文件代码如下,copy保存到who
- 注意事项:1.PyCharm尽量在官网下载:https://www.jetbrains.com/pycharm/download/也可以用本
- 前言为什么要引用单元测试类传统方法的缺点分析不方便,我们需要在main函数中去调用,这样就需要去修改main函数,如果现在项目正在运行,就可
- 在python3.x中,可以使用pymysql来MySQL数据库的连接,并实现数据库的各种操作,本次博客主要介绍了pymysql的安装和使用
- 前言本文主要给大家介绍的是关于MySQL自定义函数和存储过程的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧1、前
- 简述Motivation一般来说,每个部分的内容数量是较为容易获取的,但比例(百分数)这样的数据是二次数据,这样的操作很常见比例的信息相比于
- 本次目标是将一副图像从rgb颜色空间转换到hsv颜色空间,颜色去除白色背景部分具体就调用了cv2的两个函数,一个是rgb转hsv的函数具体用
- 项目应用中,曾有以下一个场景:接口中要求发送一个int类型的流水号,由于多线程模式,如果用时间戳,可能会有重复的情况(当然概率很小)。所以想
- 本文实例讲述了python打开url并按指定块读取网页内容的方法。分享给大家供大家参考。具体实现方法如下:import urllibpage
- Python 语句语句是 Python 解释器解析和处理的基本指令单元。通常解释器按顺序一个接一个的执行语句。在 REPL 会话中,语句在输
- Python编程中对于某些需要重复调用的程序,可以使用函数进行定义,基本形式为:def 函数名(参数1, 参数2, ……, 参数N):执行语
- 超如果你急需一个简单的Web Server,但你又不想去下载并安装那些复杂的HTTP服务程序,比如:Apache,ISS等。那么, Pyth
- 1、有了已经训练好的模型参数,对这个模型的某些层做了改变,如何利用这些训练好的模型参数继续训练:pretrained_params = to
- 一、CAN报文简介CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称
- 如下所示:import cv2import os#图片路径im_dir = '/home/suanfa/data/out/20170