语言识别知识点补充
语音识别技术,也被称为自动语音识别(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 量化版本
环境准备
- 系统要求
- 操作系统: 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"])
准备测试音频
- 准备一个 16kHz 采样率的 .wav 格式的中文语音文件。
- 如果你的音频不是16kHz,可以使用 sox 转换:
# 确保虚拟环境已激活
source funasr_env/bin/activate
# 运行测试脚本
python asr_test.py # source funasr_env/bin/activate && python asr_test.py
#如果一切正常,你应该会看到类似输出:语言转文字
1237

被折叠的 条评论
为什么被折叠?



