当前位置: 首页 > news >正文

语音识别(实时语音转录)——funasr的详细部署和使用教程(包括实时语音转录)

阿里达摩院开源大型端到端语音识别工具包FunASR:

FunASR提供了在大规模工业语料库上训练的模型,并能够将其部署到应用程序中。工具包的核心模型是Paraformer,这是一个非自回归的端到端语音识别模型,经过手动注释的普通话语音识别数据集进行了训练,该数据集包含60,000小时的语音数据。为了提高Paraformer的性能,本文在标准的Paraformer基础上增加了时间戳预测和热词定制能力。此外,为了便于模型部署,本文还开源了基于前馈时序记忆网络FSMN-VAD的语音活动检测模型和基于可控时延Transformer(CT-Transformer)的文本后处理标点模型,这两个模型都是在工业语料库上训练的。这些功能模块为构建高精度的长音频语音识别服务提供了坚实的基础,与在公开数据集上训练的其它模型相比,Paraformer展现出了更卓越的性能。 FunASR 的中文语音转写效果比 Whisper 更优秀。

一、环境配置

https://github.com/modelscope/FunASR

conda create -n funasr python=3.9conda activate funasrconda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=11.8 -c pytorch -c nvidiapip install -U funasrpip install -U modelscope huggingface_hub

二、简单示例

需要下载模型

1.非流式

from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocessmodel_dir = "iic/SenseVoiceSmall"model = AutoModel(model=model_dir,vad_model="fsmn-vad",vad_kwargs={"max_single_segment_time": 30000},device="cuda:0",
)# en
res = model.generate(input=f"{model.model_path}/example/en.mp3",cache={},language="auto",  # "zn", "en", "yue", "ja", "ko", "nospeech"use_itn=True,batch_size_s=60,merge_vad=True,  #merge_length_s=15,
)
text = rich_transcription_postprocess(res[0]["text"])
print(text)

英文识别: 

中文识别: 

2.流式

from funasr import AutoModelchunk_size = [0, 10, 5] #[0, 10, 5] 600ms, [0, 8, 4] 480ms
encoder_chunk_look_back = 4 #number of chunks to lookback for encoder self-attention
decoder_chunk_look_back = 1 #number of encoder chunks to lookback for decoder cross-attentionmodel = AutoModel(model="iic/paraformer-zh-streaming")import soundfile
import oswav_file = os.path.join(model.model_path, "example/asr_example.wav")
speech, sample_rate = soundfile.read(wav_file)
chunk_stride = chunk_size[1] * 960 # 600mscache = {}
total_chunk_num = int(len((speech)-1)/chunk_stride+1)
for i in range(total_chunk_num):speech_chunk = speech[i*chunk_stride:(i+1)*chunk_stride]is_final = i == total_chunk_num - 1res = model.generate(input=speech_chunk, cache=cache, is_final=is_final, chunk_size=chunk_size, encoder_chunk_look_back=encoder_chunk_look_back, decoder_chunk_look_back=decoder_chunk_look_back)print(res)

三、服务器部署 

\funasr_samples\samples\python

python funasr_wss_server.py

运行服务器端:

 运行客户端:即可使用麦克风,进行实时转录。

python funasr_wss_client.py

http://www.lryc.cn/news/426272.html

相关文章:

  • 【网络编程】TCP机械臂测试
  • 笔记:在WPF中如何注册控件级全局事件和应用程序级全局事件
  • 【Linux系列】telnet使用入门
  • 音视频相关知识
  • 数据结构--第七天
  • 代码随想录Day34:62.不同路径、63.不同路径II、343.整数拆分、96.不同的二叉搜索树
  • 【信息学奥赛一本通】1008:计算(a+b)/c的值
  • 使用 jstat 进行 Java 应用程序性能监控
  • Prompt指令调优大揭秘
  • C语言中的⽂件操作
  • 黑马前端——days14_js
  • 【自动驾驶】ROS中参数服务器通信(c++)
  • 零基础5分钟上手亚马逊云科技核心云开发知识 - 网络基础
  • Unity Recttransform操作
  • MIT线性代数P5
  • patroni+etcd开启SSL认证(三个节点证书一致 使用openssl命令)
  • Eureka入门指南:微服务注册与发现的基础概念
  • Linux:动态库和静态库
  • 8.13网络编程
  • 蚂蚁AL1 15.6T 创新科技的新典范
  • 2024年【汽车驾驶员(技师)】考试报名及汽车驾驶员(技师)试题及解析
  • 2024年【甘肃省安全员C证】报名考试及甘肃省安全员C证考试总结
  • RabbitMQ 双机系统偶尔丢失消息问题排查
  • Python 环境搭建指南 超详细
  • 使用三菱PLC源码进行PLC读取写入操作
  • 使用Nvm切换nodeJs高版本之后,使用npm install一闪而过
  • 【Kubernetes】k8s集群安全机制
  • 嵌入式学习---DAY24:进程--二
  • Diffusion Model相关论文解析之(二)DENOISING DIFFUSION IMPLICIT MODELS
  • 【STM32嵌入式系统设计与开发拓展】——14_定时器之输入捕获