From 2286e7be080f2ddcadcba93daf2f306274ce1915 Mon Sep 17 00:00:00 2001 From: "wucong.lyb" Date: Fri, 10 Mar 2023 15:14:07 +0800 Subject: [PATCH] =?UTF-8?q?fix=20bug=EF=BC=9Amodify=20function=20generate?= =?UTF-8?q?=5Fscp=5Ffrom=5Furl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 对于多通道url音频,目前maas-lib解析出来的bytes 每个通道的数据都混到了一起,因此做出修改:用户输入url音频,maas-lib负责下载到本地,然后把本地音频路径传给funasr,然后由funasr做音频解析 Link: https://code.alibaba-inc.com/Ali-MaaS/MaaS-lib/codereview/11948914 * modify function generate_scp_from_url --- modelscope/utils/audio/audio_utils.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/modelscope/utils/audio/audio_utils.py b/modelscope/utils/audio/audio_utils.py index fe573a38..3f79e8b0 100644 --- a/modelscope/utils/audio/audio_utils.py +++ b/modelscope/utils/audio/audio_utils.py @@ -211,13 +211,19 @@ def generate_scp_from_url(url: str, key: str = None): wav_scp_path = url return wav_scp_path, raw_inputs # for wav url, download bytes data - result = urlparse(url) - if result.scheme is not None and len(result.scheme) > 0: - storage = HTTPStorage() - # bytes - wav_scp_path = storage.read(url) - - return wav_scp_path, raw_inputs + if url.startswith('http'): + result = urlparse(url) + if result.scheme is not None and len(result.scheme) > 0: + storage = HTTPStorage() + # bytes + data = storage.read(url) + work_dir = tempfile.TemporaryDirectory().name + if not os.path.exists(work_dir): + os.makedirs(work_dir) + wav_path = os.path.join(work_dir, os.path.basename(url)) + with open(wav_path, 'wb') as fb: + fb.write(data) + return wav_path, raw_inputs return wav_scp_path, raw_inputs