使用FunASR处理语音识别

news/2024/10/21 13:41:56/

FunASR是阿里的一个语音识别工具,比SpeechRecognition功能多安装也很简单;

官方介绍:FunASR是一个基础语音识别工具包,提供多种功能,包括语音识别(ASR)、语音端点检测(VAD)、标点恢复、语言模型、说话人验证、说话人分离和多人对话语音识别等。FunASR提供了便捷的脚本和教程,支持预训练好的模型的推理与微调。

网址:FunASR/README_zh.md at main · alibaba-damo-academy/FunASR · GitHub

安装直接用:pip install funasr  -i https://pypi.tuna.tsinghua.edu.cn/simple

读取音频需要(我没ffmpeg):pip install torchaudio  -i https://pypi.tuna.tsinghua.edu.cn/simple

官网说:如果需要使用工业预训练模型,安装modelscope(可选)pip install modelscope  -i https://pypi.tuna.tsinghua.edu.cn/simple

如果按照官网的代码直接使用model名,第一次使用这个model时,会自动下载对应的model,会在C:\Users\你的用户名\.cache目录里新建modelscope文件夹,将所用到的model下载到里面;

model = AutoModel(model="paraformer-zh",  vad_model="fsmn-vad", punc_model="ct-punc", # spk_model="cam++")

所用到的model会在/modelscope/hub/iic/目录里找到,可以拷贝出来使用,代码里直接指定model目录;

也可以自己去他们网站下载model拿来用:FunASR/model_zoo at main · alibaba-damo-academy/FunASR · GitHub

model直接搞出来用:

语音转文字demo:

#!/usr/bin/env python3
# coding = utf-8
"""
# Project: workspace_py
# File: test_funasr.py
# Author: XWF
# Time: 2024/4/15 16:14
"""from funasr import AutoModelprint('test')model_path = 'models/modelscope/hub/iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch'
vad_path = 'models/modelscope/hub/iic/speech_fsmn_vad_zh-cn-16k-common-pytorch'
punc_path = 'models/modelscope/hub/iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch'
model = AutoModel(model=model_path,  # model_revision="v2.0.4",vad_model=vad_path,  # vad_model_revision="v2.0.4", vad_kwargs={},punc_model=punc_path,  # punc_model_revision="v2.0.4", punc_kwargs={},# device='cuda:0',device='cpu',ncpu=4,# spk_model="cam++", spk_model_revision="v2.0.4",disable_log=True,disable_pbar=True)res = model.generate(input='test_24000_16.wav', batch_size_s=300)
print(res)
print(type(res), type(res[0]), res[0].get('text'))# res = model.generate(input='test_8000_16.pcm', batch_size_s=300)
# print(res)
# print(res[0].get('text'))with open('test_24000_16.wav', 'rb') as f:wav_data = f.read()
res = model.generate(input=wav_data,batch_size_s=1)
print(res)with open('test_8000_16.pcm', 'rb') as f:pcm_data = f.read()
res = model.generate(input=pcm_data, batch_size_s=1)
print(res)

运行结果:

弄到model后直接使用model目录指定model就行,不用再下载了,也不用指定版本;

也可以使用各个model_version指定版本,下载的时候会使用指定的版本下载;

在AutoModel里使用disable_log=True和disable_pbar=True可以关闭那些红红的打印日志,不然满屏幕就会这样:

但是不知道input='test_8000_16.pcm'为啥老是找不到文件报错,跑不通,设置了fs好像也不行;

官网还有许多其他的功能可以去看看;


http://www.ppmy.cn/news/1442611.html

相关文章

【win10移动热点,提示正在获取ip地址...】

检查 Wired AutoConfig/ WLAN AutoConfig 服务运行 电脑→管理→服务和应用程序→服务:AutoConfig 有线网络无线网卡 1.开启wifi热点,自动生成“本地连接*10”; 2.配置Wired LAN网络共享 仅无线网卡 1. 开启wifi热点,自动生…

win安装vue并运行 vue-admin-template

1. Node Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,用于构建高性能、可扩展的网络应用程序。它使得开发者能够在服务器端使用JavaScript编程,同时支持事件驱动、非阻塞I/O模型,适用于构建实时应用和高吞吐量的网络服务。 1.1 …

洛谷 P3810 【模板】三维偏序(陌上花开)

【模板】三维偏序(陌上花开) 题目描述 有 n n n 个元素,第 i i i 个元素有 a i , b i , c i a_i,b_i,c_i ai​,bi​,ci​ 三个属性,设 f ( i ) f(i) f(i) 表示满足 a j ≤ a i a_j \leq a_i aj​≤ai​ 且 b j ≤ b i b_j…

shell 实现对Hive表字段脱敏写入新表

数据安全管理,本shell 实现对hive源表敏感字段进行md5加密,然后写入新表; read -p 交互输入:要脱敏的hive表、分区,示例: test_db.table_name 20240331 生成更新hive分区表的hql: insert overwrite table xxx 备注:仅供…

05_c/c++开源库 spdlog日志库

1.简介与安装 spdlog 是一个用于 C 的高性能、易用的日志库。它提供了丰富的日志功能,包括多种日志级别、格式化输出、异步日志、自定义日志接收器等。spdlog 是一个轻量级的库,性能优越,非常适合用于需要高性能日志记录的场景。 特点 高性…

【FPGA】优化设计指南(一):设计原则

目录 避免采用不可综合的语句设计时采用同步的时钟组合逻辑与毛刺异步复位与同步复位动态分析与静态分析功能流水线时序违例乒乓操作面积和速度的平衡避免采用不可综合的语句 1.#1000延时语句 2.除法运算/,除非除数为2的整次幂 3.实数类型不可综合(real) 4.综上,使用可综合…

史上最详细的FL Studio 21.2.3.4004中文版下载安装激活图文教程以及中文language(附Patch补丁)

还有几天就五一黄金周了,心想着趁还没放假给大家安利一波FL Studio21.2.3 Build 4004激活教程,快来看看把。 FL Studio 21官方版是一款备受用户喜欢的音频编辑器,它功能非常强大,支持用户在线编辑,简单直观的操作界面&…

脚本:监控Oracle中正在运行的SQL

这是我自己平时用的一个监控Oracle中正在运行的SQL的脚本,有需要的请收藏,运行时直接复制和粘贴即可。 col inst_sid heading "INST_ID|:SID" format a7 col username format a10 col machine format a12 col sql_exec_start heading "…