ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

FunASR 云端部署准备:阿里云 ECS 申请、安全组放通端口与 runtime-SDK 一键部署实操指南

FunASR 云端部署准备:阿里云 ECS 申请、安全组放通端口与 runtime-SDK 一键部署实操指南 FunASR 云端部署准备阿里云 ECS 申请、安全组放通端口与 runtime-SDK 一键部署实操指南【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR本篇基于 FunASR 仓库中的云服务器申请教程完整覆盖从注册阿里云账号、领取免费试用 ECS 实例、安全组放通服务端口到远程登录并一键部署 FunASR 离线文件转写服务runtime-SDK的全过程。读完本文你可以独立申请一台云服务器放通 FunASR 服务所需的宿主机端口并在其上部署支持 VAD、Paraformer-large ASR、标点恢复的完整语音识别服务供本机或跨机客户端调用。一、为什么要先申请云服务器FunASR 服务端部署的前置条件FunASR 的 runtime-SDK 服务端是一个长驻的 WebSocket 服务默认端口 10095客户端Python/C/Java/HTML通过网络与其通信。要在一台自己的服务器上稳定部署并对外提供服务需要满足三个前提一台 Linux 云服务器一键部署脚本runtime/deploy_tools/funasr-runtime-deploy-offline-cpu-zh.sh目前仅支持 Linux 环境脚本内按ubuntu/centos/debian/alios/alinux等发行版分支安装 Docker 与 ffmpeg见脚本第 928-951 行与第 1150-1170 行Windows 本地环境请参考开发指南手动部署足够打开安全组端口客户端需要访问宿主机上的服务端口而云服务器的流量默认被安全组拦截必须手动添加入方向规则足够的 CPU/内存资源服务端推理是 CPU 密集型任务并发能力与 vCPU 数直接相关。关于服务器规模仓库配套文档 SDK_tutorial_zh.md 给出的推荐配置可作为选型参考配置规格X86 计算型单机约可支持并发配置14 核 vCPU / 8G 内存约 32 路配置216 核 vCPU / 32G 内存约 64 路配置364 核 vCPU / 128G 内存约 200 路对于初次体验免费试用档位的低配实例已经足够跑通整条链路。二、注册并登录阿里云账号以阿里云为例演示申请流程原文档步骤打开阿里云官网注册并登录个人账号登录后在控制台首页找到“免费试用”入口进入试用页面。个人账号与企业认证账号的试用额度不同原文档给出的额度为个人账号可免费试用 1 核 2GB 内存、每月 750 小时企业认证后可免费试用 2 核 8GB 内存 3 个月。试用政策可能随厂商活动调整以控制台实际展示为准。三、申请 ECS 实例免费试用流程在免费试用页面中按原文档步骤操作根据账号情况选择可用的试用实例规格进入试用申请界面依次完成镜像、地域、网络等基础项选择后点击“立即试用”等待实例创建完成。实例创建成功后即可进行下一步的端口放通。提示申请时选定的地域会决定实例的公网 IP 所在可用区客户端跨地域访问时注意网络质量本文后续所有命令均以 Linux 发行版的 ECS 实例为前提。四、开放服务端口安全组入方向规则配置这是原文档中承上启下、也是最容易卡住的一步云服务器创建后安全组默认只放行有限的入方向端口如果不手动添加规则客户端将无法访问部署好的 FunASR 服务。原文档操作步骤在 ECS 实例列表中点击“安全组”进入安全组详情后选择入方向规则页签点击“手动添加”分别填入端口范围和来源地址后保存。4.1 应该放通哪个端口——与部署脚本默认端口对齐从源码可以确认 FunASR 离线部署的默认端口约定。在 部署脚本 中DEFAULT_DOCKER_PORT10095宿主机端口的交互逻辑见脚本setupHostPort函数第 554-593 行安装时会提示输入宿主机端口取值范围校验为1-65535直接回车则采用默认值10095脚本最终通过docker run -p HOST_PORT:DOCKER_PORT完成端口映射第 985-1000 行。因此在安全组“手动添加”规则时建议填写端口范围10095/10095即脚本默认宿主机端口如果你部署时改过--host_port则与安全组中填写的端口保持一致授权对象/来源开发验证阶段可填本机公网 IP 的/32测试方便时可临时用0.0.0.0/0生产环境应收敛到实际客户端网段。4.2 为什么不能省略这一步FunASR 服务的 Docker 镜像内服务端进程直接监听容器内 10095 端口Dockerfile.online.cpu 中声明了EXPOSE 10095宿主机端口映射由部署脚本负责但云厂商层面的入方向放行只能由你在安全组中手动完成——三层链路“客户端公网 IP → 安全组规则 → 宿主机端口映射 → 容器端口”任何一层不通连接都会失败。排障时建议按这个顺序逐层检查。五、启动 ECS 实例并完成首次远程登录实例创建完成后按原文档步骤点击实例名称进入实例详情点击“远程连接/远程启动”在弹出的页面中点击“立即登录”进入 VNC 控制台终端首次登录需先重置密码在登录界面点击“重置密码”设置新密码后输入密码并确认首次登录可能遇到原文档截图中标号 20 所示的登录问题如认证方式不匹配按控制台提示的文档操作通常涉及切换登录方式为密码认证并重启实例后重新登录成功后即可进入 shell 终端。登录成功后你会得到一个 root 权限的 Linux 终端后续所有部署命令都在此终端中执行。六、登录后一键部署 FunASR 离线文件转写服务原文档的收尾动作是“根据 FunASR runtime-SDK 部署文档进行一键部署”。结合仓库内的部署脚本把这条链路展开如下。6.1 下载部署脚本curl -O https://raw.githubusercontent.com/modelscope/FunASR/main/runtime/deploy_tools/funasr-runtime-deploy-offline-cpu-zh.sh # 如遇到网络问题中国大陆用户可以使用下面的命令 # curl -O https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/shell/funasr-runtime-deploy-offline-cpu-zh.sh仓库内对应源文件为 funasr-runtime-deploy-offline-cpu-zh.sh当前仓库版本scriptVersion0.0.8。6.2 执行安装部署sudo bash funasr-runtime-deploy-offline-cpu-zh.sh install --workspace ./funasr-runtime-resources脚本必须以 root/sudo 运行脚本rootNess函数会检查并提示MUST RUN AS ROOT USER。从源码结构看整个 install 流程分为 6 个阶段检查 root 权限[0/6]拉取 Docker 镜像列表并选择镜像[1/6]列表来自仓库内的 docker_offline_cpu_zh_lists当前列出funasr-runtime-sdk-cpu-0.4.5、0.3.0、0.2.2三个版本镜像仓库为registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr选择模型[2/6]ASR/VAD/标点/语言模型均为菜单式选择默认可选的 ASR 模型包括damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx基础版、带时间戳的 vad-punc 版本、以及热词版damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404-onnx与教程中“1 为基础模型、2 为时间戳模型、3 为热词模型”的说明一致设置宿主机端口[3/6]默认 10095即第四节在安全组放通的端口安装 Docker 并拉取镜像[5/6]按发行版自动选择 Docker 安装方式Ubuntu 走 test-docker.sh、CentOS 走 get.docker.com 镜像源等运行容器并部署样例[6/6]生成服务配置、启动容器随后下载funasr_samples样例包含 Python/C 客户端与asr_example.wav测试音频到--workspace指定目录并自动pip3 install -r客户端依赖、按发行版安装 ffmpeg。所有选择项会持久化到~/.funasr_offline/configsaveParams函数写入这就是之后start/stop/restart/update子命令“按上次部署设置执行”的依据。6.3 客户端连通性验证部署完成后样例包中的 Python 客户端即可完成端到端验证客户端源码参见 funasr_wss_client.pypython3 funasr_wss_client.py --host 127.0.0.1 --port 10095 --mode offline --audio_in ../audio/asr_example.wav跨机器访问时把--host改为 ECS 公网 IP——这正依赖第四节放通的安全组端口。关键参数来自客户端源码的argparse定义参数默认值说明--hostlocalhost服务机器 IP跨机时改为部署机器 IP--port10095服务端口须与安全组/宿主机端口一致--mode2passoffline文件转写/online/2pass--audio_in无音频文件路径支持.wav/.pcm/.mp3等及wav.scp文件列表--thread_num1客户端并发发送线程数--ssl11 开启 SSL 校验0 关闭--use_itn11 开启逆文本归一化0 关闭--hotword无热词文件每行格式热词 权重如阿里巴巴 206.4 服务生命周期管理后续日常运维使用同一脚本的子命令均需 sudosudo bash funasr-runtime-deploy-offline-cpu-zh.sh start # 按上次部署配置启动 sudo bash funasr-runtime-deploy-offline-cpu-zh.sh stop # 停止 sudo bash funasr-runtime-deploy-offline-cpu-zh.sh restart # 重启 sudo bash funasr-runtime-deploy-offline-cpu-zh.sh remove # 释放容器并删除部署配置 sudo bash funasr-runtime-deploy-offline-cpu-zh.sh show # 查看当前全部已配置参数update子命令可修改参数并自动重启生效源码层面parseInput/modelChange/portChange/threadNumChange函数确认支持的项为# 替换模型model_id 或本地模型路径替换后自动重启 sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --asr_model model_id or local path sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --vad_model model_id or local path sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --punc_model model_id or local path # 更新端口 / 线程数 / 工作目录 / SSL1-65536 端口校验见 portChange() sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --host_port port sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --docker_port port sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --decode_thread_num n # 如 32 sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --io_thread_num n sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --workspace local dir sudo bash funasr-runtime-deploy-offline-cpu-zh.sh update --ssl 0 # 0 关闭 SSL默认 1 开启从脚本serverConfigGeneration函数第 1074-1130 行可以看到服务端配置最终生成为一段 JSON传给容器内funasr-wss-server进程包含--model-dir/--vad-dir/--punc-dir等模型参数、--decoder-thread-num/--io-thread-num线程参数、--port端口参数SSL 开启时自动指向镜像内置证书/workspace/FunASR/runtime/ssl_key/server.crt与server.key仓库中对应 server.crt这解释了为什么客户端--ssl默认为 1。此外脚本对推理线程的默认策略complementParameters函数值得注意--decode_thread_num默认等于 CPU 核数--io_thread_num默认取其 1/4最少 1。这也印证了第四节选型表里“并发能力随核数线性增长”的结论——在 4 核试用机上建议保持默认或按需下调避免线程超配。七、小结从一台云服务器到可用 ASR 服务的完整链路把全流程串起来即注册账号 → 免费试用申请 ECS → 安全组手动添加入方向规则放通 10095与部署脚本默认端口一致→ 远程登录先重置密码→ 下载并执行funasr-runtime-deploy-offline-cpu-zh.sh install→ 用样例客户端验证 → 用start/stop/update/show子命令长期运维。每一步在仓库中都有对应证据申请流程见原文档 aliyun_server_tutorial.md端口与参数默认值见 部署脚本镜像与模型清单见 docker_offline_cpu_zh_lists客户端参数与协议见 funasr_wss_client.py 与 SDK_tutorial_zh.md。部署完成后如需了解 C/Java/HTML 等更多客户端接入方式可继续查阅 websocket_protocol_zh.md。【免费下载链接】FunASROpen-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.项目地址: https://gitcode.com/GitHub_Trending/fun/FunASR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表