Add bi_v100-sensevoice and bi_v100-whisper as subdirectories
This commit is contained in:
7
bi_v100-sensevoice/Dockerfile_sensevoice
Normal file
7
bi_v100-sensevoice/Dockerfile_sensevoice
Normal file
@@ -0,0 +1,7 @@
|
||||
FROM corex:3.2.1
|
||||
|
||||
WORKDIR /workspace
|
||||
COPY requirements_sensevoice.txt constraints_sensevoice.txt server_sensevoice.py launch_sensevoice.sh /workspace/
|
||||
RUN pip install -r requirements_sensevoice.txt -c constraints_sensevoice.txt
|
||||
|
||||
ENTRYPOINT ["/bin/bash", "launch_sensevoice.sh"]
|
||||
5
bi_v100-sensevoice/README.md
Normal file
5
bi_v100-sensevoice/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# tiangai100-sensevoice-funasr
|
||||
|
||||
【语音识别】
|
||||
|
||||
funasr可正常照nvidia方式使用。
|
||||
1
bi_v100-sensevoice/constraints_sensevoice.txt
Normal file
1
bi_v100-sensevoice/constraints_sensevoice.txt
Normal file
@@ -0,0 +1 @@
|
||||
torch==2.1.0+corex.3.2.1
|
||||
4
bi_v100-sensevoice/launch_sensevoice.sh
Executable file
4
bi_v100-sensevoice/launch_sensevoice.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
python3 asr_server.py
|
||||
|
||||
3
bi_v100-sensevoice/requirements_sensevoice.txt
Normal file
3
bi_v100-sensevoice/requirements_sensevoice.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
funasr
|
||||
fastapi
|
||||
uvicorn[standard]
|
||||
41
bi_v100-sensevoice/server_sensevoice.py
Normal file
41
bi_v100-sensevoice/server_sensevoice.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from fastapi import FastAPI, Request
|
||||
from contextlib import asynccontextmanager
|
||||
from funasr import AutoModel
|
||||
from funasr.utils.postprocess_utils import rich_transcription_postprocess
|
||||
import os
|
||||
import torch
|
||||
|
||||
model_dir = os.getenv("MODEL_DIR", "/model/iic/SenseVoiceSmall")
|
||||
model = None
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
global model
|
||||
if model is None:
|
||||
device = "cuda" if torch.cuda.is_available() else "cpu"
|
||||
model = AutoModel(model=model_dir, disable_update=True, device=device)
|
||||
yield
|
||||
pass
|
||||
|
||||
app = FastAPI(lifespan=lifespan)
|
||||
|
||||
@app.post("/recognition")
|
||||
async def asr(request: Request, language: str = "auto"):
|
||||
audio_data = await request.body()
|
||||
res = model.generate(input=audio_data, use_itn=True, ban_emo_unk=True)
|
||||
text = rich_transcription_postprocess(res[0]["text"])
|
||||
return {
|
||||
"RecognitionStatus": "Success",
|
||||
"DisplayText": text
|
||||
}
|
||||
|
||||
@app.get("/health")
|
||||
@app.get("/ready")
|
||||
def ready():
|
||||
return {"status": "ok"}
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import uvicorn
|
||||
uvicorn.run(app, host="0.0.0.0", port=80)
|
||||
|
||||
Reference in New Issue
Block a user