由于我在做的小落同学(https://x.oddmeta.net)项目需要用到ASR功能,之前针对 FunASR、FireRedAsr、Vosk等ASR项目也做了一些评测,但是总体跑下来发现还是FunASR的整体表现最好,所以我就将FunASR给封装了一下,做了一个OddAsr的项目。 而考虑到ASR功能的用途广泛,之前也有一些朋友私下问过我相关的一些使用和封装的问题,尤其是流式ASR的支持(github上有好多FunASR的API封装,但是全是离线文件转写的,没有一个同时支持离线文件转写和流式转写的API封装项目),想了一下干脆直接把它开源出来吧。希望对有ASR需求的同学有帮助。 项目地址: https://github.com/oddmeta/oddasr 之前关于ASR相关的一些测试 ASR引擎测试:FireRedASR只能说小红书的诚意不够,https://www.oddmeta.net/archives/144ASR引擎测试:FunASR,必须给阿里点一个赞,https://www.oddmeta.net/archives/165可能是最紧凑、最轻量级的ASR模型:Vosk实战解析,https://www.oddmeta.net/archives/201 项目简介 OddASR是一个简单的ASR API服务器,基于强大的开源语音识别库FunASR构建。FunASR由ModelScope开发,提供了丰富的预训练模型和工具,可用于各种语音识别任务。OddASR的目标是简化FunASR的部署,满足非实时音频处理的需求,同时也为实时流式转写提供了支持。 项目具有以下特点: 安装步骤 1. 克隆仓库 2. 安装依赖 使用方法 1. 启动REST API服务器 服务器将在http://127.0.0.1:12340上启动。 2. 测试文件ASR API 使用testAPI.py脚本测试API: 也可以使用curl命令发送音频文件到REST API: 3. 测试流ASR API 使用testStreamAPI.py脚本测试API: 4. 示例输出 5. Docker部署 项目待办事项 参考资料 如果你对语音识别技术感兴趣,不妨试试OddASR。它简单易用,功能强大,能为你的语音转文字工作带来极大的便利。快来体验吧!
FunASR
前两天试了一下小红书开源出来的FireRedASR,整体感觉是小红书团队只是把关键的语音识别的模型开放出来了(也只开放了-L的模型),但是由于缺了一些前处理(语音VAD检测)、后处理(标点,多人语音聚类,热词等)相关的功能,普通用户拿到他们这个模型也根本没法直接拿来用,所以个人的观点是对于开源FireRedASR来说,小红书团队的诚意是不够的。 而光嘴巴说他们诚意不够是不能令人信服的,所以咱把阿里在2年多前开源出来的FunASR拿出来介绍一下,诚意够不够让大家自己体会。 一、FunASR介绍 FunASR是一个由阿里巴巴达摩院开发的开源语音识别工具包,旨在为学术研究和工业应用提供桥梁。它支持多种语音识别功能,包括语音识别(ASR)、语音端点检测(VAD)、标点恢复、语言模型、说话人验证、说话人分离和多人对话语音识别。FunASR提供了便捷的脚本和教程,支持预训练模型的推理与微调,帮助用户快速构建高效的语音识别服务。 支持各种音视频格式输入,可以把几十个小时的长音频与视频识别成带标点的文字,支持上百路请求同时进行转写 支持中文、英文、日文、粤语和韩语等。 在线体验:https://www.funasr.com/ 注: FunASR是支持GPU推理加速的,不像阿云早先的一个私有云版本的ASR引擎那样,只用CPU来推理的。 二、FunAsr核心功能 1. 功能列表 2. 离线语音识别 拥有完整的语音识别链路,结合了语音端点检测、语音识别、标点等模型,可以将几十个小时的长音频与视频识别成带标点的文字,而且支持上百路请求同时进行转写。输出为带标点的文字,含有字级别时间戳,支持ITN与用户自定义热词等。 3. 实时听写 FunASR实时语音听写软件包,集成了实时版本的语音端点检测模型、语音识别、语音识别、标点预测模型等。采用多模型协同,既可以实时的进行语音转文字,也可以在说话句尾用高精度转写文字修正输出,输出文字带有标点,支持多路请求。依据使用者场景不同,支持实时语音听写服务(online)、非实时一句话转写(offline)与实时与非实时一体化协同(2pass)3种服务模式。 三、安装部署 1. Requirements 2.创建虚拟环境 3. 安装 【必选】torch+torchaudio安装 我本次测试是直接用pip来安装的,省去docker相关安装、拉取的时间。其中需要注意的是如果你是一个全新的环境,没有torch, torchaudio的环境的话,需要先安装一下这两个。 如果是国内的话可以考虑加速一下 建议安装一下。不安装的话用torchaudio也能跑,但是ffmpeg更佳,毕竟是专业做这个的。没安装ffmpeg会有这个Notice: 4. 下载模型 常规的环境变量,指定huggingface和modelscope的cache路径,并为huggingface做个国内的加速。 5. 下载测试音频文件 在开始测试之前,你需要准备一些测试用的音频,可以直接用阿里云提供的先把功能跑通,然后再去用一些公开的测试集,或者是你自己的测试来测试FunASR的效果。 阿里云上的测试文件: 四、测试运行 在安装好FunASR,下载好模型,下载好测试文件后,可以开始跑正式的测试了。 1. ASR转写 从这个结果里可以看到,FunASR的标点、断句都做的非常好。音字对照的时间戳也都可以给你标出来了,基本上就是它所宣称的工业级别的了,有了这些基本上可以让你自行去扩展实现各种你需要的业务了。 2. VAD检测 对于语音转来说的,非常重要的一个前处理,尤其是针对文件转写来说,通常都需要先检测一下VAD,如果没有VAD,那么那一段时间的音频可以直接扔掉;另外,如果需要将大文件做切片的时候也需要根据VAD来做切片。哪怕转写出来文字后,要进行分段处理,那VAD的情况也是一个重要的参考指标。 3. 标点恢复 我相信没人想要一陀没有任何标点符号的文本吧。FunASR的ct-punc模型可以帮你处理标点符号的恢复。 4. 说话人验证 如果你想做一些说话人验证的产品和功能的时候,FunASR的这个speaker-verification模型可以直接拿来用。 […]