语言转文字-FunASR阿里开源

语言识别知识点补充

语音识别技术,也被称为自动语音识别(Automatic Speech Recognition,ASR),其目标是将人类语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。
当前主流的语音识别系统多基于统计理论的贝叶斯准则。其典型框架一般包含前端处理、声学模型、语言模型、解码器和后处理等五个基本模块。

方案

. 如果你只是想要一个简单、可靠、本地运行的语音转文字工具:​
👉 强烈推荐从 Vosk 开始,它是目前 Windows/Linux/macOS 上部署最简单、对硬件要求最低、效果还不错的开源方案,特别适合 i7 老机器。

FunAudio-ASR 提供了轻量化版本 FunAudio-ASR-nano,在保持较高识别准确率的同时,具备更低的推理成本,适合对资源敏感的部署环境。
两个版本均支持低延迟流式识别、中英无缝切换以及用户自定义热词功能。目前,该技术已在钉钉的 “AI 听记”、视频会议以及 DingTalk A1 硬件中落地应用。其 API 也已在阿里云百炼平台上线。
体验地址:https://modelscope.cn/studios/iic/FunAudio-ASR
技术报告:https://github.com/FunAudioLLM/FunAudioLLM.github.io/blob/master/pdf/FunAudio-ASR.pdf

FunASR 特点

  • 阿里达摩院开源的语音识别模型库,​对中文支持非常好
  • 提供多个模型,包括轻量级模型,部分可适配 CPU 推理
  • 有 Python 接口,也有预训练模型
  • 支持流式识别、实时语音转写等高级功能
    ⚠️ 但注意:
  • 部分模型较大,对 i7 机器可能吃力,建议测试其小模型或 INT8 量化版本

环境准备

  1. 系统要求
  • 操作系统: CentOS Stream 9 (x86_64)
  • Python: 3.8 或 3.9 (FunASR 官方推荐)
  • GPU (可选但推荐): NVIDIA GPU + CUDA + cuDNN 可显著提升推理速度。

安装部署

# 创建虚拟环境
python3 -m venv funasr_env

# 激活虚拟环境
source funasr_env/bin/activate

pip install --upgrade pip

#有 NVIDIA GPU:
pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu118
#无 GPU (CPU-only):
pip install torch torchaudio
#安装 FunASR
pip install funasr

注意:如果安装失败,可以尝试从源码安装:

git clone https://github.com/alibaba-damo-academy/FunASR.git
cd FunASR
pip install -e .

下载中文语音识别模型

#下载中文语音识别模型 FunASR 支持多种模型,我们以最常用的**流式多级的截断注意力模型(SMLTA)**为例。
# 创建模型目录
mkdir -p ~/funasr_models
cd ~/funasr_models
# 下载中文语音识别模型(支持中文普通话) 
wget https://modelscope.cn/models/iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8358-pytorch/resolve/master/modelscope/model.tar.gz

tar -xzf model.tar.gz
# modelscope已经不支持 wget方式
pip install modelscope
# 创建一个 Python 脚本 download_model.py
from modelscope.hub.snapshot_download import snapshot_download
from modelscope.utils.constant import ModelFile

# 指定模型ID和本地缓存目录
model_id = 'iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch'
cache_dir = '/home/laich/speek/funasr_models'  # 替换为你的实际路径

# 下载模型
model_dir = snapshot_download(model_id, cache_dir=cache_dir)

print(f"模型已下载至: {model_dir}")

说明:

  • speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8358-pytorch 是一个高性能的中文ASR模型。
  • 您也可以访问 ModelScope (魔搭) 搜索更多 FunASR 模型。
    假设模型解压后路径为:/home/yourusername/funasr_models/modelscope

创建一个 Python 脚本 asr_test.py 来测试语音转文字功能。

from funasr import AutoModel
import os
""""
https://github.com/modelscope/FunASR
"""
# 使用模型名称或者路径模式
#model_name = "iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch"
model_name = "/home/laich/speek/funasr_models/iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch"
# 初始化模型
model = AutoModel(model=model_name, model_revision="v2.0.4",
                  vad_model="fsmn-vad", vad_model_revision="v2.0.4",
                  punc_model="ct-punc-c", punc_model_revision="v2.0.4",
                  # spk_model="cam++", spk_model_revision="v2.0.2",
                  )
# 初始化模型
#model = AutoModel(
#    model=model_dir,
    # 如果使用GPU,可以指定 device="cuda"
    # device="cuda"
#)

# 测试音频文件路径(准备一个中文语音的wav文件)
audio_file = "test_audio.wav"

# 检查音频文件是否存在
if not os.path.exists(audio_file):
    print(f"音频文件 {audio_file} 不存在,请先准备一个中文语音文件。")
    exit(1)

# 执行语音识别
res = model.generate(input=audio_file)

# 打印识别结果
print("识别结果:")
print(res[0]["text"])

准备测试音频

  1. 准备一个 16kHz 采样率的 .wav 格式的中文语音文件。
  2. 如果你的音频不是16kHz,可以使用 sox 转换:
# 确保虚拟环境已激活
source funasr_env/bin/activate

# 运行测试脚本
python asr_test.py   # source funasr_env/bin/activate && python asr_test.py
#如果一切正常,你应该会看到类似输出:语言转文字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芳心村

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值