使用FunASR处理语音识别

本文介绍了阿里巴巴的FunASR语音识别工具,其包含多种功能如语音识别、VAD和语言模型等。文章详细说明了如何安装、使用预训练模型以及处理音频文件,同时提到了可能遇到的问题和解决方法。
部署运行你感兴趣的模型镜像

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 AutoModel

print('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好像也不行;

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

关于input直接用wav文件正确,但用wav的bytes就识别不对的问题,我去GitHup提问有人告诉我直接使用wav文件,会识别wav头重新调整采样率等信息,而使用bytes不会重新采样,所以使用非16k的会识别错误,得到的方法大概就是换用8k的模型,或者设置采样率参数;

但是设置的fs参数可能需要自己调,好像也不一定就直接是采样率,可能跟别的有关;

您可能感兴趣的与本文相关的镜像

Qwen3-VL-30B

Qwen3-VL-30B

图文对话
Qwen3-VL

Qwen3-VL是迄今为止 Qwen 系列中最强大的视觉-语言模型,这一代在各个方面都进行了全面升级:更优秀的文本理解和生成、更深入的视觉感知和推理、扩展的上下文长度、增强的空间和视频动态理解能力,以及更强的代理交互能力

### 使用 FunASR 进行多人语音识别 FunASR 是一款由阿里云开发的开源自动语音识别工具包,支持多种场景下的语音处理需求。对于多人语音识别任务,该工具提供了有效的解决方案。 #### 安装依赖库 为了能够顺利运行 FunASR 的多说话人识别功能,需先安装必要的 Python 库: ```bash pip install funasr webrtcvad pydub torchaudio>=0.9.0 soundfile numpy==1.21.6 ``` #### 准备音频数据集 准备待处理的音频文件,并确保其格式兼容于 FunASR 所接受的标准输入形式。通常情况下,建议采用 WAV 或 FLAC 文件作为测试样本[^3]。 #### 加载预训练模型并执行推理过程 通过加载官方提供的预训练权重来初始化模型实例,之后可以调用 `inference` 方法完成实际预测工作。下面给出了一段简单的代码片段用于展示这一流程: ```python from funasr.tasks.asr import ASRTask import torch device = 'cuda' if torch.cuda.is_available() else 'cpu' model_path = "./pretrained_models/multi_speaker_asr_model" task = ASRTask.from_pretrained(model_path) audio_file = "/path/to/your/audio.wav" results = task.inference(audio=audio_file, output_dir="./output", param_dict={"decoding": "attention_rescoring"}) print(results) ``` 上述脚本会读取指定路径中的音频文件,在 GPU 上加速计算(如果可用),最后输出包含各说话者转录文本的结果列表[^1]。 #### 后处理阶段 得到初步解码后的结果后,可能还需要进一步优化以提高最终质量。这一步骤涉及但不限于声纹聚类分析、时间戳校正以及拼接相邻短语等操作。具体实现方式取决于应用场景和个人偏好[^5]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值