modelscope-funasr这个有python的rest-api demo吗?我用的离线版本,客户端通过post请求发送.pcm二进制数据至模型,模型怎么接受处理?
在使用ModelScope-FunASR的离线版本时,您可以通过Python实现一个REST API服务来接收客户端发送的.pcm
二进制数据,并将其传递给模型进行处理。以下是详细的步骤和代码示例:
确保您已经正确安装了ModelScope-FunASR工具包,并验证其功能是否正常。如果尚未安装,请参考以下步骤:
# 克隆FunASR代码仓库
git clone https://github.com/alibaba-damo-academy/FunASR.git
cd FunASR
# 安装依赖
pip install -r requirements.txt
# 安装FunClip
pip install funasr[clip]
# 验证安装是否成功
python -c "import funasr.utils.cli_utils; funasr.utils.cli_utils.print_info()"
为了接收客户端通过POST请求发送的.pcm
二进制数据,您可以使用Python的Flask
框架创建一个简单的REST API服务。
以下是一个完整的REST API服务代码示例,用于接收.pcm
文件并调用FunASR模型进行处理:
from flask import Flask, request, jsonify
import numpy as np
from funasr import AutoModel
app = Flask(__name__)
# 初始化FunASR模型
model = AutoModel(model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
model_revision="v2.0.4",
device="cpu") # 如果有GPU,可以设置为"cuda"
@app.route('/asr', methods=['POST'])
def asr():
# 检查是否有文件上传
if 'file' not in request.files:
return jsonify({"error": "No file part"}), 400
file = request.files['file']
if file.filename == '':
return jsonify({"error": "No selected file"}), 400
# 读取PCM二进制数据
pcm_data = file.read()
# 将二进制数据转换为numpy数组
audio_data = np.frombuffer(pcm_data, dtype=np.int16)
# 调用FunASR模型进行语音识别
result = model.generate(input=audio_data, input_len=len(audio_data) / 16000) # 假设采样率为16kHz
# 返回识别结果
return jsonify({"result": result})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
客户端可以通过curl
或Python的requests
库发送.pcm
文件的二进制数据到上述API服务。
curl -X POST http://localhost:5000/asr \
-F "file=@/path/to/your/audio.pcm"
import requests
url = "http://localhost:5000/asr"
files = {"file": open("/path/to/your/audio.pcm", "rb")}
response = requests.post(url, files=files)
print(response.json())
.pcm
二进制数据。numpy
数组,以便FunASR模型能够处理。generate
方法对音频数据进行语音识别。.pcm
文件采样率为16kHz。如果不是,请在客户端或服务端进行重采样。speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch
)。通过以上步骤,您可以轻松实现一个基于ModelScope-FunASR的REST API服务,用于接收.pcm
二进制数据并完成语音识别任务。
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352