Python常用工具之音頻調(diào)整音量
前言
本文提供將音頻提升音量的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)文章
Python Django中的STATIC_URL 設(shè)置和使用方式
這篇文章主要介紹了Python Django中的STATIC_URL 設(shè)置和使用方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Opencv實(shí)現(xiàn)二維直方圖的計(jì)算及繪制
這篇博客將介紹如何使用Opencv進(jìn)行二維直方圖的計(jì)算及繪制,維直方圖可以讓我們對不同的像素密度有更好的了解,感興趣的可以了解一下2021-07-07如何解決jupyter notebook無法導(dǎo)入自己安裝的包
這篇文章主要介紹了如何解決jupyter notebook無法導(dǎo)入自己安裝的包問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07Python利用正則表達(dá)式匹配并截取指定子串及去重的方法
這篇文章主要介紹了Python利用正則表達(dá)式匹配并截取指定子串及去重的方法,涉及Python正則表達(dá)式匹配及字符串截取操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07從零學(xué)python系列之教你如何根據(jù)圖片生成字符畫
網(wǎng)上有很多的字符畫,看起來很炫酷,下面就告訴你如何用Python做這么炫酷的事,2014-05-05Python調(diào)用百度AI實(shí)現(xiàn)圖片上表格識別功能
這篇文章主要給大家介紹了關(guān)于Python調(diào)用百度AI實(shí)現(xiàn)圖片上表格識別功能的相關(guān)資料,在Python環(huán)境下,利用百度AI開放平臺文字識別技術(shù),對表格類圖片進(jìn)行識別,需要的朋友可以參考下2021-09-09Python關(guān)于時間序列calendar模塊的深入講解
calendar,是與日歷相關(guān)的模塊。calendar模塊文件里定義了很多類型,主要有Calendar,TextCalendar以及HTMLCalendar類型。其中,Calendar是TextCalendar與HTMLCalendar的基類2021-11-11