| | |
| | | # FunASR离线文件转写服务开发指南 |
| | | |
| | | FunASR提供可一键本地或者云端服务器部署的中文离线文件转写服务,内核为FunASR已开源runtime-SDK。FunASR-runtime结合了达摩院语音实验室在Modelscope社区开源的语音端点检测(VAD)、Paraformer-large语音识别(ASR)、标点检测(PUNC) 等相关能力,可以准确、高效的对音频进行高并发转写。 |
| | | (简体中文|[English](SDK_advanced_guide_offline.md)) |
| | | |
| | | FunASR离线文件转写软件包,提供了一款功能强大的语音离线文件转写服务。拥有完整的语音识别链路,结合了语音端点检测、语音识别、标点等模型,可以将几十个小时的长音频与视频识别成带标点的文字,而且支持上百路请求同时进行转写。输出为带标点的文字,含有字级别时间戳,支持ITN与用户自定义热词等。服务端集成有ffmpeg,支持各种音视频格式输入。软件包提供有html、python、c++、java与c#等多种编程语言客户端,用户可以直接使用与进一步开发。 |
| | | |
| | | 本文档为FunASR离线文件转写服务开发指南。如果您想快速体验离线文件转写服务,可参考[快速上手](#快速上手)。 |
| | | |
| | |
| | | |
| | | | 时间 | 详情 | 镜像版本 | 镜像ID | |
| | | |------------|---------------------------------------------------|------------------------------|--------------| |
| | | | 2024.09.26 | 修复内存泄漏、支持SensevoiceSmall onnx模型 | funasr-runtime-sdk-cpu-0.4.6 | 8651c6b8a1ae | |
| | | | 2024.05.15 | 适配FunASR 1.0模型结构 | funasr-runtime-sdk-cpu-0.4.5 | 058b9882ae67 | |
| | | | 2024.03.05 | docker镜像支持arm64平台,升级modelscope版本 | funasr-runtime-sdk-cpu-0.4.4 | 2dc87b86dc49 | |
| | | | 2024.01.25 | 优化vad数据处理方式,大幅降低峰值内存占用;内存泄漏优化| funasr-runtime-sdk-cpu-0.4.2 | befdc7b179ed | |
| | | | 2024.01.08 | 优化句子级时间戳json格式 | funasr-runtime-sdk-cpu-0.4.1 | 0250f8ef981b | |
| | | | 2024.01.03 | 新增支持8k模型、优化时间戳不匹配问题及增加句子级别时间戳、优化英文单词fst热词效果、支持自动化配置线程参数,同时修复已知的crash问题及内存泄漏问题 | funasr-runtime-sdk-cpu-0.4.0 | c4483ee08f04 | |
| | | | 2023.11.08 | 支持标点大模型、支持Ngram模型、支持fst热词、支持服务端加载热词、runtime结构变化适配 | funasr-runtime-sdk-cpu-0.3.0 | caa64bddbb43 | |
| | | | 2023.09.19 | 支持ITN模型 | funasr-runtime-sdk-cpu-0.2.2 | 2c5286be13e9 | |
| | | | 2023.08.22 | 集成ffmpeg支持多种音视频输入、支持热词模型、支持时间戳模型 | funasr-runtime-sdk-cpu-0.2.0 | 1ad3d19e0707 | |
| | |
| | | |
| | | ```shell |
| | | sudo docker pull \ |
| | | registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.3.0 |
| | | registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.7 |
| | | mkdir -p ./funasr-runtime-resources/models |
| | | sudo docker run -p 10095:10095 -it --privileged=true \ |
| | | -v $PWD/funasr-runtime-resources/models:/workspace/models \ |
| | | registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.3.0 |
| | | registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-cpu-0.4.7 |
| | | ``` |
| | | |
| | | ### 服务端启动 |
| | | |
| | | docker启动之后,启动 funasr-wss-server服务程序: |
| | | docker启动之后,进入到docker里边启动 funasr-wss-server服务程序: |
| | | ```shell |
| | | cd FunASR/runtime |
| | | nohup bash run_server.sh \ |
| | | --download-model-dir /workspace/models \ |
| | | --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 \ |
| | | --model-dir damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx \ |
| | | --punc-dir damo/punc_ct-transformer_cn-en-common-vocab471067-large-onnx \ |
| | | --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst \ |
| | | --itn-dir thuduj12/fst_itn_zh \ |
| | | --hotword /workspace/models/hotwords.txt > log.out 2>&1 & |
| | | --hotword /workspace/models/hotwords.txt > log.txt 2>&1 & |
| | | |
| | | # 如果您想关闭ssl,增加参数:--certfile 0 |
| | | # 如果您想使用时间戳或者nn热词模型进行部署,请设置--model-dir为对应模型: |
| | | # 如果您想使用SenseVoiceSmall模型、时间戳、nn热词模型进行部署,请设置--model-dir为对应模型: |
| | | # iic/SenseVoiceSmall-onnx |
| | | # damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx(时间戳) |
| | | # damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404-onnx(nn热词) |
| | | # 如果您想在服务端加载热词,请在宿主机文件./funasr-runtime-resources/models/hotwords.txt配置热词(docker映射地址为/workspace/models/hotwords.txt): |
| | | # 每行一个热词,格式(热词 权重):阿里巴巴 20 |
| | | # 每行一个热词,格式(热词 权重):阿里巴巴 20(注:热词理论上无限制,但为了兼顾性能和效果,建议热词长度不超过10,个数不超过1k,权重1~100) |
| | | # SenseVoiceSmall-onnx识别结果中“<|zh|><|NEUTRAL|><|Speech|> ”分别为对应的语种、情感、事件信息 |
| | | ``` |
| | | 如果您想定制ngram,参考文档([如何训练LM](./lm_train_tutorial.md)) |
| | | |
| | | 如果您想部署8k的模型,请使用如下命令启动服务: |
| | | ```shell |
| | | cd FunASR/runtime |
| | | nohup bash run_server.sh \ |
| | | --download-model-dir /workspace/models \ |
| | | --vad-dir damo/speech_fsmn_vad_zh-cn-8k-common-onnx \ |
| | | --model-dir damo/speech_paraformer_asr_nat-zh-cn-8k-common-vocab8358-tensorflow1-onnx \ |
| | | --punc-dir damo/punc_ct-transformer_cn-en-common-vocab471067-large-onnx \ |
| | | --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst-token8358 \ |
| | | --itn-dir thuduj12/fst_itn_zh \ |
| | | --hotword /workspace/models/hotwords.txt > log.txt 2>&1 & |
| | | ``` |
| | | |
| | | 服务端详细参数介绍可参考[服务端用法详解](#服务端用法详解) |
| | | |
| | |
| | | --port 10095 部署端口号 |
| | | --wav-path 需要进行转写的音频文件,支持文件路径 |
| | | --hotword 热词文件,每行一个热词,格式(热词 权重):阿里巴巴 20 |
| | | --thread-num 设置客户端线程数 |
| | | --use-itn 设置是否使用itn,默认1开启,设置为0关闭 |
| | | ``` |
| | | |
| | |
| | | --model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx \ |
| | | --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \ |
| | | --punc-dir damo/punc_ct-transformer_cn-en-common-vocab471067-large-onnx \ |
| | | --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst \ |
| | | --itn-dir thuduj12/fst_itn_zh \ |
| | | --decoder-thread-num 32 \ |
| | | --io-thread-num 8 \ |
| | | --port 10095 \ |
| | | --certfile ../../../ssl_key/server.crt \ |
| | | --keyfile ../../../ssl_key/server.key \ |
| | | --hotword ../../hotwords.txt > log.out 2>&1 & |
| | | --hotword ../../hotwords.txt > log.txt 2>&1 & |
| | | ``` |
| | | **run_server.sh命令参数介绍** |
| | | ```text |
| | | --download-model-dir 模型下载地址,通过设置model ID从Modelscope下载模型 |
| | | --model-dir modelscope model ID 或者 本地模型路径 |
| | | --quantize True为量化ASR模型,False为非量化ASR模型,默认是True |
| | | --vad-dir modelscope model ID 或者 本地模型路径 |
| | | --vad-quant True为量化VAD模型,False为非量化VAD模型,默认是True |
| | | --punc-dir modelscope model ID 或者 本地模型路径 |
| | | --punc-quant True为量化PUNC模型,False为非量化PUNC模型,默认是True |
| | | --lm-dir modelscope model ID 或者 本地模型路径 |
| | | --itn-dir modelscope model ID 或者 本地模型路径 |
| | | --port 服务端监听的端口号,默认为 10095 |
| | | --decoder-thread-num 服务端启动的推理线程数,默认为 8 |
| | | --io-thread-num 服务端启动的IO线程数,默认为 1 |
| | | --decoder-thread-num 服务端线程池个数(支持的最大并发路数), |
| | | 脚本会根据服务器线程数自动配置decoder-thread-num、io-thread-num |
| | | --io-thread-num 服务端启动的IO线程数 |
| | | --model-thread-num 每路识别的内部线程数(控制ONNX模型的并行),默认为 1, |
| | | 其中建议 decoder-thread-num*model-thread-num 等于总线程数 |
| | | --certfile ssl的证书文件,默认为:../../../ssl_key/server.crt,如果需要关闭ssl,参数设置为0 |
| | | --keyfile ssl的密钥文件,默认为:../../../ssl_key/server.key |
| | | --hotword 热词文件路径,每行一个热词,格式:热词 权重(例如:阿里巴巴 20),如果客户端提供热词,则与客户端提供的热词合并一起使用。 |
| | | --hotword 热词文件路径,每行一个热词,格式:热词 权重(例如:阿里巴巴 20), |
| | | 如果客户端提供热词,则与客户端提供的热词合并一起使用,服务端热词全局生效,客户端热词只针对对应客户端生效。 |
| | | ``` |
| | | |
| | | ### 关闭FunASR服务 |