|
12 | 12 | import gradio as gr |
13 | 13 | from funasr import AutoModel |
14 | 14 | from videoclipper import VideoClipper |
| 15 | +from model_selection import create_asr_model as _create_asr_model |
15 | 16 | from llm.openai_api import openai_call |
16 | 17 | from llm.qwen_api import call_qwen_model |
17 | 18 | from llm.g4f_openai_api import g4f_openai_call |
|
22 | 23 | from launch_config import build_launch_kwargs |
23 | 24 |
|
24 | 25 |
|
25 | | -def create_asr_model(model_name, lang, auto_model_cls=AutoModel): |
26 | | - if model_name == "fun-asr-nano": |
27 | | - return auto_model_cls( |
28 | | - model="FunAudioLLM/Fun-ASR-Nano-2512", |
29 | | - trust_remote_code=True, |
30 | | - remote_code="./model.py", |
31 | | - vad_model="fsmn-vad", |
32 | | - vad_kwargs={"max_single_segment_time": 30000}, |
33 | | - spk_model="cam++", |
34 | | - hub="hf", |
35 | | - ) |
36 | | - if model_name == "sensevoice": |
37 | | - return auto_model_cls( |
38 | | - model="iic/SenseVoiceSmall", |
39 | | - vad_model="fsmn-vad", |
40 | | - vad_kwargs={"max_single_segment_time": 30000}, |
41 | | - spk_model="cam++", |
42 | | - ) |
43 | | - |
44 | | - paraformer_model = ( |
45 | | - "iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch" |
46 | | - if lang == "zh" |
47 | | - else "iic/speech_paraformer_asr-en-16k-vocab4199-pytorch" |
48 | | - ) |
49 | | - return auto_model_cls( |
50 | | - model=paraformer_model, |
51 | | - vad_model="damo/speech_fsmn_vad_zh-cn-16k-common-pytorch", |
52 | | - punc_model="damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch", |
53 | | - spk_model="damo/speech_campplus_sv_zh-cn_16k-common", |
| 26 | +def create_asr_model(model_name, lang, auto_model_cls=AutoModel, **kwargs): |
| 27 | + return _create_asr_model( |
| 28 | + model_name, lang, auto_model_cls=auto_model_cls, **kwargs |
54 | 29 | ) |
55 | 30 |
|
56 | 31 |
|
57 | 32 | if __name__ == "__main__": |
58 | 33 | parser = argparse.ArgumentParser(description='argparse testing') |
59 | 34 | parser.add_argument('--lang', '-l', type=str, default = "zh", help="language mode; selects the Paraformer checkpoint but does not override --model") |
60 | | - parser.add_argument('--model', '-m', type=str, default="paraformer", choices=["paraformer", "fun-asr-nano", "sensevoice"], help="ASR model: paraformer, fun-asr-nano, or sensevoice (takes precedence over --lang)") |
| 35 | + parser.add_argument('--model', '-m', type=str, default="paraformer", choices=["paraformer", "fun-asr-nano", "sensevoice", "moss"], help="ASR model: paraformer, fun-asr-nano, sensevoice, or moss (takes precedence over --lang)") |
| 36 | + parser.add_argument('--moss-backend', choices=["vllm"], default="vllm", help="MOSS runtime backed by an existing vLLM transcription service") |
| 37 | + parser.add_argument('--moss-base-url', default="http://127.0.0.1:8898/v1", help="OpenAI-compatible base URL for the MOSS vLLM service") |
| 38 | + parser.add_argument('--moss-api-key-env', default="MOSS_API_KEY", help="environment variable containing the optional MOSS service API key") |
| 39 | + parser.add_argument('--moss-max-tokens', type=int, default=8192, help="MOSS generation limit for long recordings") |
61 | 40 | parser.add_argument('--share', '-s', action='store_true', help="if to establish gradio share link") |
62 | 41 | parser.add_argument('--port', '-p', type=int, default=7860, help='port number') |
63 | 42 | parser.add_argument('--listen', action='store_true', help="if to listen to all hosts") |
64 | 43 | args = parser.parse_args() |
65 | 44 |
|
66 | | - funasr_model = create_asr_model(args.model, args.lang) |
| 45 | + moss_api_key = os.environ.get(args.moss_api_key_env) if args.moss_api_key_env else None |
| 46 | + funasr_model = create_asr_model( |
| 47 | + args.model, |
| 48 | + args.lang, |
| 49 | + moss_backend=args.moss_backend, |
| 50 | + moss_base_url=args.moss_base_url, |
| 51 | + moss_api_key=moss_api_key, |
| 52 | + moss_max_tokens=args.moss_max_tokens, |
| 53 | + ) |
67 | 54 | audio_clipper = VideoClipper(funasr_model) |
68 | 55 | audio_clipper.lang = args.lang |
69 | 56 |
|
|
0 commit comments