MCPcopy Create free account
hub / github.com/modelscope/FunASR / main

Function main

funasr/bin/server.py:14–62  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

12
13
14def main():
15 parser = argparse.ArgumentParser(
16 description="FunASR OpenAI-Compatible API Server",
17 formatter_class=argparse.RawDescriptionHelpFormatter,
18 epilog="""
19Examples:
20 funasr-server # Start with SenseVoice on GPU
21 funasr-server --device cpu # Start on CPU
22 funasr-server --model paraformer # Use Paraformer model
23 funasr-server --port 9000 # Custom port
24
25Then use with OpenAI SDK:
26 from openai import OpenAI
27 client = OpenAI(base_url="http://localhost:8000/v1", api_key="x")
28 result = client.audio.transcriptions.create(model="sensevoice", file=open("a.wav","rb"))
29""",
30 )
31 parser.add_argument("--host", default="0.0.0.0", help="Bind address (default: 0.0.0.0)")
32 parser.add_argument("--port", type=int, default=8000, help="Port (default: 8000)")
33 parser.add_argument("--device", default="cuda", help="Device: cuda, cpu, mps (default: cuda)")
34 parser.add_argument("--model", default="auto", help="Pre-load model: auto (GPU=fun-asr-nano, CPU=sensevoice), sensevoice, paraformer, fun-asr-nano")
35 args = parser.parse_args()
36
37 try:
38 import uvicorn
39 import fastapi
40 except ImportError:
41 print("Error: funasr-server requires additional packages.")
42 print("Install with: pip install vllm fastapi uvicorn python-multipart")
43 sys.exit(1)
44
45 # Import and configure the app
46 import os
47 sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', 'examples', 'openai_api'))
48
49 # Use inline app to avoid path issues
50 from funasr.bin._server_app import create_app
51
52 app = create_app(device=args.device, preload_model=args.model)
53
54 print(f"╔══════════════════════════════════════════════╗")
55 print(f"║ FunASR Server v1.3.6 ║")
56 print(f"║ Device: {args.device:<8} ║")
57 print(f"║ Model: {args.model:<12} ║")
58 print(f"║ URL: http://{args.host}:{args.port}/v1 ║")
59 print(f"║ Docs: http://{args.host}:{args.port}/docs ║")
60 print(f"╚══════════════════════════════════════════════╝")
61
62 uvicorn.run(app, host=args.host, port=args.port)
63
64
65if __name__ == "__main__":

Callers 1

server.pyFile · 0.70

Calls 2

create_appFunction · 0.90
runMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…