欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python常用工具之音頻調(diào)整音量

 更新時間:2021年11月25日 09:11:28   作者:劍客阿良_ALiang  
這篇文章主要介紹一個可以將音頻提升音量的python常用工具,代碼具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下

前言

本文提供將音頻提升音量的python代碼,一如既往的實(shí)用主義代碼。

環(huán)境依賴

ffmpeg環(huán)境安裝

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))
 
 
# 通過分貝數(shù)提升
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方法的參數(shù)都為音頻地址、輸出目錄地址、倍率(分貝數(shù))。

2、倍率參數(shù)可以為浮點(diǎn)型,例如:0.5

3、分貝數(shù)可以為負(fù)值。

4、為了避免輸出文件文件名重復(fù),使用uuid作為文件名。

5、音頻后綴格式校驗(yàn)較少,如需添加自行添加。

驗(yàn)證一下

準(zhǔn)備音頻的音量,這里提供查看音頻的分貝數(shù)的ffmpeg命令。

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

執(zhí)行代碼

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))

倍率音量提升效果

增大了一點(diǎn),不明顯,可能跟基礎(chǔ)的分貝數(shù)有關(guān)。

分貝數(shù)提升效果

這個數(shù)值比較精準(zhǔn)。

到此這篇關(guān)于Python常用小工具之 音頻調(diào)整音量的文章就介紹到這了,更多相關(guān)Python 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論