Spaces:
Sleeping
Sleeping
| #!/usr/bin/python3 | |
| # -*- coding: utf-8 -*- | |
| import argparse | |
| import os | |
| from pathlib import Path | |
| import time | |
| from scipy.io import wavfile | |
| from tqdm import tqdm | |
| from project_settings import project_path | |
| def get_args(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument( | |
| "--audio_dir", | |
| default=(project_path / "data/calling/358/wav_2ch").as_posix(), | |
| type=str | |
| ) | |
| parser.add_argument( | |
| "--output_dir", | |
| default=(project_path / "data/calling/358/wav_1ch").as_posix(), | |
| type=str | |
| ) | |
| args = parser.parse_args() | |
| return args | |
| def main(): | |
| args = get_args() | |
| audio_dir = Path(args.audio_dir) | |
| output_dir = Path(args.output_dir) | |
| output_dir.mkdir(parents=True, exist_ok=True) | |
| finished = set() | |
| for filename in tqdm(list(output_dir.glob("*.wav"))): | |
| splits = filename.stem.split("_") | |
| call_id = splits[3] | |
| finished.add(call_id) | |
| print(f"finished count: {len(finished)}") | |
| for filename in tqdm(list(audio_dir.glob("*.wav"))): | |
| call_id = filename.stem | |
| if call_id in finished: | |
| os.remove(filename.as_posix()) | |
| continue | |
| finished.add(call_id) | |
| try: | |
| sample_rate, signal = wavfile.read(filename.as_posix()) | |
| except UnboundLocalError as error: | |
| print(f"wavfile read failed. error type: {type(error)}, text: {str(error)}, filename: {filename.as_posix()}") | |
| raise error | |
| if sample_rate != 8000: | |
| raise AssertionError | |
| signal = signal[:, 0] | |
| to_filename = output_dir / f"active_media_r_{call_id}_fi-FI_none.wav" | |
| try: | |
| wavfile.write( | |
| to_filename.as_posix(), | |
| sample_rate, | |
| signal | |
| ) | |
| os.remove(filename.as_posix()) | |
| except OSError as error: | |
| print(f"wavfile write failed. error type: {type(error)}, text: {str(error)}, filename: {filename.as_posix()}") | |
| raise error | |
| return | |
| if __name__ == "__main__": | |
| main() | |