From f57b68121a526baea43b2e93f4540d8a2995f633 Mon Sep 17 00:00:00 2001
From: 游雁 <zhifu.gzf@alibaba-inc.com>
Date: 星期一, 29 四月 2024 15:15:24 +0800
Subject: [PATCH] batch
---
funasr/auto/auto_frontend.py | 41 ++++++++++++++++++++++-------------------
1 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/funasr/auto/auto_frontend.py b/funasr/auto/auto_frontend.py
index b802b83..b8fa7e0 100644
--- a/funasr/auto/auto_frontend.py
+++ b/funasr/auto/auto_frontend.py
@@ -33,7 +33,7 @@
if "model_conf" not in kwargs:
logging.info("download models from model hub: {}".format(kwargs.get("hub", "ms")))
kwargs = download_model(**kwargs)
-
+
# build frontend
frontend = kwargs.get("frontend", None)
if frontend is not None:
@@ -45,25 +45,23 @@
del kwargs["frontend"]
self.kwargs = kwargs
-
def __call__(self, input, input_len=None, kwargs=None, **cfg):
-
+
kwargs = self.kwargs if kwargs is None else kwargs
kwargs.update(cfg)
-
key_list, data_list = prepare_data_iterator(input, input_len=input_len)
batch_size = kwargs.get("batch_size", 1)
device = kwargs.get("device", "cpu")
if device == "cpu":
batch_size = 1
-
+
meta_data = {}
-
+
result_list = []
num_samples = len(data_list)
pbar = tqdm(colour="blue", total=num_samples + 1, dynamic_ncols=True)
-
+
time0 = time.perf_counter()
for beg_idx in range(0, num_samples, batch_size):
end_idx = min(num_samples, beg_idx + batch_size)
@@ -72,27 +70,32 @@
# extract fbank feats
time1 = time.perf_counter()
- audio_sample_list = load_audio_text_image_video(data_batch, fs=self.frontend.fs, audio_fs=kwargs.get("fs", 16000))
+ audio_sample_list = load_audio_text_image_video(
+ data_batch, fs=self.frontend.fs, audio_fs=kwargs.get("fs", 16000)
+ )
time2 = time.perf_counter()
meta_data["load_data"] = f"{time2 - time1:0.3f}"
- speech, speech_lengths = extract_fbank(audio_sample_list, data_type=kwargs.get("data_type", "sound"),
- frontend=self.frontend, **kwargs)
+ speech, speech_lengths = extract_fbank(
+ audio_sample_list,
+ data_type=kwargs.get("data_type", "sound"),
+ frontend=self.frontend,
+ **kwargs,
+ )
time3 = time.perf_counter()
meta_data["extract_feat"] = f"{time3 - time2:0.3f}"
- meta_data["batch_data_time"] = speech_lengths.sum().item() * self.frontend.frame_shift * self.frontend.lfr_n / 1000
-
+ meta_data["batch_data_time"] = (
+ speech_lengths.sum().item() * self.frontend.frame_shift * self.frontend.lfr_n / 1000
+ )
+
speech.to(device=device), speech_lengths.to(device=device)
batch = {"input": speech, "input_len": speech_lengths, "key": key_batch}
result_list.append(batch)
-
+
pbar.update(1)
- description = (
- f"{meta_data}, "
- )
+ description = f"{meta_data}, "
pbar.set_description(description)
-
+
time_end = time.perf_counter()
pbar.set_description(f"time escaped total: {time_end - time0:0.3f}")
-
- return result_list
+ return result_list
--
Gitblit v1.9.1