Python 音频调整音量(附代码) | Python工具

简介: Python 音频调整音量(附代码) | Python工具

前言

本文提供将音频提升音量的python代码,一如既往的实用主义代码。


环境依赖

ffmpeg环境安装,可以参考我的另一篇文章:windows ffmpeg安装部署_阿良的博客-CSDN博客


ffmpy安装:


pip install ffmpy -i https://pypi.douban.com/simple


代码

不废话上代码。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2021/11/24 22:45
# @Author  : 剑客阿良_ALiang
# @Site    : 
# @File    : raise_audio_volume_tool.py
import os
import uuid
from ffmpy import FFmpeg
# 通过倍率提升
def raise_by_ratio(audio_path: str, output_dir: str, ratio):
    ext = os.path.basename(audio_path).strip().split('.')[-1]
    if ext not in ['wav', 'mp3']:
        raise Exception('format error')
    ff = FFmpeg(
        inputs={
            '{}'.format(audio_path): None}, outputs={
            os.path.join(
                output_dir, '{}.{}'.format(
                    uuid.uuid4(), ext)): '-filter:a "volume={}"'.format(ratio)})
    print(ff.cmd)
    ff.run()
    return os.path.join(output_dir, '{}.{}'.format(uuid.uuid4(), ext))
# 通过分贝数提升
def raise_by_decibel(audio_path: str, output_dir: str, decibel):
    ext = os.path.basename(audio_path).strip().split('.')[-1]
    if ext not in ['wav', 'mp3']:
        raise Exception('format error')
    ff = FFmpeg(
        inputs={
            '{}'.format(audio_path): None}, outputs={
            os.path.join(
                output_dir, '{}.{}'.format(
                    uuid.uuid4(), ext)): '-filter:a "volume={}dB"'.format(decibel)})
    print(ff.cmd)
    ff.run()
    return os.path.join(output_dir, '{}.{}'.format(uuid.uuid4(), ext))



代码说明


1、raise_by_ratio和raise_by_decibel方法的参数都为音频地址、输出目录地址、倍率(分贝数)。


2、倍率参数可以为浮点型,例如:0.5


3、分贝数可以为负值。


4、为了避免输出文件文件名重复,使用uuid作为文件名。


5、音频后缀格式校验较少,如需添加自行添加。


验证一下


准备音频的音量,这里提供查看音频的分贝数的ffmpeg命令。


ffmpeg -i C:\Users\yi\Desktop\660952057553105332.wav -filter_complex volumedetect -c:v copy -f null C:\Users\yi\Desktop\1.txt

image.png


执行代码


if __name__ == '__main__':
    print(
        raise_by_ratio(
            'C:\\Users\\yi\\Desktop\\660952057553105332.wav',
            'C:\\Users\\yi\\Desktop\\', 2))
    print(
        raise_by_decibel(
            'C:\\Users\\yi\\Desktop\\660952057553105332.wav',
            'C:\\Users\\yi\\Desktop\\', -10))

倍率音量提升效果


image.png

增大了一点,不明显,可能跟基础的分贝数有关。

分贝数提升效果

image.png

这个数值比较精准。

总结

没什么好总结的。

分享:

       虽无言,却风雪而立。虽无言,却花满枝头。虽无言,却兀自凋零。——《虫师》

如果本文对你有用的话,请给我一个赞吧,谢谢!

相关文章
|
4月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
5月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
245 92
|
6月前
|
数据安全/隐私保护 Python
微信群成员导出工具, 微信群成员导出软件, 微信群管理工具软件【python】
这个工具提供了完整的微信群成员导出功能,包括登录微信、获取群列表、导出成员信息到Excel等功能
|
4月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
379 3
|
5月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1147 1
|
4月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
960 0
|
5月前
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制
|
5月前
|
安全 API 数据安全/隐私保护
|
5月前
|
Java API 数据安全/隐私保护
淘宝一键上货发布软件,淘宝批量发布上架工具, 淘宝批量上架脚本【python】
这个Python脚本实现了以下功能: 完整的淘宝API调用封装
|
5月前
|
机器人 数据安全/隐私保护 Python
淘宝批量发货发布工具, 淘宝批量上传商品软件, 淘宝批量上架软件【python】
使用Selenium实现自动化操作淘宝卖家后台 支持三种核心功能

推荐镜像

更多