* actions demo

* add unittest

* add info for test

* fix yml

* fix yml

* test log

* remove demo action

* change logger

* readme

* add unittest

* add info for test

* fix yml

* fix yml

* test log

* remove demo action

* change logger

* readme

* Update asr_utils.py

* readme

* infer with tag 1.1.6

* readme

* onnxruntime

* onnxruntime

* timestamp func bug fix

* support grpc+onnxruntime

* onnxruntime

* Add code of generating whl about rapid_paraformer

* Fix README path error

* onnxruntime

* onnxruntime

* add transformerLM egs(aishell2)

* onnxruntime

* onnxruntime

* support hotword parameter passing in the pipeline forward

* onnxruntime

* modify onnxruntime environment dependencies

* onnxruntime

* 0.2.1

* fbank online

* fbank online

* fbank online

* fbank online

* fbank online

* Add sentence timestamp support

Added support for statement event timestamp, which is particularly useful for applications such as lyrics and subtitles.

* fbank online

* bugfix

* readme

* update docs

* update docs

* update docs

* fix uniasr decoding bug

* modify contextual hotword parameter

* onnx

* onnx

* onnx

* onnx

* onnx export

* onnx export

* fix data dir filter bug

* in_cache & support soundfile read

* v0.2.2

* egs recipe asr vad punc

* egs recipe asr vad punc

* add training related code for sond

* add scripts for simu data

* add scripts for simu data

* add scripts for simu data

* add scripts for simu data

* add scripts for simu data

* add scripts for simu data

* add scripts for simu data

* add scripts for simu data

* add scripts for simu data

* simu data

* simu data

* simu data

* sond pipeline

* sond pipeline

* sond pipeline

* sond pipeline

* sond pipeline

* sond pipeline

* sond pipeline

* sond pipeline

* sond pipeline

* sond pipeline

* sond pipeline

* sond pipeline

* sond pipeline

* fixbug for sd and sv

* fixbug for sd and sv

* fixbug for sd and sv

* fixbug sond initial

* fixbug sond initial

* fixbug sond initial

* unit test modelscope for sd

* unit test modelscope for sd

* unit test modelscope for sd

* unit test modelscope for sd

* update cif onnx

* onnx supports tiny and bicif paraformer

* add triton

* add README

* torch version

* Update README.md

* Update README.md

* gpu bug fix

* update vad inference

---------

Co-authored-by: xiaozy <xiaozy@xiaozy-MacBook.local>
Co-authored-by: 游雁 <zhifu.gzf@alibaba-inc.com>
Co-authored-by: hnluo <haoneng.lhn@alibaba-inc.com>
Co-authored-by: 九耳 <mengzhe.cmz@alibaba-inc.com>
Co-authored-by: shixian.shi <shixian.shi@alibaba-inc.com>
Co-authored-by: 北念 <lzr265946@alibaba-inc.com>
Co-authored-by: SWHL <liekkaskono@163.com>
Co-authored-by: wucong.lyb <wucong.lyb@alibaba-inc.com>
Co-authored-by: dingbig <dingbig@gmail.com>
Co-authored-by: speech_asr <wangjiaming.wjm@alibaba-inc.com>
Co-authored-by: 凌匀 <ailsa.zly@alibaba-inc.com>
Co-authored-by: 志浩 <neo.dzh@alibaba-inc.com>
Co-authored-by: root <zhangyuekai@foxmail.com>
Co-authored-by: jiangyu.xzy <jiangyu.xzy@alibaba-inc.com>
This commit is contained in:
magicharry 2023-02-28 18:16:07 +08:00 committed by GitHub
parent be7230fd94
commit 388eaaa3c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 134 additions and 0 deletions

36
.github/workflows/UnitTest.yml vendored Normal file
View File

@ -0,0 +1,36 @@
name: FunASR Unit Test
run-name: ${{ github.actor }} is testing out FunASR Unit Test 🚀
on:
pull_request:
branches:
- main
push:
branches:
- dev_wjm
- dev_jy
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.7"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install torch torchvision torchaudio
pip install "modelscope[audio_asr]" --upgrade -f \
https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install -e ./
- name: Testing
run:
python tests/run_test.py

0
tests/citest.sh Normal file
View File

51
tests/run_test.py Normal file
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)

View File

@ -0,0 +1,47 @@
import unittest
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope.utils.logger import get_logger
logger = get_logger()
class TestInferencePipelines(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_asr_inference_pipeline(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))
def test_asr_inference_pipeline_with_vad_punc(self):
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model='damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch',
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")
rec_result = inference_pipeline(
audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_vad_punc_example.wav')
logger.info("asr inference with vad punc result: {0}".format(rec_result))
def test_vad_inference_pipeline(self):
inference_pipeline = pipeline(
task=Tasks.voice_activity_detection,
model='damo/speech_fsmn_vad_zh-cn-16k-common-pytorch',
model_revision='v1.1.8',
)
segments_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(segments_result))
if __name__ == '__main__':
unittest.main()