audio_edit / examples /jik_trim /step_2_trim_audio.py
HoneyTian's picture
add concat
8bea69a
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import argparse
import shutil
from urllib.parse import urlparse
import json
import librosa
import numpy as np
from pathlib import Path
from gradio_client import Client, handle_file
import requests
import pandas as pd
from scipy.io import wavfile
from project_settings import project_path
def get_args():
parser = argparse.ArgumentParser()
parser.add_argument(
"--audio_file",
default="audio.xlsx",
type=str,
)
parser.add_argument(
"--audio_dir",
default=(project_path / "temp/audio_trim/origin").as_posix(),
type=str,
)
parser.add_argument(
"--output_dir",
default=(project_path / "temp/audio_trim/trimmed").as_posix(),
type=str,
)
args = parser.parse_args()
return args
client = Client("http://127.0.0.1:7861/")
def main():
args = get_args()
audio_dir = Path(args.audio_dir)
audio_dir.mkdir(parents=True, exist_ok=True)
output_dir = Path(args.output_dir)
output_dir.mkdir(parents=True, exist_ok=True)
df = pd.read_excel(args.audio_file)
for i, row in df.iterrows():
name = row["name"]
scene_id = row["scene_id"]
audio_id = row["audio_id"]
audio_url = row["audio_url"]
schema = urlparse(audio_url)
path = schema.path
filename = audio_dir / path[1:]
kwargs = {
"silence_threshold": -40,
"min_silence_len": 200,
"min_kept_silence": 200,
"mode": "trim"
}
kwargs = json.dumps(kwargs, ensure_ascii=False, indent=4)
output_audio, log = client.predict(
audio_t=handle_file(filename.as_posix()),
kwargs=kwargs,
engine="pydub_scipy",
api_name="/when_click_trim_audio"
)
trimmed_filename = output_dir / path[1:]
trimmed_filename.parent.mkdir(parents=True, exist_ok=True)
shutil.move(
output_audio,
trimmed_filename.as_posix()
)
return
if __name__ == "__main__":
main()