ARTICLE DETAIL

资讯详情

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

FunASR HTTP 离线转写运行时:依赖安装与编译环境配置实战指南

FunASR HTTP 离线转写运行时:依赖安装与编译环境配置实战指南 FunASR HTTP 离线转写运行时依赖安装与编译环境配置实战指南【免费下载链接】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 仓库runtime/http目录下的依赖安装文档 requirements_install.md 为核心系统讲解如何为 HTTP 语音转写服务funasr-http-server准备完整的编译环境包括 onnxruntime 推理引擎、ffmpeg 媒体库的下载方式OpenBLAS 与 OpenSSL 等系统级开发库在 Ubuntu/CentOS 下的安装命令。读完本文你能独立完成 C HTTP 推理服务从依赖安装、CMake 构建到启动冒烟测试的全流程。一、文档定位这份文档解决什么问题FunASR 的 C 运行时按服务形态分为多个目录http、websocket、grpc、onnxruntime、triton_gpu等其中 runtime/http 提供的是离线文件转写 HTTP 服务——客户端通过 HTTP POST 上传音频文件服务端完成 VAD ASR 标点处理后返回识别文本。runtime/http/readme.md 顶部链接到离线转写与实时听写两份开发指南SDK_advanced_guide_offline.md、SDK_advanced_guide_online.md并明确提示“如果您想自己编译文件可以参考下述步骤”。requirements_install.md正是“自己编译”路线的第一环在运行 CMake 之前必须先在系统上准备好三类手动依赖。它的价值在于给出了最小的手工准备清单依赖用途准备方式onnxruntime 1.14.0预编译 linux-x64 包模型推理引擎运行下载脚本ffmpeglinux64 gpl-shared 共享库包音频解码与重采样运行下载脚本OpenBLAS、OpenSSL 开发库数值计算 / TLS 加密包管理器安装系统开发包需要注意文档中命令的一个路径细节文档里写的是bash third_party/download_onnxruntime.sh而这两个脚本在仓库中的实际存放位置是 runtime/onnxruntime/third_party/download_onnxruntime.sh 和 runtime/onnxruntime/third_party/download_ffmpeg.sh。从脚本位置与 grpc/Readme.md 的引用方式看third_party/指向的是runtime/onnxruntime下的第三方依赖目录——执行时建议先cd runtime/onnxruntime或直接使用完整路径bash third_party/download_*.sh在 onnxruntime 目录下。另外同一份安装说明也以 runtime/websocket/requirements_install.md 的形式服务 websocket 运行时内容完全一致说明这是一套在 C 运行时之间复用的标准依赖模板。二、步骤一下载 onnxruntime 推理引擎文档给出的原始操作bash third_party/download_onnxruntime.sh脚本内部实际做了什么查看 download_onnxruntime.sh其逻辑只有两条命令通过wget拉取 onnxruntime 官方v1.14.0的 linux-x64 预编译发布包onnxruntime-linux-x64-1.14.0.tgz脚本注释明确指向 onnxruntime 的 v1.14.0 发布版本tar -zxvf解包得到onnxruntime-linux-x64-1.14.0/目录内含include/、lib/、lib64/等。也就是说版本被锁定在 1.14.0不需要也不建议自行升级到其他版本以保证与 FunASR C 源码的 API 兼容性。为什么必须手动准备 onnxruntimeonnxruntime 没有走 CMake 源码编译路线而是以“预编译二进制 头文件”的方式注入构建。从 runtime/http/CMakeLists.txt 可以看到link_directories(${ONNXRUNTIME_DIR}/lib) link_directories(${FFMPEG_DIR}/lib)这里的${ONNXRUNTIME_DIR}就是你在配置 CMake 时必须传入的、指向解包后目录onnxruntime-linux-x64-1.14.0的路径变量。核心的推理逻辑库funasr由 runtime/onnxruntime/CMakeLists.txt 中同样的link_directories(${ONNXRUNTIME_DIR}/lib)/link_directories(${FFMPEG_DIR}/lib)驱动构建负责加载.onnx模型并调用 onnxruntime C API 执行推理因此这个依赖是编译链的硬性前提。备选方式如果从脚本的下载源无法访问runtime/http/readme.md 还给出了从阿里云 OSS 镜像下载同版本onnxruntime-linux-x64-1.14.0.tgz的等价wgettar命令两条路线产物一致。三、步骤二下载 ffmpeg 媒体库文档给出的原始操作bash third_party/download_ffmpeg.sh脚本内部实际做了什么download_ffmpeg.sh 同样只有两条命令wget下载预编译的 ffmpeg 共享库包包名为ffmpeg-N-111383-g20b8688092-linux64-gpl-shared.tar.xzGPL 授权、linux64、动态链接版tar -xvf解包得到ffmpeg-...-gpl-shared/目录内含bin/、include/、lib/。ffmpeg 在转写链路中的角色HTTP 服务接收到的音频文件可能是 wav、mp3 等多种容器格式服务端需要在推理前完成解码与重采样到模型要求的 16kHz 单声道输入。从源码结构看onnxruntime 核心库的编译源中包含resample.cppruntime/onnxruntime/src 目录且在 Windows 构建中被显式并入关联源文件列表见 runtime/http/bin/CMakeLists.txt 中的RELATION_SOURCE音频重采样与解码能力正是依赖 ffmpeg 提供的 libavcodec/libavformat 等共享库。这也是FFMPEG_DIR/lib被写入链接目录的原因。与 onnxruntime 一样ffmpeg 目录通过-DFFMPEG_DIR/path/to/ffmpeg-...-gpl-shared传入 CMake指向解包后的根目录。四、步骤三安装系统级开发库OpenBLAS 与 OpenSSL文档给出的原始操作sudo apt-get install libopenblas-dev libssl-dev #ubuntu # sudo yum -y install openblas-devel openssl-devel #centos这一小节覆盖两类“系统包管理器才能提供”的依赖CMake 会自动搜索它们OpenSSLHTTP 服务的硬性链接依赖OpenSSL 是 CMake 中显式REQUIRED的查找目标。runtime/http/CMakeLists.txt 中写道# install openssl first apt-get install libssl-dev find_package(OpenSSL REQUIRED)注意这行中文注释——CMake 作者自己提示了“先安装 openssl”。最终可执行文件也确实链接了它runtime/http/bin/CMakeLists.txt 中target_link_libraries(funasr-http-server PUBLIC funasr ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY})OPENSSL_SSL_LIBRARY支撑服务端 TLS/HTTPS 能力OPENSSL_CRYPTO_LIBRARY提供基础加密原语。若系统缺少libssl-devCMake 配置阶段就会因find_package(OpenSSL REQUIRED)失败而直接报错这是新环境上最常见的第一个报错点。OpenBLASCPU 数值计算依赖libopenblas-dev提供 BLAS 数值线性代数库。从源码结构看仓库 CMake 文件中没有对 openblas 的直接find_package调用可以推断它是 onnxruntime 预编译 CPU 包在运行/链接期的数值计算依赖由文档统一纳入安装清单保证推理引擎的矩阵运算性能与链接完整性。补充ZLIB 与 Boost除文档列出的三项外阅读构建脚本还能发现两个隐含的系统依赖建议在装环境时一并确认ZLIBruntime/http/bin/CMakeLists.txt 中有find_package(ZLIB REQUIRED)可执行文件直接链接它。若系统缺 zlib 开发文件需额外安装对应的 zlib 开发包Ubuntu 上通常称zlib1g-dev。Boostruntime/http/readme.md 的 “Install deps” 一节额外要求apt install libboost-dev libboost-system-devCentOS 对应 yum 安装 boost-devel。requirements_install.md未列出它但以 readme 的完整依赖清单为准更稳妥。五、无需手动准备的依赖CMake 自动处理为避免“装依赖”范围失控有必要区分手动依赖与自动依赖。runtime/http/CMakeLists.txt 表明以下依赖会在cmake配置阶段由 FetchContent 机制自动下载或从仓库内置源码构建不需要你手动安装依赖处理方式源码证据asio 1.24.0FetchContent_Declare(asio ... asio-1-24-0.tar.gz)自动下载到third_party/asioCMakeLists.txtnlohmann/json v3.11.2FetchContent_Declare(json ... v3.11.2.tar.gz)CMakeLists.txtportaudio v19.07.00FetchContent 下载默认ENABLE_PORTAUDIO ON带 SHA256 校验CMakeLists.txtglog / gflags / openfst / yaml-cpp / kaldi-native-fbank / kaldi从仓库内置的 runtime/onnxruntime/third_party 以add_subdirectory源码构建CMakeLists.txt其中 openfst 与文档执行参数相关ENABLE_FST选项默认为 ON注释说明 “ITN need openfst compiled”ITN 逆文本正则化需要 openfst。虽然 readme.md 的运行示例中传--itn-dir 禁用了 ITN但 CMake 层面默认仍会编译 openfst编译时间会相应增加。构建环境的基线要求同样来自该文件cmake_minimum_required(VERSION 3.16)、CMAKE_CXX_STANDARD 14CMakeLists.txt。也就是说系统需要 CMake ≥ 3.16 与 C14 编译器GCC/Clang 均可这属于隐式前置条件文档未单独列出。六、把依赖接入构建CMake 配置参数依赖就位后用 CMake 把它们绑定进构建系统。按 runtime/http/readme.md 的官方步骤cd FunASR/runtime/http mkdir build cd build cmake -DCMAKE_BUILD_TYPErelease .. \ -DONNXRUNTIME_DIR/path/to/onnxruntime-linux-x64-1.14.0 \ -DFFMPEG_DIR/path/to/ffmpeg-master-latest-linux64-gpl-shared make -j 4参数说明-DCMAKE_BUILD_TYPEreleaserelease 构建开启优化-DONNXRUNTIME_DIR指向 onnxruntime 解包后的目录CMake 从中取include/与lib/-DFFMPEG_DIR指向 ffmpeg 解包后的目录CMake 从中取include/与lib/两个路径参数是必填的——link_directories(${ONNXRUNTIME_DIR}/lib)与link_directories(${FFMPEG_DIR}/lib)在配置阶段即被展开传错路径会在链接期表现为找不到libonnxruntime.so/ ffmpeg 库符号。构建成功后产物输出到build/bin/funasr-http-server由CMAKE_RUNTIME_OUTPUT_DIRECTORY控制见 CMakeLists.txt。最终可执行文件由 runtime/http/bin 下的源码funasr-http-main.cpp、server.cpp、connection.cpp、asr_sessions.h、model-decoder.cpp等编译链接funasr核心库、OpenSSL 与 ZLIB。七、验证环境启动服务与冒烟测试依赖安装是否完整最终以服务能否编译并正常响应为判据。启动转写服务readme.md 给出的运行命令./funasr-http-server \ --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \ --punc-dir damo/punc_ct-transformer_cn-en-common-vocab471067-large-onnx \ --itn-dir \ --lm-dir \ --port 10001各参数含义--vad-dir为 FSMN VAD 的 ONNX 模型目录--model-dir为 Paraformer-large 中文 ASR ONNX 模型目录--punc-dir为标点恢复模型目录--itn-dir 与--lm-dir 表示禁用 ITN 与语言模型--port指定 HTTP 监听端口示例为 10001测试命令则用默认 80 端口。模型目录需事先从 FunASR 模型仓库下载对应 ONNX 版本模型并放置到给定路径。curl 冒烟测试curl -F fileexample.wav 127.0.0.1:80以 multipart 表单上传一个 wav 文件服务返回识别文本。能收到完整 JSON 结果即证明 onnxruntime推理、ffmpeg解码、OpenSSL服务层三类依赖全部正确装配。八、实操要点小结依赖版本已锁定onnxruntime 固定 1.14.0、ffmpeg 固定官方预编译 linux64-gpl-shared 包不要擅自替换版本两条下载路线优先用仓库脚本runtime/onnxruntime/third_party/download_*.sh网络受限时用 readme 中的 OSS 镜像wget命令CMake 必填两个目录参数ONNXRUNTIME_DIR与FFMPEG_DIR指向解包后的目录本身而非其lib/子目录系统开发包一次装齐Ubuntu 下libopenblas-dev libssl-dev文档要求libboost-dev libboost-system-devreadme 要求 zlib 开发包CMake 隐含要求CentOS 下对应openblas-devel、openssl-devel、boost-devel、zlib-devel环境基线CMake ≥ 3.16、C14 编译器、Linux/Unix 平台Windows 构建路径在 CMakeLists 中有单独分支但本文档清单针对 Linux 发行版自动依赖不要重复手动安装asio、json、portaudio 由 FetchContent 下载glog、openfst、yaml-cpp 等由仓库内置源码编译。完成以上步骤后runtime/http的 C 转写服务即可在本机编译、启动并接受 HTTP 请求为后续按 SDK_advanced_guide_offline.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),仅供参考
返回列表