Input: Direktori/folder
Output: Fail berakhiran "_mono" dengan direktori yang sama terhadap input (termasuk subdirektori)
#!/usr/bin/env python3
import os
import argparse
import glob
from pydub import AudioSegment
def stereo2mono(files):
"""Convert all files from stereo to mono.
Note: this would effectively also create a copy of files that were already in a mono format
Parameters
----------
files : iterable
Sequence of files
Example use:
```
$ python3 stereo2mono.py -f /path/to/audio/files/
```
Then you may remove the files that do not contain the '_mono' tag with:
$ find . -name "*-??.wav" -delete # for emovo
"""
for f in files:
print(f"Converting {f}")
# Load audio
sound = AudioSegment.from_wav(f)
# Convert to mono
sound = sound.set_channels(1)
# Save file
stem, ext = os.path.splitext(f)
sound.export(f'{stem}_mono{ext}', format='wav')
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Convert stereo to mono')
parser.add_argument('-f', '--folder',
type=str, help='Path to wavfiles')
args = parser.parse_args()
files = glob.glob(args.folder + '**/*.wav', recursive=True)
stereo2mono(files)
Contoh penggunaan # Konversi ke mono python3 stereo2mono.py -f tensorflow_datasets/downloads/extracted/ZIP.emovo.zip/EMOVO/ # menghapus file yang bukan mono $ pwd /home/bagus/tensorflow_datasets/downloads/extracted/ZIP.emovo.zip/EMOVO/ $ find . -name "*-??.wav" -deleteReferensi gist:
1. https://gist.github.com/bagustris/40b406d99820207bc804a020db169f7e