first commit for takway.ai

This commit is contained in:
IrvingGao committed 2024-05-18 15:50:56 +08:00
commit d7a6de771c
3256 files changed
+795173

No files matched your search

+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env python
import argparse
import os
import sys
import unittest
from fnmatch import fnmatch
def gather_test_cases(test_dir, pattern, list_tests):
case_list = []
for dirpath, dirnames, filenames in os.walk(test_dir):
for file in filenames:
if fnmatch(file, pattern):
case_list.append(file)
test_suite = unittest.TestSuite()
for case in case_list:
test_case = unittest.defaultTestLoader.discover(start_dir=test_dir, pattern=case)
test_suite.addTest(test_case)
if hasattr(test_case, "__iter__"):
for subcase in test_case:
if list_tests:
print(subcase)
else:
if list_tests:
print(test_case)
return test_suite
def main(args):
runner = unittest.TextTestRunner()
test_suite = gather_test_cases(os.path.abspath(args.test_dir), args.pattern, args.list_tests)
if not args.list_tests:
result = runner.run(test_suite)
if len(result.failures) > 0:
sys.exit(len(result.failures))
if len(result.errors) > 0:
sys.exit(len(result.errors))
if __name__ == "__main__":
parser = argparse.ArgumentParser("test runner")
parser.add_argument("--list_tests", action="store_true", help="list all tests")
parser.add_argument("--pattern", default="test_*.py", help="test file pattern")
parser.add_argument("--test_dir", default="tests", help="directory to be tested")
parser.add_argument("--disable_profile", action="store_true", help="disable profiling")
args = parser.parse_args()
print(f"working dir: {os.getcwd()}")
main(args)
+610
View File
@@ -0,0 +1,610 @@
import unittest
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.logger import get_logger
logger = get_logger()
class TestConformerInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_aishell1(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_conformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
def test_aishell2(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_conformer_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
class TestData2vecInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_transformer(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_data2vec_pretrain-zh-cn-aishell2-16k-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://modelscope.oss-cn-beijing.aliyuncs.com/test/audios/asr_example.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
assert rec_result["text"] == "每一天都要快乐喔"
def test_paraformer(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_data2vec_pretrain-paraformer-zh-cn-aishell2-16k",
)
rec_result = inference_pipeline(
audio_in="https://modelscope.oss-cn-beijing.aliyuncs.com/test/audios/asr_example.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
assert rec_result["text"] == "每一天都要快乐喔"
class TestMfccaInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_alimeeting(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="NPU-ASLP/speech_mfcca_asr-zh-cn-16k-alimeeting-vocab4950",
model_revision="v3.0.0",
)
rec_result = inference_pipeline(
audio_in="https://pre.modelscope.cn/api/v1/models/NPU-ASLP/speech_mfcca_asr-zh-cn-16k-alimeeting-vocab4950/repo?Revision=master&FilePath=example/asr_example_mc.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
class TestParaformerInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_paraformer_large_contextual_common(self):
param_dict = dict()
param_dict["hotword"] = (
"https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/hotword.txt"
)
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404",
param_dict=param_dict,
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_hotword.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
assert rec_result["text"] == "国务院发展研究中心市场经济研究所副所长邓郁松认为"
def test_paraformer_large_aishell1(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-aishell1-vocab8404-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
assert rec_result["text"] == "欢迎大家来体验达摩院推出的语音识别模型"
def test_paraformer_large_aishell2(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-aishell2-vocab8404-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
assert rec_result["text"] == "欢迎大家来体验达摩院推出的语音识别模型"
def test_paraformer_large_common(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
assert rec_result["text"] == "欢迎大家来体验达摩院推出的语音识别模型"
def test_paraformer_large_online_common(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online",
model_revision="v1.0.6",
update_model=False,
mode="paraformer_fake_streaming",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
assert rec_result["text"] == "欢迎大家来体验达摩院推出的语音识别模型"
def test_paraformer_online_common(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer_asr_nat-zh-cn-16k-common-vocab8404-online",
model_revision="v1.0.6",
update_model=False,
mode="paraformer_fake_streaming",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
assert rec_result["text"] == "欢迎大家来体验达摩院推出的语音识别模型"
def test_paraformer_tiny_commandword(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer-tiny-commandword_asr_nat-zh-cn-16k-vocab544-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh_command.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
def test_paraformer_8k(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer_asr_nat-zh-cn-8k-common-vocab8358-tensorflow1",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_8K.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
def test_paraformer_aishell1(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
def test_paraformer_aishell2(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
class TestParaformerBertInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_aishell1(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformerbert_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://modelscope.oss-cn-beijing.aliyuncs.com/test/audios/asr_example.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
def test_aishell2(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformerbert_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://modelscope.oss-cn-beijing.aliyuncs.com/test/audios/asr_example.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
class TestUniasrInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_uniasr_2pass_cantonese_chs_16k_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_cantonese-CHS.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_cantonese_chs_16k_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_cantonese-CHS.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_cn_dialect_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_cn_dialect_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_de_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-de-16k-common-vocab3690-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_de.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_de_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-de-16k-common-vocab3690-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_de.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_en_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-en-16k-common-vocab1080-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_en.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_en_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-en-16k-common-vocab1080-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_en.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_es_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-es-16k-common-vocab3445-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_es.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_es_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-es-16k-common-vocab3445-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_es.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_fa_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-fa-16k-common-vocab1257-pytorch-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_fa.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_fa_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-fa-16k-common-vocab1257-pytorch-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_fa.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_fr_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-fr-16k-common-vocab3472-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_fr.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_fr_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-fr-16k-common-vocab3472-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_fr.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_id_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-id-16k-common-vocab1067-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_id.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_id_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-id-16k-common-vocab1067-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_id.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_ja_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-ja-16k-common-vocab93-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_ja.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_ja_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-ja-16k-common-vocab93-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_ja.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_ko_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-ko-16k-common-vocab6400-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_ko.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_ko_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-ko-16k-common-vocab6400-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_ko.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_minnan_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-minnan-16k-common-vocab3825",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_pt_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-pt-16k-common-vocab1617-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_pt.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_pt_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-pt-16k-common-vocab1617-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_pt.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_ru_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-ru-16k-common-vocab1664-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_ru.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_ru_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-ru-16k-common-vocab1664-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_ru.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_vi_common_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-vi-16k-common-vocab1001-pytorch-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_vi.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_vi_common_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-vi-16k-common-vocab1001-pytorch-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_vi.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_zhcn_8k_common_vocab3445_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_zhcn_8k_common_vocab3445_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_zhcn_8k_common_vocab8358_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_zhcn_8k_common_vocab8358_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_zhcn_16k_common_vocab8358_offline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav",
param_dict={"decoding_model": "offline"},
)
logger.info("asr inference result: {0}".format(rec_result))
def test_uniasr_2pass_zhcn_16k_common_vocab8358_online(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_UniASR_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-online",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav",
param_dict={"decoding_model": "normal"},
)
logger.info("asr inference result: {0}".format(rec_result))
if __name__ == "__main__":
unittest.main()
@@ -0,0 +1,36 @@
import unittest
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.logger import get_logger
logger = get_logger()
class TestParaformerInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_inference_pipeline(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
model_revision="v1.2.1",
vad_model="damo/speech_fsmn_vad_zh-cn-16k-common-pytorch",
vad_model_revision="v1.1.8",
punc_model="damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch",
punc_model_revision="v1.1.6",
ngpu=1,
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav"
)
logger.info("asr_vad_punc inference result: {0}".format(rec_result))
assert rec_result["text"] == "欢迎大家来体验达摩院推出的语音识别模型。"
if __name__ == "__main__":
unittest.main()
+27
View File
@@ -0,0 +1,27 @@
import unittest
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.logger import get_logger
logger = get_logger()
class TestTransformerInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_inference_pipeline(self):
inference_pipeline = pipeline(
task=Tasks.language_score_prediction,
model="damo/speech_transformer_lm_zh-cn-common-vocab8404-pytorch",
)
rec_result = inference_pipeline(text_in="hello 大 家 好 呀")
logger.info("lm inference result: {0}".format(rec_result))
if __name__ == "__main__":
unittest.main()
+43
View File
@@ -0,0 +1,43 @@
import unittest
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.logger import get_logger
logger = get_logger()
class TestTransformerInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_inference_pipeline(self):
inference_pipeline = pipeline(
task=Tasks.punctuation,
model="damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch",
model_revision="v1.1.7",
)
inputs = "./egs_modelscope/punctuation/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/data/punc_example.txt"
rec_result = inference_pipeline(text_in=inputs)
logger.info("punctuation inference result: {0}".format(rec_result))
def test_vadrealtime_inference_pipeline(self):
inference_pipeline = pipeline(
task=Tasks.punctuation,
model="damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727",
)
inputs = "跨境河流是养育沿岸|人民的生命之源长期以来为帮助下游地区防灾减灾中方技术人员|在上游地区极为恶劣的自然条件下克服巨大困难甚至冒着生命危险|向印方提供汛期水文资料处理紧急事件中方重视印方在跨境河流问题上的关切|愿意进一步完善双方联合工作机制|凡是|中方能做的我们|都会去做而且会做得更好我请印度朋友们放心中国在上游的|任何开发利用都会经过科学|规划和论证兼顾上下游的利益"
vads = inputs.split("|")
rec_result_all = "outputs:"
param_dict = {"cache": []}
for vad in vads:
rec_result = inference_pipeline(text_in=vad, param_dict=param_dict)
rec_result_all += rec_result["text"]
logger.info("punctuation inference result: {0}".format(rec_result_all))
if __name__ == "__main__":
unittest.main()
+48
View File
@@ -0,0 +1,48 @@
import unittest
import numpy as np
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.logger import get_logger
logger = get_logger()
class TestXVectorInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_inference_pipeline(self):
inference_sv_pipline = pipeline(
task=Tasks.speaker_verification,
model="damo/speech_xvector_sv-zh-cn-cnceleb-16k-spk3465-pytorch",
)
# the same speaker
rec_result = inference_sv_pipline(
audio_in=(
"https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/sv_example_enroll.wav",
"https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/sv_example_same.wav",
)
)
assert (
abs(rec_result["scores"][0] - 0.85) < 0.1 and abs(rec_result["scores"][1] - 0.14) < 0.1
)
logger.info(f"Similarity {rec_result['scores']}")
# different speaker
rec_result = inference_sv_pipline(
audio_in=(
"https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/sv_example_enroll.wav",
"https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/sv_example_different.wav",
)
)
assert abs(rec_result["scores"][0] - 0.0) < 0.1 and abs(rec_result["scores"][1] - 1.0) < 0.1
logger.info(f"Similarity {rec_result['scores']}")
if __name__ == "__main__":
unittest.main()
+58
View File
@@ -0,0 +1,58 @@
import unittest
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.logger import get_logger
logger = get_logger()
class TestTimestampPredictionPipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_inference_pipeline(self):
inference_pipeline = pipeline(
task=Tasks.speech_timestamp,
model="damo/speech_timestamp_prediction-v1-16k-offline",
model_revision="v1.1.0",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_timestamps.wav",
text_in="一 个 东 太 平 洋 国 家 为 什 么 跑 到 西 太 平 洋 来 了 呢",
)
print(rec_result)
logger.info("punctuation inference result: {0}".format(rec_result))
assert rec_result == {
"text": "<sil> 0.000 0.380;一 0.380 0.560;个 0.560 0.800;东 0.800 0.980;太 0.980 1.140;平 1.140 1.260;洋 1.260 1.440;国 1.440 1.680;家 1.680 1.920;<sil> 1.920 2.040;为 2.040 2.200;什 2.200 2.320;么 2.320 2.500;跑 2.500 2.680;到 2.680 2.860;西 2.860 3.040;太 3.040 3.200;平 3.200 3.380;洋 3.380 3.500;来 3.500 3.640;了 3.640 3.800;呢 3.800 4.150;<sil> 4.150 4.440;",
"timestamp": [
[380, 560],
[560, 800],
[800, 980],
[980, 1140],
[1140, 1260],
[1260, 1440],
[1440, 1680],
[1680, 1920],
[2040, 2200],
[2200, 2320],
[2320, 2500],
[2500, 2680],
[2680, 2860],
[2860, 3040],
[3040, 3200],
[3200, 3380],
[3380, 3500],
[3500, 3640],
[3640, 3800],
[3800, 4150],
],
}
if __name__ == "__main__":
unittest.main()
+85
View File
@@ -0,0 +1,85 @@
import unittest
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.logger import get_logger
logger = get_logger()
class TestFSMNInferencePipelines(unittest.TestCase):
def test_funasr_path(self):
import funasr
import os
logger.info("run_dir:{0} ; funasr_path: {1}".format(os.getcwd(), funasr.__file__))
def test_8k(self):
inference_pipeline = pipeline(
task=Tasks.voice_activity_detection,
model="damo/speech_fsmn_vad_zh-cn-8k-common",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/vad_example_8k.wav"
)
logger.info("vad inference result: {0}".format(rec_result))
assert rec_result["text"] == [
[0, 1960],
[2870, 6730],
[7960, 10180],
[12140, 14830],
[15740, 19400],
[20220, 24230],
[25540, 27290],
[30070, 30970],
[32070, 34280],
[35990, 37050],
[39400, 41020],
[41810, 47320],
[48120, 52150],
[53560, 58310],
[59290, 62210],
[63110, 66420],
[67300, 68280],
[69670, 71770],
[73100, 75550],
[76850, 78500],
[79380, 83280],
[85000, 92320],
[93560, 94110],
[94990, 95620],
[96940, 97590],
[98400, 100530],
[101600, 104890],
[108780, 110900],
[112020, 113460],
[114210, 115030],
]
def test_16k(self):
inference_pipeline = pipeline(
task=Tasks.voice_activity_detection,
model="damo/speech_fsmn_vad_zh-cn-16k-common-pytorch",
)
rec_result = inference_pipeline(
audio_in="https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/vad_example.wav"
)
logger.info("vad inference result: {0}".format(rec_result))
assert rec_result["text"] == [
[70, 2340],
[2620, 6200],
[6480, 23670],
[23950, 26250],
[26780, 28990],
[29950, 31430],
[31750, 37600],
[38210, 46900],
[47310, 49630],
[49910, 56460],
[56740, 59540],
[59820, 70450],
]
if __name__ == "__main__":
unittest.main()