当前位置: 首页 > 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.9

conda activate funasr

conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=11.8 -c pytorch -c nvidia

pip install -U funasr

pip install -U modelscope huggingface_hub

二、简单示例

需要下载模型

1.非流式

from funasr import AutoModel
from funasr.utils.postprocess_utils import rich_transcription_postprocess

model_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 AutoModel

chunk_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-attention

model = AutoModel(model="iic/paraformer-zh-streaming")

import soundfile
import os

wav_file = os.path.join(model.model_path, "example/asr_example.wav")
speech, sample_rate = soundfile.read(wav_file)
chunk_stride = chunk_size[1] * 960 # 600ms

cache = {}
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 - 1
    res = 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)

三、服务器部署 

ASR\FunASR-main\runtime\python\websocket

python funasr_wss_server.py

运行服务器端:

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

python funasr_wss_client.py

 运行html5页面:E:\shuziren\ASR\FunASR-main\runtime\html5\static

 

相关文章:

  • Unity CommandBuffer绘制粒子系统网格显示
  • 【漫话机器学习系列】094.交叉熵(Cross-Entropy)
  • 【LeetCode】15.三数之和
  • Java 实现简单动态字符串
  • 机器学习--逻辑回归模型
  • MyBatis映射文件常用元素详解与示例
  • 青少年编程与数学 02-009 Django 5 Web 编程 16课题、权限管理
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue药管家家庭医药品回收系统【提供源码+答辩PPT+文档+项目部署】
  • 论文阅读_用于低频隔振的高负刚度新型阵列磁性弹簧的分析与设计_1
  • MySQL智障离谱问题,删了库确还存在、也不能再创建同名库
  • linux kasan 使用举例
  • Spring-AOP
  • Windows Docker运行Implicit-SVSDF-Planner
  • Python 面试常见问题解析
  • DockerDesktop更改默认的磁盘镜像地存储位置
  • 使用python进行数据分析工作,要掌握哪些数学知识?
  • Linux下学【MySQL】常用函数助你成为数据库大师~(配sql+实操图+案例巩固 通俗易懂版~)
  • Java8新特性Optional,Function,Supplier,Consumer
  • 计算机网络之网络层(网络层的功能,异构网络互联,路由与转发,SDN基本概念,拥塞控制)
  • 【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))
  • 中国固体火箭发动机领域杰出专家赵殿礼逝世,享年92岁
  • 拍摄《我们这一代》的肖全开展“江浙沪叙事”
  • 网商银行2024年年报发布,客户资产管理规模超过1万亿
  • 马上评丨上热搜的协和“4+4”模式,如何面对舆论审视
  • “铁血防守”制造8年最快丢球,恐惧中的阿森纳什么也做不了
  • 解放日报:上海深化改革开放,系统集成创新局