How to convert audio format with python

2148 views Oct 30, 2024

ဒီလို သာမန် script လေးတွေက ဘာမှမဟုတ်ဘူးလို့ထင်ရပေမယ့် တစ်ချိန်ကျ တစ်ကယ်အသုံးဝင်လာပါတယ်။ဥပမာ မိတ်ဆွေသည် audio format တွေချိန်းပေးတဲ့ web toolလေးတစ်ခုတည်ဆောက်မယ်ဆို ဒီscript လေးက အသုံးဝင်လာပါလိမ့်မယ်။အဲ့တော့ အရမ်းလွယ်လို့စလိုက်ကျရအောင်

ပထမဦးဆုံး ffmpeg ကို install လုပ်ဖို့ လိုပါတယ်။ffmpeg က video audio တွေအတွက်အရမ်းကောင်းတဲ့ tool တစ်ခုပါ။အဲ့တော့ အောက်မှာ step by step installလုပ်နည်းပါပါတယ်။

Step 1 – Setup FFmpeg PPA

$ sudo add-apt-repository ppa:jonathonf/ffmpeg-4

Step 2 – Install FFmpeg on Ubuntu

$ sudo apt-get update
$ sudo apt-get install ffmpeg

Step 3 – Check FFmpeg Version

$ ffmpeg -version
 
ffmpeg version 4.0.3-1~18.04.york0 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
...

အခု ffmpeg ကို အောင်မြင်စွာ install လုပ်ပြီးပြီဆိုတော့ python ပိုင်းပဲကျန်ပါတော့တယ်။

ffmpy ဆိုတဲ့ python library လေးသည် ffmpeg ကို python နဲ့သုံးရတာအဆင်ပြေအောင်လုပ်ပေးထားပါတယ်။အဲ့တော့ ကျွန်တော်တို့ အဲ့library ကို installလုပ်လိုက်ပါ။ကျွန်တော် recommend ပေးတဲ့နည်းကတော့ virtualenv ထဲ installလုပ်ပါ။

$ pip install ffmpy

ပြီးရင်တော့ code ကိုကြည့်ကြရအောင်

import ffmpy
import argparse
 
ap = argparse.ArgumentParser()
ap.add_argument("-i","--input",required=True,help="path to input audio file")
ap.add_argument("-o","--output",required=True,help="output audio")
args = vars(ap.parse_args())
 
def convert_format(filename,output):
	if filename[-4:] in ['.mp3','m4a','.ogg','.wav']:
		ff = ffmpy.FFmpeg(
				inputs={filename:None},
				outputs={output:None}
			)
		ff.run()
 
convert_format(args['input'],args['output'])

အပေါ်ကတော့  change_format.py ပါဝင်တဲ့ code အားလုံး ဖြစ်ပါတယ်။ပထမဆုံး command line ကနေ input file တွေ output file တွေ ပေးလို့ရအောင် argumentparser နဲ့ လက်ခံလိုက်ပါတယ်။

ပြီးရင်တော့ ffmpeg ရဲ့ အကူညီကို ယူပြီး ကိုယ်ထွက်ချင်တဲ့ extension ကို convert_format function ထဲမှာပြောင်းလိုက်တာဖြစ်ပါတယ်။အောက်ပါတိုင်း runလို့ရပါတယ်။ကျေးဇူးတင်ပါတယ်။

$ python change_format.py --input yourinputfile.mp3 --output two.wav